开发框架-Spring-Profile的配置、激活和读取
来源:互联网 发布:js url 中文乱码 编辑:程序博客网 时间:2024/06/05 04:17
说明一:这里只展示通过JavaConfig进行配置的方式,暂时没有通过XML方式的配置。
说明二:这里假设使用的上下文环境为SpringBoot。
Spring Profile的配置:
关键字:@Profile 注解
这里以数据库的配置作为示例,程序中添加了两个配置,分别是开发环境和线上环境的数据库配置,只需根据实际的环境激活相应的配置即可。
import javax.activation.DataSource; import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Profile;import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;import org.springframework.jndi.JndiObjectFactoryBean;@Configuration@ComponentScanpublic class DataSourceConfig { @Bean(destroyMethod="shutdown") @Profile("dev") public DataSource EmbeddedDataSource(){ return (DataSource) new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2) .addScript("classpath:schema.sql") .addScript("classpath:data.sql") .build(); } @Bean @Profile("prod") public DataSource jndiDataSource(){ JndiObjectFactoryBean jofb = new JndiObjectFactoryBean(); jofb.setJndiName("jndi/iDS"); jofb.setResourceRef(true); jofb.setProxyInterface(xxx.class); return (DataSource) jofb.getObject(); }}
Spring Profile的激活:
在程序启动入口激活相应配置,这里是上面配置的"dev"(实际上的激活方式有多种,这里只展示其中一种)
import com.sdsxer.mmdiary.common.Constants;import com.sdsxer.mmdiary.storage.StorageProperties;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.boot.web.support.SpringBootServletInitializer;@SpringBootApplication@EnableConfigurationProperties(StorageProperties.class)public class Application extends SpringBootServletInitializer { // war entry @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { application.profiles("dev"); return application.sources(Application.class); } // jar entry public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); }}
Spring Profile的读取:
关键字:Environment
这里展示了一个过滤器读取环境变量决定是否进行身份校验的示例
@Autowired private Environment environment; @Override public void addInterceptors(InterceptorRegistry registry) { // disable token validation interceptor under dev environment String[] profiles = environment.getActiveProfiles(); if(!ArrayUtils.contains(profiles, "dev")) { registry.addInterceptor(new TokenValidationInterceptor()).addPathPatterns("/**"); } super.addInterceptors(registry); }
阅读全文
0 0
- 开发框架-Spring-Profile的配置、激活和读取
- Spring @Profile总是无法激活的解决办法
- spring profile激活处理
- Gradle项目之Spring.profile.开发.测试.生产环境的配置和切换之一键部署
- Maven项目之Spring.profile.开发.测试.生产环境的配置和切换之一键部署
- Spring框架学习【Spring读取和处理事务配置】
- spring-激活profile(java)
- spring的profile和Enviroment
- 06-maven的profile和Spring boot 的profile整合
- Spring Boot Profile 配置
- 【Spring】Spring常用配置-Profile
- Spring 全注解配置 bean 和 调用 (2) @Profile 自适应不同的模式或环境中
- Spring框架的配置
- Spring框架的配置
- spring boot 中配置文件的读取和多环境配置
- 基于Struts、Spring、Hibernate的JavaWeb开发SSH框架配置
- 激活Maven profile的几种方式
- 激活maven profile的四种方式
- ajax post请求发送json数据报错unexpected token in json at position的问题解决
- redis 事务
- Linux hung task detect
- 【转载】jxl导出excel(合并单元格)
- VS2013 错误1error C4996: 'wcstok': This function or variable may be unsafe. Consider using wcstok_s i
- 开发框架-Spring-Profile的配置、激活和读取
- linux下wifi编程(基于netlink和nl80211.h)
- 总结
- ReactNative尝鲜
- 3.2.2用join方法使线程排队运行
- TCP三次握手问题思考
- java elastic 常用查询
- Zabbix3.2监控RabbitMQ
- Jmeter+Jenkins+Ant 搭建持续集成的接口测试平台(接口测试)