zoukankan      html  css  js  c++  java
  • 注解大全

    打算写这篇博客,来个注解字典,记录所有用过的,理解过,用过的注解。包含所有spring和非spring的各种注解。

    注解部分先后,序号只做标识。

    序号:1
    注解:@Component
    作用:表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。
    说明:Controll,Service,Reponsitory和Componet效果都完全一样,只是为了阅读方便,代码规范而已。实际都用Component注解效果一样。
    用法:
    序号:2
    注解:@Controller 
    作用:组合注解(组合了@Component注解),应用在MVC层(控制层),DispatcherServlet会自动扫描注解了此注解的类,然后将web请求映射到注解了@RequestMapping的方法上。
    说明:
    用法:放到控制器类上面
    序号:3
    注解:@Service
    作用:组合注解(组合了@Component注解),应用在service层(业务逻辑层)
    说明:
    用法:
    序号:4
    注解:@Reponsitory
    作用:组合注解(组合了@Component注解),应用在dao层(数据访问层)
    说明:
    用法:
    序号:5
    注解:@Autowired
    作用:Spring提供的工具(由Spring的依赖注入工具(BeanPostProcessor、BeanFactoryPostProcessor)自动注入
    说明:
    用法:
    序号:6
    注解:@Configuration
    作用:声明当前类是一个配置类(相当于一个Spring配置的xml文件),说白了就创建bean用的,当加了这个注解,使用了cglib代理,
    这个代理的主要作用判断bean是否已经创建,没有就调用@Configuration注解的类中方法创建bean,如果bean已经存在,就调用beanFactory.getBean创建bean 说明: 用法:
    序号:7
    注解:@ComponentScan
    作用:自动扫描指定包下所有使用@Service,@Component,@Controller,@Repository的类并注册
    说明:
    用法:
    序号:8
    注解:@Bean
    作用:注解在方法上,声明当前方法的返回值为一个Bean。返回的Bean对应的类中可以定义init()方法和destroy()方法,然后在@Bean(initMethod=”init”,destroyMethod=”destroy”)定义,在构造之后执行init,在销毁之前执行destroy
    说明:
    用法:
    序号:9
    注解:@Aspect
    作用:声明一个切面(就是说这是一个额外功能)
    说明:
    用法:
    序号:10
    注解:@After
    作用:后置建言(advice),在原方法前执行。
    说明:
    用法:
    序号:11
    注解:@Before
    作用:前置建言(advice),在原方法后执行。
    说明:
    用法:
    序号:12
    注解:@Around
    作用:环绕建言(advice),在原方法执行前执行,在原方法执行后再执行(@Around可以实现其他两种advice)
    说明:
    用法:
    序号:13
    注解:@PointCut
    作用:声明切点,即定义拦截规则,确定有哪些方法会被切入
    说明:
    用法:
    序号:14
    注解:@Transactional
    作用:声明事务(一般默认配置即可满足要求,当然也可以自定义)
    说明:
    用法:
    序号:15
    注解:@Cacheable
    作用:声明数据缓存
    说明:
    用法:
    序号:16
    注解:@EnableAspectJAutoProxy
    作用:开启Spring对AspectJ的支持
    说明:
    用法:
    序号:17
    注解:@Value
    作用:值得注入。经常与Sping EL表达式语言一起使用,注入普通字符,系统属性,表达式运算结果,其他Bean的属性,文件内容,网址请求内容,配置文件属性值等等
    说明:
    用法:
    序号:18
    注解:@PropertySource
    作用:指定文件地址。提供了一种方便的、声明性的机制,用于向Spring的环境添加PropertySource。与@configuration类一起使用。
    说明:
    用法:
    序号:19
    注解:@PostConstruct
    作用:标注在方法上,该方法在对象销毁之前执行。
    说明:
    用法:
    序号:20
    注解:@Profile
    作用:表示当一个或多个指定的文件是活动的时,一个组件是有资格注册的。使用@Profile注解类或者方法,达到在不同情况下选择实例化不同的Bean。@Profile(“dev”)表示为dev时实例化。
    说明:
    用法:
    序号:21
    注解:@EnableAsync
    作用:开启异步任务支持。注解在配置类上。
    说明:
    用法:
    序号:22
    注解:@Async
    作用:注解在方法上标示这是一个异步方法,在类上标示这个类所有的方法都是异步方法。
    说明:
    用法:
    序号:23
    注解:@EnableScheduling
    作用:注解在配置类上,开启对计划任务的支持。
    说明:
    用法:
    序号:24
    注解:@Scheduled
    作用:注解在方法上,声明该方法是计划任务。支持多种类型的计划任务:cron,fixDelay,fixRate
    说明:
    用法:
    序号:25
    注解:@Conditional
    作用:根据满足某一特定条件创建特定的Bean
    说明:
    用法:
    序号:26
    注解:@Enable*
    作用:通过简单的@Enable*来开启一项功能的支持。所有@Enable*注解都有一个@Import注解,@Import是用来导入配置类的,这也就意味着这些自动开启的实现其实是导入了一些自动配置的Bean(1.直接导入配置类2.依据条件选择配置类3.动态注册配置类)
    说明:
    用法:
    序号:27
    注解:@RunWith
    作用:这个是Junit的注解,springboot集成了junit。一般在测试类里使用:@RunWith(SpringJUnit4ClassRunner.class) — SpringJUnit4ClassRunner在JUnit环境下提供Sprng TestContext Framework的功能
    说明:
    用法:
    序号:28
    注解:@ContextConfiguration
    作用:用来加载配置ApplicationContext,其中classes属性用来加载配置类:@ContextConfiguration(classes = {TestConfig.class(自定义的一个配置类)})
    说明:
    用法:
    序号:29
    注解:@ActiveProfiles
    作用:用来声明活动的profile–@ActiveProfiles(“prod”(这个prod定义在配置类中))
    说明:
    用法:
    序号:30
    注解:@EnableWebMvc
    作用:用在配置类上,开启SpringMvc的Mvc的一些默认配置:如ViewResolver,MessageConverter等。同时在自己定制SpringMvc的相关配置时需要做到两点:1.配置类继承WebMvcConfigurerAdapter类2.就是必须使用这个@EnableWebMvc注解。
    说明:
    用法:
    序号:31
    注解:@RequestMapping
    作用:用来映射web请求(访问路径和参数),处理类和方法的。可以注解在类和方法上,注解在方法上的@RequestMapping路径会继承注解在类上的路径。同时支持Serlvet的request和response作为参数,也支持对request和response的媒体类型进行配置。其中有value(路径),produces(定义返回的媒体类型和字符集),method(指定请求方式)等属性。
    说明:
    用法:
    序号:32
    注解:@ResponseBody
    作用:将返回值放在response体内。返回的是数据而不是页面
    说明:
    用法:
    序号:33
    注解:@RequestBody
    作用:允许request的参数在request体中,而不是在直接链接在地址的后面。此注解放置在参数前。
    说明:
    用法:
    序号:34
    注解:@PathVariable
    作用:放置在参数前,用来接受路径参数。
    说明:
    用法:
    序号:35
    注解:@RestController
    作用:组合注解,组合了@Controller和@ResponseBody,当我们只开发一个和页面交互数据的控制层的时候可以使用此注解。
    说明:
    用法:
    序号:36
    注解:@ControllerAdvice
    作用:用在类上,声明一个控制器建言,它也组合了@Component注解,会自动注册为Spring的Bean。
    说明:
    用法:
    序号:37
    注解:@ExceptionHandler
    作用:用在方法上定义全局处理,通过他的value属性可以过滤拦截的条件:@ExceptionHandler(value=Exception.class)–表示拦截所有的Exception。
    说明:
    用法:
    序号:38
    注解:@ModelAttribute
    作用:将键值对添加到全局,所有注解了@RequestMapping的方法可获得次键值对(就是在请求到达之前,往model里addAttribute一对name-value而已)。
    说明:
    用法:
    序号:39
    注解:@InitBinder
    作用:通过@InitBinder注解定制WebDataBinder(用在方法上,方法有一个WebDataBinder作为参数,用WebDataBinder在方法内定制数据绑定,例如可以忽略request传过来的参数Id等)。
    说明:
    用法:
    序号:40
    注解:@WebAppConfiguration
    作用:一般用在测试上,注解在类上,用来声明加载的ApplicationContext是一个WebApplicationContext。他的属性指定的是Web资源的位置,默认为src/main/webapp,我们可以修改为:@WebAppConfiguration(“src/main/resources”)。
    说明:
    用法:
    序号:41
    注解:@EnableAutoConfiguration
    作用:此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。该注解组合了@Import注解,@Import注解导入了EnableAutoCofigurationImportSelector类,它使用SpringFactoriesLoader.loaderFactoryNames方法来扫描具有META-INF/spring.factories文件的jar包。而spring.factories里声明了有哪些自动配置。
    说明:
    用法:
    序号:42
    注解:@SpingBootApplication
    作用:SpringBoot的核心注解,主要目的是开启自动配置。它也是一个组合注解,主要组合了@Configurer,@EnableAutoConfiguration(核心)和@ComponentScan。可以通过@SpringBootApplication(exclude={想要关闭的自动配置的类名.class})来关闭特定的自动配置。
    说明:
    用法:
    序号:43
    注解:@ImportResource
    作用:虽然Spring提倡零配置,但是还是提供了对xml文件的支持,这个注解就是用来加载xml配置的。
    说明:
    用法:@ImportResource({“classpath
    序号:44
    注解:@ConfigurationProperties
    作用:将properties属性与一个Bean及其属性相关联,从而实现类型安全的配置。
    说明:
    用法:@ConfigurationProperties(prefix=”authot”,locations={“classpath
    
    
    序号:45
    注解:@ConfigurationProperties
    作用:将properties属性与一个Bean及其属性相关联,从而实现类型安全的配置。
    说明:
    用法:@ConfigurationProperties(prefix=”authot”,locations={“classpath
    序号:46
    注解:@ConditionalOnBean
    作用:条件注解。当容器里有指定Bean的条件下。
    说明:
    用法:
    序号:47
    注解:@ConditionalOnClass
    作用:条件注解。当类路径下有指定的类的条件下。
    说明:
    用法:
    序号:48
    注解:@ConditionalOnExpression
    作用:条件注解。基于SpEL表达式作为判断条件。
    说明:
    用法:
    序号:49
    注解:@ConditionalOnJava
    作用:条件注解。基于JVM版本作为判断条件。
    说明:
    用法:
    序号:50
    注解:@ConditionalOnJndi
    作用:条件注解。在JNDI存在的条件下查找指定的位置。
    说明:
    用法:
    序号:51
    注解:@ConditionalOnMissingBean
    作用:条件注解。当容器里没有指定Bean的情况下。
    说明:
    用法:
    序号:52
    注解:@ConditionalOnMissingClass
    作用:条件注解。当类路径下没有指定的类的情况下
    说明:
    用法:
    序号:53
    注解:@ConditionalOnNotWebApplication
    作用:条件注解。当前项目不是web项目的条件下
    说明:
    用法:
    序号:54
    注解:@ConditionalOnResource
    作用:条件注解。类路径是否有指定的值。
    说明:
    用法:
    序号:55
    注解:@ConditionalOnSingleCandidate
    作用:条件注解。当指定Bean在容器中只有一个,后者虽然有多个但是指定首选的Bean。
    说明:
    用法:
    序号:56
    注解:@ConditionalOnWebApplication
    作用:条件注解。当前项目是web项目的情况下。
    说明:
    用法:
    序号:57
    注解:@EnableConfigurationProperties
    作用:注解在类上,声明开启属性注入,使用@Autowired注入。
    说明:
    用法:@EnableConfigurationProperties(HttpEncodingProperties.class)。
    
    
    序号:58
    注解:@AutoConfigureAfter
    作用:在指定的自动配置类之后再配置。
    说明:
    用法:
    序号:59
    注解:@AssertFalse
    作用:验证注解的元素值是false
    说明:
    用法:
    序号:60
    注解:@AssertTrue
    作用:验证注解的元素值是true
    说明:
    用法:
    序号:61
    注解:@NotNull
    作用:验证注解的元素值不是null
    说明:
    用法:
    序号:62
    注解:@Null
    作用:验证注解的元素值是null
    说明:
    用法:
    序号:63
    注解:@Min(value=值)  @DecimalMin(value=值)
    作用:验证注解的元素值大于等于@Min或@DecimalMin指定的value值 说明: 用法:
    序号:64
    注解:@Max(value=值)   @DecimalMax(value=值)
    作用:验证注解的元素值小于等于@Max或@DecimalMax指定的value值 说明: 用法:
    序号:65
    注解:@Digits
    作用:验证注解的元素值的整数位数和小数位数上限
    说明:
    用法:
    序号:66
    注解:@Size(min=下限, max=上限)
    作用:验证注解的元素值的在min和max(包含)指定区间之内,如字符长度、集合大小
    说明:
    用法:
    序号:67
    注解:@Past
    作用:验证注解的元素值(日期类型)比当前时间早
    说明:
    用法:
    序号:68
    注解:@Future
    作用:验证注解的元素值(日期类型)比当前时间晚
    说明:
    用法:
    序号:69
    注解:@NotBlank
    作用:验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的首位空格
    说明:
    用法:
    序号:70
    注解:@Length(min=下限, max=上限)
    作用:验证注解的元素值长度在min和max区间内
    说明:
    用法:
    序号:71
    注解:@NotEmpty
    作用:验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)
    说明:
    用法:
    序号:72
    注解:@Range(min=最小值, max=最大值)
    作用:验证注解的元素值在最小值和最大值之间
    说明:
    用法:
    序号:73
    注解:@Email(regexp=正则表达式,flag=标志的模式)
    作用:证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式
    说明:
    用法:
    序号:74
    注解:@Pattern(regexp=正则表达式,flag=标志的模式)
    作用:验证注解的元素值与指定的正则表达式匹配
    说明:
    用法:
    序号:75
    注解:@Valid
    作用:指定递归验证关联的对象;如用户对象中有个地址对象属性,如果想在验证用户对象时一起验证地址对象的话,在地址对象上加@Valid注解即可级联验证
    说明:
    用法:
    序号:76
    注解:@SuppressWarnings 作用:抑制编译警告,传入的参数有很多 例如:all表示抑制所有警告,unchecked表示抑制代码开发阶段黄色警告,unused用于去除变量没有使用的警告 用法:@SuppressWarnings("unchecked"),放在方法上面,可以去除方法的一些警告,比如:Unchecked cast: 'java.lang.Object' to 'java.util.List<java.lang.Object>'
    序号:77
    注解:@PostMapping是一个
    作用:组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。
    说明: 用法:
    序号:78
    注解:@EqualsAndHashCode
    作用: lombok插件的@Data注解会自动生成get和set还有toString方法,但是这些方法默认是没有用到父类的成员。加上这个注解即可。只要启用了这个注解,指定callSuper为true后,@Data就彻底没有黄色警告。这个是最佳实践。
    说明:
    用法:@EqualsAndHashCode(callSuper = true)
    
    
    序号:79
    注解:@ToString
    作用:lombok插件的@Data注解会自动生成get和set还有toString方法,但是这些方法默认是没有用到父类的成员。加上这个注解即可。但是编译器idea依然会提示@Data黄色警告。
    说明: 
    用法:@ToString(callSuper = true)
    序号:80
    注解:@MappedSuperclass
    作用:这个是在JPA里面,当多个表有公共字段时,写一个公共的父类,其他表对应的entity类继承这个父类时,父类必须要加入这个注解,表示数据表的字段映射关系会把父类的公共字段加入进去。
    说明:另外在querydsl里面也要这么做,即使使用lombok注解@EqualsAndHashCode或者@ToString调用了父类,也要这么加上@MappedSuperclass,
       因为lombok注解,只对把bean转成字符串时会把父类解析出来,而把bean映射到数据库表字段时,需要用到@MappedSuperclass。
       另外lombok的ToString注解都是放在子类里面,没有放在父类的注解,而字段映射到注解都是放在父类的。
    用法:@MappedSuperclass
    序号:81
    注解:
    作用:
    说明:
    用法:
    序号:82
    注解:
    作用:
    说明:
    用法:
    序号:83
    注解:
    作用:
    说明:
    用法:
    序号:84
    注解:
    作用:
    说明:
    用法:
    序号:85
    注解:
    作用:
    说明:
    用法:
    序号:86
    注解:
    作用:
    说明:
    用法:
    序号:87
    注解:
    作用:
    说明:
    用法:
    序号:88
    注解:
    作用:
    说明:
    用法:
    序号:89
    注解:
    作用:
    说明:
    用法:
    序号:90
    注解:
    作用:
    说明:
    用法:
    序号:91
    注解:
    作用:
    说明:
    用法:
    序号:92
    注解:
    作用:
    说明:
    用法:
    序号:93
    注解:
    作用:
    说明:
    用法:
    序号:94
    注解:
    作用:
    说明:
    用法:
    序号:95
    注解:
    作用:
    说明:
    用法:
    序号:96
    注解:
    作用:
    说明:
    用法:
    序号:97
    注解:
    作用:
    说明:
    用法:
    序号:98
    注解:
    作用:
    说明:
    用法:
    序号:99
    注解:
    作用:
    说明:
    用法:
    序号:100
    注解:
    作用:
    说明:
    用法:

    @Repository需要用@MapperScan扫描mapper才能注入@Bean

    而@Mapper注解相当于@Repository注解+@MapperScan注解,通过xml文件下的namespace命名空间自动注入bean



  • 相关阅读:
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit  atiMail atiDns新特性 v2  q39
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit.aticmd v4  新特性q39 添加定时器释放功能
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    Atitit.编程语言and 自然语言的比较and 编程语言未来的发展
    atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31
    知也atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException  v2 q31无涯 - I
  • 原文地址:https://www.cnblogs.com/geektcp/p/10115827.html
Copyright © 2011-2022 走看看