springboot多环境配置文件

一.springboot的多配置文件应对场景

介绍:在实际开发的时候,工程会有多个环境,开发环境,测试环境,生产环境,实际上线时,每个环境的数据库地址,服务器端口号等配置会有所不同,所以针对每一个环境,需要一个配置文件,只需要在主配置文件中启动对应的环境的配置文件。

二.springboot的多配置文件的命名方式
#主配置文件
application.properties

#对应环境的配置文件
application-dev.properties
application-test.properties
application-prod.properties

在对应环境拿到工程后需要切换对应的配置文件,只需要在application.properties文件中进行配置那个配置文件启用。

#这样会加载application-test.properties配置文件
spring.profiles.active = test
三.实际生产中指定配置文件生效
#这是springboot在外部指定配置文件生效,
java -jar app.jar --spring.profiles.active=dev--server.port=8060
四.配置多环境日志
logging.config=classpath:logging/logback-${spring.profiles,active}.xml

当环境切换时,会同时切换对应的日志后缀名,这样就可以做到切换配置文件时切换日志文件的后缀名

五.一个环境使用多个配置文件
spring.profiles.include= devFile,devIO

这样设置可以在单个环境中使用多个配置文件

*当多环境文件重复设置时,会以include文件的设置的最后一个的设置为准,可以理解为,从前到后覆盖配置。

六.在某个配置文件中引用其他配置文件的内容

使用${}的形式去调用其他配置文件当中的内容

七.配置文件优先级
#高等级的配置文件会覆盖低等级的同等配置文件
#1.--项目根目录config文件夹里边(优先级最高)
/config


#2.--项目根目录
/


#3.--src/main/resources/config/文件夹里面
classpath:/config


#4.--src/main/resources/
classpath:/

#1-4优先级从高到低,优先级高的配置文件会覆盖优先级低的配置文件内容
八.工程部署时外部指定配置文件
java -jar app.jar --spring.config.logcation=D:/application.properties
九.通过配置文件来动态的设置参数的值(灵活,多变,可以在项目部署时随意修改参数的值)

(1)通过注解形式读取配置文件的路径,来读取配置文件中的变量

/**
 *获取配置文件中的值
 */
@Controller
@PropertySource("classpath:application-test1.properties") //@PropertySource()用来读取配置文件所在的位置
public class test1 {
    @Value("${server.port}") //通过Value注解来读取配置文件中的值
    private String serverPort;

    @RequestMapping(value = "/test")
    @ResponseBody
    public String getServerPort(){
        return serverPort;
    }
}

(2)通过Environment 来获取配置文件

/**
 *获取配置文件中的值
 */
@Controller
public class test1 {
    @Autowired
    private Environment environment;

    @RequestMapping(value = "/test")
    @ResponseBody
    public String getServerPort(){
        return environment.getProperty("server.port");
    }
}

(3)通过@ConfigurationProperties(prefix = “配置文件中的前缀”)

@Component
@ConfigurationProperties(prefix = "nnn")
@Data
public class configurationTest {
    private String name;
}

prefix是前缀的意思,在配置文件中的前缀

server.port=8085
nnn.name = "zestful"

*注意一点,使用ConfigurationProperties的类文件一定要能被spring检测到,可以使用三种方式

直接在类的上边添加@Component

通过测试类在spring容器中进行注册

直接在springboot启动类上边注解的地方添加类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值