目录
Spring Boot就类似于盖房子的脚手架,可以快速的帮助我们盖房子。而Spring Boot则可以帮助我们快速的开发Spring框架。
1)快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
2)内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
3)快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
4)可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。 ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- @Controller
- public class UserController {
-
- @RequestMapping("/hi")
- @ResponseBody//返回给浏览器一个接口数据而非页面
- public String sayHi(String name){
-
- return "Hi, " + name;
- }
- }
因为之前的设置,这里的端口号是8888.
这里我们注意要把注入到容器类和启动类放在同一级目录下,这时Spring Boot才能正确的将bean注入到容器中
小结:约定大于配置
对⽐ Spring 的项⽬我们也可以看到这⼀特点,⽐如在 Spring 中也是要配置 Bean 的扫描路径的,⽽ Spring Boot 则不需要,Spring 配置如下:
总之Spring Boot是为了快速开发Spring而诞生的,Spring Boot具备:
1)快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
2)内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
3)快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
4)可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。 ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况等特点。
整个项目中所有重要的数据都是在配置文件中配置的:比如:
1)数据库的连接信息(包含用户名和密码的设置)
2)项目的启动端口
3)第三方系统的调用密钥等信息
4)用于发现问题和定位问题的普通日志和异常日志
如果没有配置文件,我们甚至不能连接和操作数据库,甚至时不能保存可以用于排查问题的关键日志,所以配置文件的作用非常重要。
1).properties
2).yml
这就好像连锁店⾥⾯的统⼀服装⼀样,有两种不同的款式,properties 类型的配置⽂件就属于⽼款“服 饰”,也是创建 Spring Boot 项⽬时默认的⽂件格式(主要是由于仓库⾥还有库存),⽽ yml 属于新版 款式,如果⽤户了解情况直接指定要新款服饰,那么就直接发给他。
说明:这里的两种配置文件可以在一个项目中同时存在,但是如果配置文件中出现了相同的配置,我们优先以properties 中的配置为主,也就是.properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。 但是实际上我们通常会采取一种统一的格式。
properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,如:
如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。 @Value 注解使⽤“${}”的格式读取,如下代码所示:
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- import javax.annotation.PostConstruct;
- @Component
- public class ReadYml {
- @Value("${server.port}")
- private String port;
- //@Component 在 Spring Boot 启动时候会注⼊到框架中,注⼊到框架中时会执⾏ @PostConstruct 初
- //始化⽅法,这个时候就能读取到配置信息了。
- @PostConstruct
- public void postConstruct() {
- System.out.println("Read YML,port:" + port);
- }
- }
properties是以key-value的形式配置的:
yml配置文件的读取也可以使用上面的@Value,此外还有下面两种读法
用@ConfigurationProperties读取一个实体类
配置文件也可以配置list集合:
1) properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似 json 格式的 树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂ 冒号加空格的⽅式设置,并且空格不可省略。
2) properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的 解决数据冗余的问题。
3) yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份 配置⽂件作为 Java 和 Go 的共同配置⽂件。
4)yml 虽然可以和 properties 共存,但⼀个项⽬中建议使⽤统⼀的配置类型⽂件。
日志是程序的重要组成部分,如果程序报错了,不打开控制台看日志,是无法找到报错的原因的。除了发现问题和报错原因之外,我们还可以通过日志实现以下功能:
1)记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。
2)记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。
3)记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。
我们的Spring Boot项目在使用的时候,默认就有日志输出,如:
日志说明:
因为 Spring Boot 中内置了⽇志框架 Slf4j,所以咱们可以直接在程序中调⽤ slf4j 来输出⽇志。
常用的日志框架:
以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追 溯问题,把⽇志保存下来的过程就叫做持久化。
想要将⽇志进⾏持久化,只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后, Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。
这样我们就将日志存储到了文件下面
1)添加lombok依赖
不仅如此,我们的setter共和getter方法也是一样
总结:
⽇志是程序中的重要组成部分,使⽤⽇志可以快速的发现和定位问题,Spring Boot 内置了⽇志框架, 默认情况下使⽤的是 info ⽇志级别将⽇志输出到控制台的,我们可以通过 lombok 提供的 @Slf4j 注解 和 log 对象快速的打印⾃定义⽇志,
⽇志包含 6 个级别:
trace:微量,少许的意思,级别最低;
info:普通的打印信息;
debug:需要调试时候的关键信息打印;
warn:警告,不影响使⽤,但需要注意的问题;
error:错误信息,级别较⾼的错误⽇志信息;
fatal:致命的,因为代码异常导致程序退出执⾏的事件。 ⽇志级别依次提升,⽽⽇志界别越⾼,收到的⽇志信息也就越少,我们可以通过配置⽇志的保存名称或 保存⽬录来将⽇志永久地保存下来。