Spring常用注解
1、@Autowired ( required = true )
自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property
@Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。
2、@Qualifier(指定注入Bean的名称)
当@Autowired注解标注在一个接口上,而此接口有两个实现类,Spring并不知道应当引用哪个实现类,此时会抛出异常
3、@Resource( name = " " , type = xxx.class )
@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之间的耦合。
4、@Service
声明某个类是一个bean,在工程启动的时候spring容器会创建这个类的实例,id默认为类名首字母小写,也可以自定义实例的名字,可以通过ApplicationContext的getBean(name)方法来获取对象
5、@Controller
对应控制层Bean,会被SpringMVC框架调用
6、@Scope
singleton:创建的bean单例的;prototype:每次获取bean的时候都会new一个新的对象出来
7、@ Repository
作为持久层操作(数据库)的bean来使用
8、@ResponseBody
将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据;需要注意的是,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,效果等同于通过response对象输出指定格式的数据。
9、@Component
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注