Spring Boot从入门到精通-注解详解

作者 : 开心源码 本文共1832个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共181人阅读

说起注解,就不得不说到三个最基本的注解:

  • Target:公告注解用于什么地方,用的最多的是注解在类上(@Target({ElementType.TYPE}))和方法(@Target({ElementType.METHOD}))上。
  • Retention:定义该注解的生命周期
    RetentionPolicy这个枚举类型的常量形容保留注释的各种策略,它们与元注释(@Retention)一起指定注释要保留多长时间。
public enum RetentionPolicy {    /**     * Annotations are to be discarded by the compiler.     */    SOURCE,    /**     * Annotations are to be recorded in the class file by the compiler     * but need not be retained by the VM at run time.  This is the default     * behavior.     */    CLASS,    /**     * Annotations are to be recorded in the class file by the compiler and     * retained by the VM at run time, so they may be read reflectively.     *     * @see java.lang.reflect.AnnotatedElement     */    RUNTIME}

-Documented:Documented注解表明这个注释是由 javadoc记录的。
以上是三个公共注解,基本上所有的注解都会继承这三个注解。

接下来是Spring Boot中常用的少量注解。

  • @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。
  • @Configuration:等同于spring的XML配置文件;使用Java代码可以检查类型安全。
  • @EnableAutoConfiguration:自动配置。
  • @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发解决器将会扫描使用了该注解的类的方法,并检测该方法能否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正解决请求的解决器
  • @ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。
  • @RestController:@ResponseBody和@Controller的合集。
  • @RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。
  • @ComponentScan:表示将该类自动发现扫描组件。假如扫描到有@Component、@Controller、@Service、@Autowired、@Configuration等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件。
  • @Inject:等价于默认的@Autowired,只是没有required属性
  • @Service:一般用于修饰service层的组件
  • @Repository:使用@Repository注解可以确保DAO或者者repositories提供异常转译,这个注解修饰的DAO或者者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
  • @Bean:用@Bean标注方法等价于XML中配置的bean。
  • @Scope(“prototype”): 公告bean初始化类型,默认为单例
  • @PostConstruct:初始化bean执行的方法
  • @PreDestory:销毁bean前执行的方法
  • @Qualifier:当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用
  • @Value:注入Spring boot application.yml配置的属性的值
  • @ControllerAdvice:包含@Component。可以被扫描到。统一解决异常。

以上是我们常用的少量注解的含义,当然我们也可以自己设置注解。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Spring Boot从入门到精通-注解详解

发表回复