概述
纯注解不使用spring xml配置文件
1.@Configuration
spring的配置类,相当于bean.xml文件
作用:用于指定当前类是一个spring配置类,当创建容器时会从该类上加载注解。获取容器时需要使用AnnotationApplicationContext(有@Configuration注解的类.class)。
属性:value:用于指定配置类的字节码
2.@ComponentScan
相当于**<context:component-scanbase-package="priv.xy"/>
**
作用:用于指定spring在初始化容器时要扫描的包。作用和在spring的xml配置文件中的:context:component-scanbase-package=“priv.xy”/是一样的。
属性:basePackages:用于指定要扫描的包。和该注解中的value属性作用一样。
demo
@Configuration
@ComponentScan("priv.xy")
public class TestConfiguration {
}
3.@Bean
作用:该注解只能写在方法上(用@Configuration类的方法),表明使用此方法创建一个对象,并且放入spring容器。
属性:name:给当前@Bean注解方法创建的对象指定一个名称(即bean的id)。
demo
@Bean(name = "dataSource")
public DataSource createDataSource() {
try {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setUser("root");
ds.setPassword("1234");
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
return ds;
} catch (Exception e) {
thrownewRuntimeException(e);
}
}
4.@PropertySource
作用:用于加载.properties文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties配置文件中,就可以使用此注解指定properties配置文件的位置。
属性:value[]:用于指定properties文件位置。如果是在类路径下,需要写上classpath:
5.@Import
作用:用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration注解。写上也没问题。
属性:value[]:用于指定其他配置类的字节码。
demo
@Configuration
@ComponentScan("priv.xy")
@Import({OtherConfig.class})
public class TestConfiguration {
}