Spring的注解

tech2022-08-11  143

Spring的注解

传统的Spring做法是使用xml来对bean进行注入和配置AOP,事务,这样的话有两个缺点:

如果将所有的内容都写到xml中,xml文件会变得特别大,这样的不利于对xml进行修改和管理(可读性和维护的减低)在开发中,在java和xml文件的不断切换,影响开发的效率

为了解决这样的问题,提出了Spring 注解,这样大大减小开发文件的大小和java bean的可读性和内聚性。

@Autowired注解:自动装配,作用:消除代码中的getter/setter与bean属性中的property。默认按类型匹配byType,在容器查找匹配的bean,当且仅有一个bean时,Spring将其注入@AutoWired标注的变量中。

<bean id="zoo" class="com.spring.model.Zoo" /> <bean id="tiger" class="com.spring.model.Tiger" /> <bean id="monkey" class="com.spring.model.Monkey" />

​ 这样,在Zoo类中的属性上设置了@Autowired注解的,这样如果扫描到@Autowired注解,就会去xml文件中,将tiger对象和monkey对象装配到Zoo类中的属性的属性值上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CoKEYbYp-1599055771663)(C:\Users\15975\AppData\Roaming\Typora\typora-user-images\image-20200902122127360.png)]

@Qualifier注解是通过制定bean的名称使用的,但是要配合@Autowired一起使用

@Resource注解:说一下@Resource的装配顺序: (1)、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配 (2)、指定了name或者type则根据指定的类型去匹配bean (3)、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错

区分一下@Autowired和@Resource两个注解的区别: (1)、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配 (2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了

最新回复(0)