新注解说明
@Configuration
- 作用:
用于指定当前类是一个配置类,会从该类上加载注解。
- 读取该类上@ComponentScan注解
初始化spring容器。 - 该配置类的作用就相当于bean.xml文件
- 读取该类上@ComponentScan注解
注解代码
//表明当前类是一个配置类
@Configuration
//配置要扫描的包
@ComponentScan(basePackages = "com.Kato")
public class SpringConfiguration {
}
获取
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfiguration.class);
@ComponentScan
- 作用:
用于指定spring在初始化容器时要扫描的包(单个)。 属性:
- basePackages:用于指定要扫描的包。
@ComponentScan扫描的是单个包
- @ComponentScans扫描的是多个包
- 属性
- value:传入的是一个数组
- 属性
可以解决在配置文件中添加扫包然后开启支持
<!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器中 -->
<context:component-scan base-package="com.Kato"></context:component-scan>
注解代码
//表明当前类是一个配置类
@Configuration
//配置要扫描的包
@ComponentScans(value={@ComponentScan(basePackages="com.Kato")})
public class SpringConfiguration {
}
@PropertySource
- 作用:用于加载.properties文件中的配置
- 属性:
- value[]:用于指定 properties文件位置。
- 如果是在类路径下,需要写上classpath:
- @PropertySource导入的是单个加载properties配置文件
- @PropertiesSources导入的是多个加载properties配置文件
@PropertySources(value={@PropertySource(value="classpath:com/Kato/config/jdbc.properties")})
@Import
- 作用:
用于导入其他配置类 - 属性:
- value[]:用于指定其他配置类的字节码。
@Import(value={JdbcConfig.class})
@Bean
- 作用:
该注解只能写在方法上,表明使用此方法创建一个对象,会把返回值交给 spring管理。 - 属性:
- name:给当前方法返回的对象的@Bean注解方法创建的对象指定一个名称(即 bean的 id)
@Bean("dataSource")
public DataSource getDataSource(){
// 定义c3p0数据源对象
ComboPooledDataSource ds = new ComboPooledDataSource();
// 设置连接数据库的四个基本要素
try {
ds.setDriverClass(driverClass);
ds.setJdbcUrl(jdbcUrl);
ds.setUser(user);
ds.setPassword(password);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return ds;
}
/**
* @Qualifier:
* 作用:在方法形参上使用,可以独立使用,指定根据bean的id进行注入
*/
@Bean("runner")
public QueryRunner getRunner(@Qualifier("dataSource") DataSource ds){
return new QueryRunner(ds);
}