@Bean修飾的方法參數的注入方式:
方法參數默認注入方式為Autowired,即先根據類型匹配,若有多個在根據名稱進行匹配。
1:復雜類型可以通過@Qualifier(value=“XXX”)限定;
2:對於普通類型使用@Value(XXX)指定;
@PropertySource("classpath:db.properties")
public class SpringConfiguration {
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
/**
* 方法參數默認注入方式為Autowired: <br>
* 1:復雜類型可以通過@Qualifier(value="dataSource")限定; <br>
* 2:對於普通類型使用@Value指定; <br>
*/
@Bean(name = "dataSource")
public DataSource dataSource(@Value("${jdbc.driverClass}") String driverClassName,
@Value("${jdbc.jdbcUrl}") String url, @Value("${jdbc.user}") String username,
@Value("${jdbc.password}") String password) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
@Bean(name = "jdbcTemplate")
public JdbcTemplate jdbcTemplate(@Qualifier(value = "dataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
會從Spring容器中根據類型注入(若有多個類型的的話則根據方法名按名稱注入,沒有找到就會報錯)