0    注解  通用

0.1    java.lang

  • @Deprecated  方法不再建议使用

 

 

 

1    注解  SpringBoot

1.1    SpringBoot注解

   @Around 注解    环绕增强

  @Valid    用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。

 

@Autowired 的作用是什么?
@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。
@Autowired 默认是按照类去匹配,配合 @Qualifier 指定按照名称去装配 bean。

@PostConstruct注解 仔细看

https://blog.csdn.net/qq360694660/article/details/82877222

 

@Value 注解可以用来将外部的值动态注入到 Bean 中,在 @Value 注解中,可以使用 ${} 或 #{}。${} 与 #{} 的区别如下:  https://www.hxstrive.com/article/854.htm

(1)@Value("${}"):可以获取对应属性文件中定义的属性值。

(2)@Value("#{}"):表示 SpEl 表达式通常用来获取 bean 的属性,或者调用 bean 的某个方法。

 

2    注解  LomBok

2.1    LOMBOK常用注解

 

2.2    LomBok  @Builder注解demo

package com.ddwei.test.dto;

import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class StudentDto {
    private String id;
    private String name;
}
package com.ddwei.test.normal;

import com.ddwei.test.dto.StudentDto;
import org.junit.Test;

public class BuilderTest {

    @Test
    public void testBuilder(){
        StudentDto studentDto = StudentDto.builder().id("001").name("小明").build();
    }

}

 

 

2.3    LomBok  @Builder 继承 问题解决

父类:

package com.ddwei.test.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@AllArgsConstructor
@Getter
@Setter
public class Person {
private String age;
private String name;
}

 

子类:

package com.ddwei.test.dto;

import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Teacher extends Person{
private String school;

@Builder
public Teacher(String age, String name, String school) {
super(age, name);
this.school = school;
}
}

 

实现类:

package com.ddwei.test.normal;

import com.ddwei.test.dto.Person;
import com.ddwei.test.dto.Teacher;
import com.github.houbb.bean.mapping.core.util.BeanUtil;
import org.junit.Assert;
import org.junit.Test;

public class BuilderTest2 {
@Test
public void testBuilder(){
Teacher teacher = Teacher.builder().age("33").school("北京一中").build();
Person person = new Person("32","小王");
BeanUtil.copyProperties(person,teacher);
System.out.println(teacher.getSchool()+" "+teacher.getName()+" "+teacher.getAge());
Assert.assertEquals("32",teacher.getAge());
}
}

 参考:https://blog.csdn.net/m0_43426835/article/details/121975147

 

3    注解  Junit

3.1    Junit  常用注解

@DisplayName  自定义名称

 

4    注解  JSR

4.1    JSR常用注解

@NotNull 不允许为空

@Valid  用于验证注解是否符合要求,直接加在变量之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。

参考:https://blog.csdn.net/weixin_38118016/article/details/80977207/

 

 

 

5    注解类编写

5.1    Demo(Springcloud课程)

相关链接:https://www.cnblogs.com/1446358788-qq/p/14296120.html

package com.imooc.coupon.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 忽略统一响应定义
 */
@Target({ElementType.TYPE,ElementType.METHOD})//当前注解可以定义到类或者方法上
@Retention(RetentionPolicy.RUNTIME)//在何时起作用?运行时起作用
public @interface IgnoreResponseAdvice {
}

 

 

6    注解类应用

6.1    如何判断某个类或者方法是否添加某个注解?

相关链接调用:https://www.cnblogs.com/1446358788-qq/p/14296120.html#_label3

if(methodParameter.getDeclaringClass().isAnnotationPresent(IgnoreResponseAdvice.class)
                ||
                methodParameter.getMethod().isAnnotationPresent(IgnoreResponseAdvice.class)){

 

posted on 2021-08-04 11:21  菜鸟乙  阅读(60)  评论(0)    收藏  举报