麻绳先生

做一些记录性的工作

spring中的注解二

前文中的注解能够对自己实现的类进行处理,但是对第三方的类则无法处理,只能使用XML的方式,为了解决这个问题,有必要提出新的注解。

创建一个新类,它是一个配置作用的类,作用与applicationcontent.xml一致。

@Configuration

作用:指定当前类是一个配置类
细节:当配置类作为AnnotationConfigApplicationContext对象创建时的参数时,该注解可以省略

@ComponentScan

作用:用于通过注解指定spring在创建容器时需要扫描的包路径
属性:value,它和basePackages的作用一致,都是用于指定创建容器时扫描的包路径,它替代了xml配置文件中的

1
<context:component-scan base-package="com.zkalan"></context:component-scan>
1
2
3
@Configuration
@ComponentScan(basePackages = "com.zkalan")
public class SpringConfigurtaion{}

@Bean

作用:用于把当前方法的返回值作为bean对象存入到spring中的ioc容器中
属性:name,用于指定bean的id,当不写时,默认值是当前方法的名字
细节:当我们使用注解配置方法时,如果方法有参数,spring矿建回去容器中查找有没有可用的bean对象,查找方式和@AutoWired注解一样

使用纯注解方式时,使用AnnotationConfigApplicationContext方法获取容器对象。

@Scope

设置bean对象的实现模式,例如singleton、prototype

@Import

作用:用于导入其他的配置类
属性:value,用于指定其他配置类的字节码;有Import注解的类是父配置类,被import的是子配置类

@PropertySource

1
@PropertySource("classpath:config.properties")

在实际中,自己写的类使用注解更方便,第三方类使用XML配置更方便。