spring boot最佳实践步骤
-
引入开发所需要的场景依赖,如要开发缓存或是消息队列,可以看一下spring boot有没有这些场景的相关依赖,查找spring boot有没有这些场景的依赖可以到这个链接中找,这里是spring boot官方给定
如果这里面没有就找其他第三方的依赖
-
查看自动配置了哪些东西(可以选择看,和开发没有关系)
-
可以自己分析,看自己导入了哪些场景依赖,然后到Libralies目录中找到spring boot的autoconfiguration包中的某个场景的包,分析哪个自动配置类开启了配置
-
但是上面有点麻烦,我们可以在application.propertise文件中设置,如下
debug=true #表示开启debug模式,默认是false,开启后会在控制台输出启用和不启用的配置类的报告 #报告中Positive matches:中的是启用的自动配置类,而且还说明了为什么生效,即满足了什么条件 #Negative matches:中的是没有启用的自动配置类,说明了为什么不生效的原因
-
-
看看是否需要修改其他配置(如连接数据库我们要修改数据源,url、username、passworld等)
-
要怎么修改,可以参照官方文档修改配置项,如官网中的Application Properties中有很多场景的核心配置说明
-
第二种就是自己到spring boot的autoconfiguration包下找到对应的场景的自动配置类中,查看@ConfigurationProperties中绑定前缀是什么,然后到application.properties中修改这个前缀的值
-
我们参照文档,自己配置springboot启动时的那个banner图,
-
将一张jpg格式的图片放到resources资源目录下,然后在application.properties中配置如下
这样就设置ok了
-
自定义加入或替换组件,就是创建配置类,在其中使用@Bean、@Component等注解进行添加组件,自己添加的或被框架优先使用
-
编写自定义器 XxxCustomizer这样的,以后会用到
spring boot的开发小技巧
1、Lombok的使用
在开发中,我们通常都需要创建一些映射实体类,我们需要给每一个实体类创建有参无参的构造方法、set和get方法以及必要时重写的toString和hashCode方法等,很麻烦,所以就引入了Lombok工具。在项目依赖中导入Lombok的依赖,然后idea工具中搜索安装Lombok工具,我们就可以在实体类中添加注解来代替手写上面所讲的东西了。
-
首先导入Lombok依赖,不用写版本号,父项目中已经定义好了
<!--Lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>
-
在idea中安装Lombok插件,然后重启idea
-
那么在实体类中使用注解进行代替,具体如下
package com.studymyself.bean; import lombok.*; //使用Lombok插件后,使用对应注解,在编译阶段会自动添加该类的setter和getter方法 //有参无参构造方法等 @EqualsAndHashCode//为该类在编译时重写equals和hashCode方法 @ToString//为该类在编译时重写toString方法 @NoArgsConstructor//为该类在编译时创建所有参数的构造器 @AllArgsConstructor//为该类在编译时创建所有参数的构造器 @Data//为该类的所有属性在编译时添加setter、getter方法 public class User { private String name; private Car car; //要注意的是如果在创建该类对象时,只需要部分参数,这样的构造方法还得是自己创建 public User(String name){ this.name=name; } }
-
Lombok中有一个日志功能,我们可以在处理器类上添加@Slf4j注解,就会注入一个log的属性
package com.studymyself.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController public class MyController { @RequestMapping("/hello") public String myController(){ //使用日志,log属性 log.error("警告:请求进来了"); return "你好啊!Spring Boot!"; } }
启动项目,发起请求,控制台内容如下
2、dev-tools(Developer Tools:热部署工具)
当我们修改了项目中的配置文件和代码时,都需要重启整个项目,使用Ctrl+F10。但是我们在依赖中映入devtools的依赖,以后修改文件就可以直接CTRL+F9就可以自动部署更新项目了,但是底层原理还是重启项目,主要功能是我们修改的是静态资源页面代码(如jsp页面)时,使用Ctrl+F9是不重启项目的。但是更新静态页面,之前springMVC项目时在运行的下面有个更新resources的选项。但是spring boot中当前是没有的
<!--热部署依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>