springboot(2)——应用配置和热部署

版权声明:本文出自mqy1023的博客,转载必须注明出处。 https://blog.csdn.net/mqy1023/article/details/79633278

《二》、应用配置和热部署

一、application应用配置

Idea新建的项目默认配置文件为application.properties

  • 1、我们修改它的后缀为application.yml,
    因为xx.yml格式文件级联写法比较省事等
# application.yml启用application-dev.yml开发配置
spring:
  profiles:
    active: dev

server:
  port: 8899
  • 2、新建application-dev.ymlapplication-prod.yml分别为开发和生产环境下的配置

二、资源文件属性配置

1、通过注解将配置文件的值注入到java代码中

  • 1、在application.yml中
name: eric
age: 18

# 配置中使用当前配置
content: "name: ${name}, age: ${age}"
  • 2、java代码中注解绑定
// org.springframework.beans.factory.annotation.Value
@Value("${age}")
private Integer age;

@Value("${name}")
private String name;

@Value("${content}")
private String content;

2、封装成一个属性对象

  • 1、在application.yml中配置一组对象属性
person:
  name: eric
  age: 18
  • 2、PersonProperties.java类绑定配置对象属性
@Data // lombok省略get和set
@Component // 使用时对应@Autowired注解
@ConfigurationProperties(prefix = "person")
public class PersonProperties {

    private String name;

    private Integer age;
}
  • 3、使用对象配置的值
@Autowired
private PersonProperties personProperties;
// 使用, personProperties.getName() + personProperties.getAge();

三、开发环境下热部署

<!-- 热部署 -->
<!-- devtools可以实现页面热部署(即页面修改后会立即生效,
    这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false、
    spring.freemarker.cache=false来实现) -->
<!-- 实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 -->
<!-- 即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),
    注意:因为其采用的虚拟机机制,该项重启是很快的 -->
<!-- (1)base classloader (Base类加载器):加载不改变的Class,例如:第三方提供的jar包。 -->
<!-- (2)restart classloader(Restart类加载器):加载正在开发的Class。 -->
<!-- 为什么重启很快,因为重启的时候只是加载了在开发的Class,没有重新加载第三方的jar包。 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <!-- optional=true, 依赖不会传递, 该项目依赖devtools;
        之后依赖boot项目的项目如果想要使用devtools, 需要重新引入 -->
    <optional>true</optional>
</dependency>

yml配置环境下如下:

  • 1、关闭freemarker模板缓存

    spring.freemarker.cache = false

  • 2、热部署生效

    spring.devtools.restart.enabled = true

  • 3、additional-paths指定目录下更改文件会启动热部署restart
spring:
    freemarker:
        cache: false
    devtools:
        restart:
            enabled: true
            additional-paths: /src/main/java
  • 4、建议更改资源文件后手动重启

参考链接

springboot学习笔记:7.IDEA下5步完成热部署配置

猜你喜欢

转载自blog.csdn.net/mqy1023/article/details/79633278