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执行处理。
原文地址:https://www.cnblogs.com/bytecodebuffer/p/10375116.html