@Autowired
@Autowired顾名思义,就是自动装配,是对spring注入对象(DI)这个行为的注解,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。
@Resource
把@Resource注解放在@Autowired下面说,是因为它们作用非常相似
说一下@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的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。
@Service
@Service注解,其实做了两件事情:
1、对bean对象进行注解,这点很重要,声明了bean之后,其他的类才可以使用@Autowired将这个类作为一个成员变量自动注入
2、Class.java在bean中的id是"class",即类名且首字母小写(小驼峰命名)
内容转载自
https://www.cnblogs.com/szlbm/p/5512931.html
http://how2j.cn/p/1746