百度做网站多少钱能做,网站建设公司十年乐云seo,黑色系 网站,黄页推广有限公司1. 区分环境的配置
1.1. properties 配置
假设#xff0c;一个应用的工作环境有#xff1a;dev、test、prod 那么#xff0c;我们可以添加 4 个配置文件#xff1a;
applcation.properties - 公共配置application-dev.properties - 开发环境配置application-test.proper…1. 区分环境的配置
1.1. properties 配置
假设一个应用的工作环境有dev、test、prod 那么我们可以添加 4 个配置文件
applcation.properties - 公共配置application-dev.properties - 开发环境配置application-test.properties - 测试环境配置application-prod.properties - 生产环境配置
在 applcation.properties 文件中可以通过以下配置来激活 profile spring.profiles.active test
1.2. yml 配置
与 properties 文件类似我们也可以添加 4 个配置文件
applcation.yml - 公共配置application-dev.yml - 开发环境配置application-test.yml - 测试环境配置application-prod.yml - 生产环境配置
在 applcation.yml 文件中可以通过以下配置来激活 profile
spring:profiles:active: prod此外yml 文件也可以在一个文件中完成所有 profile 的配置
# 激活 prod
spring:profiles:active: prod
# 也可以同时激活多个 profile
# spring.profiles.active: prod,proddb,prodlog
---
# dev 配置
spring:profiles: dev# 略去配置---
spring:profiles: test# 略去配置---
spring.profiles: prod
spring.profiles.include:- proddb- prodlog---
spring:profiles: proddb# 略去配置---
spring:profiles: prodlog
# 略去配置注意不同 profile 之间通过 — 分割
2. 区分环境的代码
使用 Profile 注解可以指定类或方法在特定的 Profile 环境生效。
2.1. 修饰类
Configuration
Profile(production)
public class JndiDataConfig {Bean(destroyMethod)public DataSource dataSource() throws Exception {Context ctx new InitialContext();return (DataSource) ctx.lookup(java:comp/env/jdbc/datasource);}
}2.2. 修饰注解
Target(ElementType.TYPE)
Retention(RetentionPolicy.RUNTIME)
Profile(production)
public interface Production {
}2.3. 修饰方法
Configuration
public class AppConfig {Bean(dataSource)Profile(development)public DataSource standaloneDataSource() {return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.HSQL).addScript(classpath:com/bank/config/sql/schema.sql).addScript(classpath:com/bank/config/sql/test-data.sql).build();}Bean(dataSource)Profile(production)public DataSource jndiDataSource() throws Exception {Context ctx new InitialContext();return (DataSource) ctx.lookup(java:comp/env/jdbc/datasource);}
}3. 激活 profile
3.1. 插件激活 profile
spring-boot:run -Drun.profilesprod
3.2. main 方法激活 profile
–spring.profiles.activeprod
3.3. jar 激活 profile
java -jar -Dspring.profiles.activeprod *.jar
3.4. 在 Java 代码中激活 profile
直接指定环境变量来激活 profile
System.setProperty(spring.profiles.active, test);在 Spring 容器中激活 profile
AnnotationConfigApplicationContext ctx new AnnotationConfigApplicationContext();
ctx.getEnvironment().setActiveProfiles(development);
ctx.register(SomeConfig.class, StandaloneDataConfig.class, JndiDataConfig.class);
ctx.refresh();