一、前言
本文承接上一节:Spring_总结_03_装配Bean(四)之导入与混合配置
这一节,来总结一下profile。
我们在开发软件时,通常会进行跨环境部署。而在跨环境部署时,经常会遇到某些环境的配置并不适用于另一环境,导致应用无法正常运行。
而profile恰好能解决这个问题。
二、概述
Profile 为不同环境下使用不同的配置提供了支持(开发环境下的配置和生成环境下的配置肯定不同,如数据库、加密算法等配置)
三、配置 Profile bean
要使用profile,首先要将所有不同的bean定义整理到一个或者多个profile中,在将应用部署到每个环境时,要确保对应的profile处于激活状态。
1.Java配置
使用@Profile注解来指定bean所属的环境
@Configuration public class DataSourceConfig { /** * 1.开发环境使用嵌入式数据源 * @return */ @Bean @Profile("dev") public DataSource embeddedDataSource(){ return (DataSource) new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2) .addScript("classpath:schema.sql") .addScript("classpath:test-data.sql") .build(); } /** * 2.生产环境使用JNDI数据源 * @return */ @Bean @Profile("prod") public DataSource jndiDataSource() { JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean(); jndiObjectFactoryBean.setJndiName("jdbc/myDS"); jndiObjectFactoryBean.setResourceRef(true); jndiObjectFactoryBean.setProxyInterface(javax.sql.DataSource.class); return (DataSource) jndiObjectFactoryBean.getObject(); } }