栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot多环境配置文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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启动类上边注解的地方添加类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/632220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号