SpringBoot学习笔记四:springBoot的热部署

SpringBoot学习笔记四:springBoot的热部署

文章目录

        • SpringBoot学习笔记四:springBoot的热部署
          • 热部署添加依赖
          • springBoot的配置文件
          • 配置文件加载方法一
          • 实体类配置
          • 总结

热部署添加依赖
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-devtoolsartifactId>
    <optional>trueoptional>
dependency>
  1. 不被热部署的文件

/META-INF/maven,/META-INF/resources,/resources,/static,/public,/templates

  1. 指定文件不被热部署
spring.devtools.restart.exclude=static/**,public/**
  1. 手工触发重启,通过触发器控制什么时候进行热部署。解决修改一点代码就热部署。这个可以根据我们的意愿进行热部署。在application.properties中添加配置内容,一旦修改trigger.txt就会触发热部署
spring.devtools.restart.trigger-file=trigger.txt

触发器启动

springBoot的配置文件
  1. 常见的配置文件有xml,json,properties,yaml。springBoot比较常用的有yaml和properties。不过properties更好

SpringBoot学习笔记四:springBoot的热部署_第1张图片

配置文件加载方法一
  1. 在Controller上面进行配置,1、先注入配置文件,在从配置文件中获取键值对。
@PropertySource({"classpath:application.properties"})
@Value("${web.file.path}");//注意这个web.file.path需要在配置文件中进行定义。
private String filepath;

Controller注入

  1. 减少硬编码。
实体类配置
  1. 在实体类上添加@Component,先交于spring来管理
  2. 引入配置文件:@PropertySource({“classpath:application.properties”})
  3. 引入配置文件注解:@ConfigurationProperties
  4. 在成员变量添加值注入:@Value("{test.name}") private String name;
  5. 这样做到好处就是实体类就可以使用@Autowired进行注入到Controller层了。

SpringBoot学习笔记四:springBoot的热部署_第2张图片

  • 此外还可以在加入前缀,不公再写test了@ConfigurationProperties(prefix=“test”),如果用前缀,就不能再用@Value()了,自动帮我们映射了。其实如果使用了@ConfigurationProperties,不管加不加前缀只要属性名和properties中的名字相同,就不用使用@Value()。@ConfigurationProperties就是一种和配置文件映射的注解。

SpringBoot学习笔记四:springBoot的热部署_第3张图片

  • 注入bean的方式,属性名称和配置文件里面的key一一对应,就不加@Value这个注解,如果不一样,就要加@Value("${xxx}")
总结
  1. 配置文件注入失败:

根据springBoot启动流程,会自动扫描包没有扫描到的相关注解

默认spring框架,实现从声明@ComponentScan所在的类的package进行扫描,来自动注入,因此启动类最好放在根路径下面,或者指定扫描范围。springboot扫描启动类对应的目录和子目录。

你可能感兴趣的:(springBoot学习笔记)