1.开发流程
A.引入适合的场景依赖--starter
可以参照SpringBoot官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter
B.查看已有的自动配置、添加缺失的
前面我们说过,SpringBoot的自动配置依赖于xxAutoConfiguration.class,以spring-boot-starter-web为例,导入该依赖后,自动配置类里web相关的自动配置类一般就会启用,可以通过源码分析哪些启用哪些不启用。
SpringBoot还可以开启debug模式,开启自动配置的报告,就会打印出生效的类(包括原因)、没生效的类(包括原因)等等:
C.通过配置文件修改参数
例如数据库连接信息:
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/study_mybatis?serverTimezone=GMT%2B8username: ****password: ****
可以参考官方文档的可修改属性:https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#common-application-properties。
当然也可以通过阅读源码内部自动配置类绑定了哪些prefix来确定属性名称。
D.自定义组件或替换组件
还记得我们之前分析的SpringBoot的charasetEncodingFilter吗,在容器内部有字符集编码过滤器的时候,是不会生效的;SpringBoot对于同类型的组件,以用户的优先。当然我们如果觉得SpringBoot的组件不够齐全,还可以自定义并加入容器。
SpringBoot还提供了xxCustomizer自定义器,让我们自定义个性化功能。
2.lombok简化JavaBean
lombok安装后,在编写JavaBean的时候,我们使用几个注解就可以替代 无参构造、全参构造、Getter、Setter、ToString方法、日志:
A.引入依赖(SpringBoot管理了版本)
org.projectlomboklombok
B.在ideal中装好相应插件
C.使用lombok简化JavaBean
Student.java
@NoArgsConstructor //无参
@AllArgsConstructor //全参
@ToString // toString方法
@Data // 所有属性的 getter and setter
@Slf4j //日志
public class Student {private String name;private Integer age;private Pet pet;private int[] Arr;public Student(String name, Integer age) { // lombok 不支持部分参数构造器this.name = name;this.age = age;}public void printLog(){log.info("----这是日志打印输出----");}
}
MySpringConfiguration.java
@Configuration(proxyBeanMethods = true)
public class MySpringConfiguration {@Beanpublic Pet pet(){return new Pet("小黑");}@Beanpublic Student Stu(){return new Student("zzt",18,pet(),new int[]{1,2,3,4});}}
DemoApplication.java
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {ApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);Student student = ctx.getBean(Student.class);System.out.println(student);student.printLog();}}
执行输出:
当然,lombok还是有缺陷的,尽管用它开发简单,可也正因为他是写死的,想要个性化的定制还是需要自动手动改;比如只含有部分参数的构造器、自定义的toString(我们可能不是对复杂对象的直接打印)等等。
3.开发者工具dev-tools
org.springframework.bootspring-boot-devtoolstrue
引入dev-tools后,ctrl+F9就可以帮我们自动检查程序是否有改变,如果有就重新编译并重启,它不是真正意义上的热部署热更新。
4.热部署插件JRebel-解决项目修改时需要重启的问题
方式一:搜索自动安装(会比较慢,有梯子可尝试)
方式二:下载压缩包,解压在ideal的plugins目录下
需要激活,可参考:http://www.cicoding.cn/other/jrebel-activation/(可能还是需要梯子)
现在我们使用Rebel启动项目:
若代码发生了改变,我们只需要重新build一下即可。
[注]:如果觉得XRebel(与JRebel绑定下载的)激活弹窗很麻烦,也可以选择激活它~