使用 org.springframework.core.env.Environmentjava
使用佔位符mysql
使用 spring 表達式(SpEL)spring
datasource.url=jdbc:mysql://localhost:3306/spring_test?useUnicode=true&characterEncoding=utf-8 datasource.driverClassName=com.mysql.jdbc.Driver datasource.username=root datasource.password=123456 datasource.initialSize=5 datasource.maxActive=10 datasource.maxWait=6000
@Configuration @PropertySource("classpath:application.properties") @EnableTransactionManagement public class DataConfig { @Autowired private Environment env; @Bean public DruidDataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(env.getProperty("datasource.driverClassName")); ds.setUrl(env.getProperty("datasource.url")); ds.setUsername(env.getProperty("datasource.username")); ds.setPassword(env.getProperty("datasource.password")); ds.setInitialSize(5); ds.setMaxActive(10); ds.setMaxWait(60000); return ds; } ... }
@PropertySource 引入屬性文件sql
注入 Environment,使用 getProperty 系列方法獲取屬性app
@Configuration @PropertySource("classpath:application.properties") @EnableTransactionManagement public class DataTestConfig { @Value("${datasource.driverClassName}") private String driverClassName; @Value("${datasource.url}") private String url; @Value("${datasource.username}") private String username; @Value("${datasource.password}") private String password; @Value("${datasource.initialSize}") private int initialSize; @Value("${datasource.maxActive}") private int maxActive; @Value("${datasource.maxWait}") private int maxWait; @Bean public DruidDataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(driverClassName); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); ds.setInitialSize(initialSize); ds.setMaxActive(maxActive); ds.setMaxWait(maxWait); return ds; } ... }
因爲我的以爲佔位符的方法是SpEL中的一種,因此只展現這一種ui
@PropertySource 引入屬性文件編碼
使用 @Value 注入屬性(至關於注入值的 bean,可是 SpEL 更爲強大,還有其餘用處)url
佔位符 ${...}spa
使用 @PropertySource 引入,如上code
javaconfig,使用 PropertySourcesPlaceholderConfigurer 引入
@Bean public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() { PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer(); placeholderConfigurer.setLocations(new ClassPathResource("application.properties")); return placeholderConfigurer; }
xml 方式(這個沒寫,其實就是將javaconfig轉換成xml配置便可)