spring新注解说明
@Configuration、@ComponentScan在纯注解案例中已经说明,就不再阐述;这里主要讲一下@PropertySource、@Import、@Bean
1、@PropertySource
- 作用:用于加载.properties文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties配置文件中,就可以使用此注解指定properties配置文件的位置。
- 属性
- value[]:用于指定properties文件位置。如果是在类路径下,需要写上classpath:
示例代码
@Configuration
@PropertySource("classpath:info.properties")
public class Configuration_B {
}
2、@Import
- 作用:用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration注解。当然,写上也没问题。
- 属性
- value[]:用于指定其他配置类的字节码。
示例代码
@Configuration
@ComponentScan(basePackages = "cn.itcast.spring")
@Import({ Configuration_B.class})
public class Configuration_A {
}
@Configuration
@PropertySource("classpath:info.properties")
public class Configuration_B {
}
3、@Bean
- 作用:该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器。它就相当于我们之前在xml配置中介绍的factory-bean和factory-method。
- 属性
- name:给当前@Bean注解方法创建的对象指定一个名称(即bean的id)
示例代码
@Bean(name = "datasource2")
public DataSource createDS() throws Exception {
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setUser("root");
comboPooledDataSource.setPassword("1234");
comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");
comboPooledDataSource.setJdbcUrl("jdbc:mysql:///spring_ioc");
return comboPooledDataSource;
}