spring注解(ioc控制反转:降低依赖)
1.用来创建对象
@Component:用于把当前对象存入spring容器中,如果;没有指定bean的id,默认为当前类名,并且首字母小写,如果要指定id则@Component("id")
下面三个和Component一样的作用,但为什么还要分下面三个呢?因为spring有三层架构,这样使三层架构对象更加清晰:
@Controller:表现层
@Service:业务层
@Repository:持久层
2.用于注入数据
①@Autowired:自动按类型注入,只要容器中有唯一的一个bean对象类型和要注入的变量类型一致,就可以注入成功,反之,如果ioc容器中没有任何bean类型和要注入的变量类型匹配,则出现异常。
如果ioc容器中有多个类型匹配时,首先先按照类型进行匹配,那么如果出现多个,再接着使用成员变量名作为bean的id去匹配多个对象的key,如果有一样的则可以注入成功,如果都不一样则出现异常,注入失败。
②@Qualifier:在按照类中的注入基础之上再按照名称注入,它在成员变量注入时不能单独使用,必须在@Autowired下使用:
@Autowired
@Qualifier("id")
③Resource:直接按照bean的id注入,可以单独使用,属性:name
@Resource("id")
④@Value:用于注入基本类型和String类型
@Value("id")
3.用于改变作用范围
@Scope
4.和生命周期相关
@PostConstruct:用于指定初始化方法
@PreDestroy:用于指定销毁方法