spring的注解
用于创建对象存放在IOC容器中的注解:
以下注解功能基本相同(为区分三层架构一般存放位置不同)
@Component
@Repository 一般用于持久层
@Controller 一般用于表现层
@Service 一般用在业务层
用于注入数据的注解
用于注入bean类型数据的三个注解(@Autowired @Qualifier @Resource )
@Autowired 自动按类型注入IOC容器中存在的且与自身匹配的对象
匹配方式是:先按照类型找到所有相同类型的对象 若找到一个则注入若找到多个 再按照变量名字作为IOC容器map结构的id 进行更精准的匹配,从而找到唯一一个匹配项 若找到多个获不存在则报错
@Qualifier 属性value是用于指定bean的id。但他不能单独使用,在给类成员注入时候必须和@Autowired配合使用,不然会产生空指针异常。
@Resource 属性name是用于指定bean的id。可以独立使用。可以直接按照bean的id注入。
以上三个注入只能注入bean类型的数据,基本类型和String类型无法使用上述的注解实现。
另外集合类型的注入只能通过xml方式实现
用于注入基本类型和String类型的数据
@Value 用于指定数据的值 可以使用spring中EL表达式 ${ }
用于改变作用范围的注解(作用和bean标签的scope属性实现的功能是一致的)
@Scope 用于执行bean的作用范围 一般取值为singleton 和 prototype
用于和生命周期相关的注解(一般不用)(作用和bean标签的)
PreDestroy 用于指定销毁方法
PostConstruct 用于指定初始化方法