spring中的18个注解【转】

341 阅读3分钟
  1. @Controller

    表示类是一个Spring MVC Controller类,用来创建处理http请求的对象

  2. @RestController

    替代@Controller+@ResponseBody,默认返回json格式

  3. @Service

    用于标注业务层组件

  4. @Autowired

    装配Bean,可以写在字段或者方法上,默认要求依赖对象必须存在,如果需要允许null,可以设置它的required为false

  5. @RequestMapping

    提供初步的请求映射信息,相对于WEB应用的根目录。即请求路径

  6. @RequestParam

    用于将请求参数数据映射到处理方法的参数上。如果传递过来的参数和接收的不一致,可以在注解后添加value=”xxx“(即接收的变量名)

  7. @ModelAttribute

    1. 标记在方法上,会在每个@RequestMapping标注的方法前执行。如果有返回值,则自动将返回值加入到ModelMap中。
    2. 标记在方法的参数上,会将客户端传递过来的参数按名称注入到指定对象中,并将对象加入ModelMap中

  8. @Cacheable

    标记缓存查询。

  9. @CacheEvict

    标记要清缓存的方法,方法被调用后,就会清空缓存。

  10. @Resource

    相当于@Autowired,只不过@Resource是ByName自动注入,而@Autowired是ByType自动注入。
    @Resource两个重要属性,name和type。如果有name,则ByName;如果有type,则ByType;如果都没有,则通过反射机制使用byName,如果没有匹配到,则回退成一个原始类型进行匹配,如果匹配就自动装配。

  11. @PostConstruct

    标记项目启动时执行。多用于一些全局配置、数据字典之类的加载。
    PostConstruct在构造函数之后执行,在init之前执行。

  12. @PreDestroy

    被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,PreDestroy在destroy之后执行

  13. @Repository

    标注数据访问组件,即DAO组件

  14. @Component

    泛指组件,当组件不好归类时,进行标注

  15. @Scope

    配置spring bean的作用域。默认是单例。
    1. singleton:单例,全局有且仅有一个实例。
    2. prototype:原型,每次获取Bean都有一个新实例。
    3. request:针对每次HTTP请求都会产生一个新bean,同时该bean仅在当前HTTP request内有效。
    4. session:同样表示每次HTTP请求产生一个新bean,仅在当前HTTP session内有效。
    5. global session:仅在portal应用中有用,给每一个 global http session 新建一个Bean实例。

  16. @SessionAttributes

    可以使模型中的数据存储一份到session域中。
    1. names:一个字符串数组,里面应写需要存储到session中数据的名称。
    2. types:指定参数的类型。
    3. value:和names一样。

  17. @Required

    适用于bean属性的setter方法,并表示受影响的bean属性必须在xml配置文件在配置时进行填充。

  18. @Qualifier

    创建多个具有相同类型的bean时,并想要用一个属性只为其中的一个进行装配。这时,而可以用@Qualifier和@Autowired指定哪个被装配



参考:
Spring中的18个注解,你会几个?