zoukankan      html  css  js  c++  java
  • Spring 注解

    1. @Configuration

    @Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被
    AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,
    初始化Spring容器。

    2.@Bean

    @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的
    bean的id为方法名


    @Scope 注解来指定使用@Bean定义的bean的作用域,name属性自定义bean id

     3.@component

    把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

    4.@controller

    @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了
    该注解的类的方法。

    通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。

    5.@Service

    @Service("userService")注解是告诉spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫
    "userService",这样当Action需要使用UserServiceImpl的的实例时,就可以由Spring创建好的"userService"
    然后注入给Action。

    6.@Repository

    @Repository(value="userDao")注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。
    当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")
    注解告诉Spring,Spring把创建好的userDao注入给Service即可。

    7.@Autowire

    @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,我们也要清楚,@Autowired是
    根据类型进行自动装配的。

    元注解:负责注解其他注解,包括(@Target、@Retention、@Documented、@Inherited)

    8.@Target

      作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
      取值:  
        1.CONSTRUCTOR :用于描述构造器
        2.FIELD :用于描述域
        3.LOCAL_VARIABLE :用于描述局部变量
        4.METHOD :用于描述方法
        5.PACKAGE :用于描述包
        6.PARAMETER :用于描述参数
        7.TYPE :用于描述类、接口、枚举

      实例:
        @Target(ElementType.TYPE)
        public @interface Table{
          //method
        }

    9.@Retention

    作用:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效)
    取值:
      1.SOURCE :源文件中有效
      2.CLASS :在class文件中有效
      3.RUNTIME :运行时有效(通过反射获取该注解的属性值)
    例子:

    @Target(ElementType.FIELD)
    @Rentention(RententionPolicy.RUNTIME)
    public @interface Colum{
      //
    }

    10.Document

    @Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。

    11.Inherited

    @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,
    则这个annotation将被用于该class的子类。

     关于缓存的注解

    12.@CacheConfig

    一个类中多个缓存注解共享机制,包括 value,keygeneration

    13.@CachePut

    @CachePut 标注的方法执行前不去检测缓存中是否有之前执行的结果,而是每次都执行该方法,并将执行的结果以键值对的方式存入缓存。
    应避免 @CachePut 与@Cacheable 同时使用

    14.@CacheEvict

    @CacheEvict 清理缓存,参数 allEntries 表示清除所有的元素,默认为false,当指定为 true ,表示清理所有的缓存(在执行方法之后清理)。
    参数beforeInvocation为true表示执行方法之前清理

    15.@Cacheable

    @Cacheable 是声明方法是可以缓存的,将结果存储到缓存,使用相同的参数调用不需要执行实际的方法

    16.@EnableCaching

    @EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,
    那么你就不需要在XML文件中配置cache manager了。当你在配置类(@Configuration)上使用@EnableCaching注解时,会触发一个post processor,
    这会扫描每一个spring bean,查看是否已经存在注解对应的缓存。如果找到了,就会自动创建一个代理拦截方法调用,使用缓存的bean执行处理。
  • 相关阅读:
    java实现文件上传下载至ftp服务器
    理解java代理模式
    [置顶] 理解java中的线程池
    wait,notify,非阻塞队列实现生产者,消费者模型
    理解java阻塞队列BlockingQueue
    CentOS下安装配置Nginx
    putty笔记
    CentOs下安装jdk、MySql、Redis笔记
    简述yum和apt-get的区别
    Linux 文件颜色说明
  • 原文地址:https://www.cnblogs.com/baizhuang/p/10375116.html
Copyright © 2011-2022 走看看