使用@Profile进行环境搭建,读取配置文件的方式
1、@Profile注解是Spring为我们提供的可以根据当前环境,动态的激活和切换一系列bean的功能。我们以开发环境、测试环境、生产环境连接不同的数据源为例。新建一个组件配置类:MainConfigOfProfile

3、在组件配置类中配置上测试环境,生产环境,开发环境的数据源。package com.gwolf.config;import javax.sql.DataSource;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.mchange.v2.c3p0.ComboPooledDataSource;@Configurationpublic class MainConfigOfProfile { @Bean public DataSource dataSourceTest() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setUser("root"); dataSource.setPassword("root"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm_crud"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); return dataSource; } @Bean public DataSource dataSourceDev() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setUser("root"); dataSource.setPassword("root"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3307/ssm_crud"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); return dataSource; } @Bean public DataSource dataSourceProduct() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setUser("root"); dataSource.setPassword("root"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3308/ssm_crud"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); return dataSource; }}

5、读取配置文件中的值有很多中方式,首先使用注解@PropertySource在组件配置类中加载配置文件。

7、在方法上使用@Value注解得到属性资源文件中的值。package com.gwolf.config;import jav锾攒揉敫ax.sql.DataSource;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import com.mchange.v2.c3p0.ComboPooledDataSource;@Configuration@PropertySource("classpath:dbconfig.properties")public class MainConfigOfProfile { @Value("${jdbc.user}") private String user; @Bean public DataSource dataSourceTest(@Value("${jdbc.password}") String password) throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setUser(user); dataSource.setPassword(password); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm_crud"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); return dataSource; } @Bean public DataSource dataSourceDev() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setUser("root"); dataSource.setPassword("root"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3307/ssm_crud"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); return dataSource; } @Bean public DataSource dataSourceProduct() throws Exception { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setUser("root"); dataSource.setPassword("root"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3308/ssm_crud"); dataSource.setDriverClass("com.mysql.jdbc.Driver"); return dataSource; }}
