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

 

  泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注

原文地址:https://www.cnblogs.com/a591378955/p/8305020.html