开发中常用注解及自定义注解

亦凉 2024-04-17 06:03 191阅读 0赞

文章目录

    • 常见的注解:
        • java自带的注解
        • 第三方注解
        • 元注解
        • 自定义注解

在java中注解是一个很重要的组成部分,使用注解能够使代码更加简洁,动态的提高代码的扩展性和可维护性。

按照来源分类:

  • java自带的注解
  • 第三方提供的注解
  • 自定义的注解
  • 元注解

常见的注解:

java自带的注解

  • @Override 重写
  • @Test 测试
  • @Deprecated 方法过时
  • @SuppresWarning 忽略警告
  • @Resource 自动装配

第三方注解

@Repository:    用于标注数据访问组件,即DAO组件

@Service:    用于标注业务层组件

@Controller:    控制层

@Transactional:    声明这service所有方法都需要事务管理。每一个业务方法开始时都会打开一个事务

@Component:    把该中立的类交给spring管理

@Autowired:    自动装配,将bean容器里的值自动注入到bean

@Path:      处理REST请求,接口路径

@RequestBody

作用于形参上,将前台发来的固定格式的数据(xml或json)封装成JavaBean对象

如何封装: 使用系统默认配置的 HttpMessageConverter对数据进行解析,然后封装到形参上

body-> JavaBean

@ResponseBody

作用于方法,表明此方法的返回值写入Http response body中

如何写入: 该注解作用的方法返回一个对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区

JavaBean-> body

@RestController

@Controller与@ResponseBody的结合

@Configuration

表明是一个配置类

。。。

元注解

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

@Retention::表示它所标识的注解的生命周期
RetentionPolicy.SOURCE:表示该注解只在源码中存在
RetentionPolicy.CLASS: 表示该注解只在源码和编译时存在
RetentionPolicy.RUNTIME: 表示该注解在源码和编译时以及运行时存在

@Inherited: 表示该注解可以被继承

@Documented:表示该注解可以在生成API文档的时候显示在文档上,注解将被包含至javadoc中.

自定义注解

使用元注解来自定义注解。

定义注解格式:public @interface 注解名 {定义体}

  1. 自定义注解:

    //在方法上使用
    @Target(ElementType.METHOD)
    //生命周期在编译及运行时
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @interface Student{

    1. String name();
    2. String sex() default "男";
    3. int age() default 18;

    }

  2. 使用自定义注解的类:

    import java.lang.annotation.*;

    public class StudentTest {

    1. @Student(name="张三")
    2. public void show(){
    3. }

    }

  3. 提取注解参数:

    @Test

    1. public void contextLoads() {
    2. Class<StudentTest> studentTestClass = StudentTest.class;
    3. try {
    4. Student show = studentTestClass.getMethod("show").getAnnotation(Student.class);
    5. System.out.println(show.name());
    6. System.out.println(show.sex());
    7. System.out.println(show.age());
    8. } catch (NoSuchMethodException e) {
    9. e.printStackTrace();
    10. }
    11. }

输出结果:
在这里插入图片描述
以上实现自定义注解

发表评论

表情:
评论列表 (有 0 条评论,191人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java 注解开发_Java定义注解开发

    一、背景 最近在自己搞一个项目时,遇到可需要开发自定义注解的需求,对于没有怎么关注这些java新特性的来说,比较尴尬,索性就拿出一些时间,来进行研究下自定义注解开发的步骤以及

    相关 Java 注解定义注解处理器

    注解介绍 注解,也被称为元数据(所谓的元数据,就是描述数据的数据)。 所以注解的主要作用就是给指定代码一些描述信息。这些指定代码可以是一个类、一个方法或者是一个属性。

    相关 开发注解

    偶然一次,被面试官问道,说说你都用过哪些注解,回忆起来,开发过程中真没少用到注解开发,但是还没有详细的总结过,故写下这篇随手笔记,有用到新的注解也会继续在这篇博客里更新 --