@Configuration, @Bean, @PropertySource, @Value, @ComponentScan
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。
Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的:
@Configuration 作用于类上,相当于一个xml配置文件;
@Bean (initMenthod ="myInit(对象创建之后调用的方法名)", destroyMethod = "close(spring容器关闭并销毁所有容器中的对象之前调用的方法名)") 作用于方法上,相当于xml配置文件中的<bean>标签,不考虑生命周期时直接写@Bean就可以;
读取外部的资源配置文件
通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值
@PropertySource(value= {"classpath:配置文件的文件名.properties", "第二个文件", ···},ignoreResourceNotFound = true (该属性是忽略没有找到的配置文件)) 作用于类上,可以读取多个配置文件
@Value("${jdbc.password}") 作用于成员变量上
示例:
@Configuration //通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "xx.xxx.xxx(需要扫描的包名)") //配置扫描包
public class SpringConfig {
@Value("${jdbc.password}")
private String jdbcPassword;
@Bean // 通过该注解来表明是一个Bean对象,相当于xml中的<bean>
public UserDAO getUserDAO(){
return new UserDAO(); // 直接new对象做演示
}
@Bean(destroyMethod = "close")
public DataSource dataSource() {
BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
// 数据库驱动
boneCPDataSource.setDriverClass(jdbcDriverClassName);
// 相应驱动的jdbcUrl
boneCPDataSource.setJdbcUrl(jdbcUrl);
// 数据库的用户名
boneCPDataSource.setUsername(jdbcUsername);
// 数据库的密码
boneCPDataSource.setPassword(jdbcUsername);
// 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
// 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
boneCPDataSource.setIdleMaxAgeInMinutes(30);
// 每个分区最大的连接数
boneCPDataSource.setMaxConnectionsPerPartition(100);
// 每个分区最小的连接数
boneCPDataSource.setMinConnectionsPerPartition(5);
return boneCPDataSource;
}
}