提示:本文大部分翻译采用APP直接翻译
@Override
-重写方法
@Deprecatd
过时方法使用会编译警告https://baike.baidu.com/item/%E6%B3%A8%E8%A7%A3/22344968
@SuppessWarnings
忽略声明警告
@Target
--标记注解为哪个java成员
@Inherited
标记注解继承哪个注解
@SafeVarargs
忽略任何参数关于 泛型变量的方法和构造函数产生的警告
@FunctionalInterface
标识一个匿名函数或函数式接口
@Repeatable
标识某注解可以在同一个声明上使用多次。
Retention
描述注解保留的时间范围
package java.lang.annotation;
/**
* Annotation retention policy. The constants of this enumerated type
* describe the various policies for retaining annotations. They are used
* in conjunction with the {@link Retention} meta-annotation type to specify
* how long annotations are to be retained.
*
* @author Joshua Bloch
* @since 1.5
*/
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.
*注释将被编译器记录在类文件中由VM在运行时保留,因此它们可能被反射地读取。
运行期保留 可以通过反射获得注解信息
* @see java.lang.reflect.AnnotatedElement
*/
RUNTIME
}
描述注解的使用范围(即:被修饰的注解可以用在什么地方) 。
public enum ElementType {
/** Class, interface (including annotation type), or enum declaration 类,接口,枚举类 */
TYPE,
/** Field declaration (includes enum constants) 成员变量 枚举常量*/
FIELD,
/** Method declaration 成员方法 */
METHOD,
/** Formal parameter declaration 方法参数*/
PARAMETER,
/** Constructor declaration 构造方法*/
CONSTRUCTOR,
/** Local variable declaration 局部变量*/
LOCAL_VARIABLE,
/** Annotation type declaration 注解类*/
ANNOTATION_TYPE,
/** Package declaration 修饰包*/
PACKAGE,
/**
* Type parameter declaration
*类型 参数 1,。8 新增
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
*使用类型的任意地方
* @since 1.8
*/
TYPE_USE
}
Documented
机反(记录注释)是一个标记注解 功能生成帮助文档时保留其注解信息
默认情况下,JavaDoc 是不包括注解的,但如果声明注解时指定了 @Documented,就会被 JavaDoc 之类的工具处理,所以注解类型信息就会被包括在生成的帮助文档中。
Inherited
机反(遗传)标记注解 用来指定该注解可以被继承
Result
Controller
//控制器 @component扩展 用于指示Spring类的实例是一个控制器,该注解不需要在实现COntroller接口
//只需要加入控制器类上 ,spring扫描机制加会找到这个类
//需要在xml中 添加 包扫描配置信息
RequestMapping
//用于映射一个请求或者一个方法,可以放在方法或者类上面
//在类上 : 该类中的所有方法到将映射为相对于类级别的请求,表示该控制器所有请求映射到value属性值所指定的路劲下 /user/selectUser
//在方法上 : 作为请求处理方法在程序接受到对应的url请求时调用
PatchMapping
GetMapping
PostMapping
PutMapping
等于= @RequestMapping(value = “/updatePerson”,method =
RequestMethod.PUT) 就相对于这个了 这几个 都是相同类似的 注解
DeleteMapping
RestController
相当于@ResponseBody和@Controller的组合注解
原来返回json需要@ResponseBody和@Controller配合。
ResponseBody
将java对象转为json格式的数据,使用此注解之后不会再走视图处理器 , 可以把后台传到前端的数据自动转换为json
RequestBody
用来接收前端传递给后台的json字符串 一般是post请求
一个请求,只有一个RequestBody
看大佬的去
注意
使用requestBody时不能使用getMapping请求 因为 不支持request body 中放值
推荐文章
RequestParam
作用 :传递参数
在接收前端传递的参数时,参数的名字必须有对应的名字 如果没有对应的名字会报400
一个请求,可以有多个RequestParam。
方法中的参数
value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
也可以直接接MAP
PathVariable
(路径变量)PathParam
()这个注解是和spring的pathVariable是一样的,也是基于模板的,但是这个是jboss包下面的一个实现,上面的是spring的一个实现,都要导包
QueryParam
是jax-rs提供的 和 spring RequestParam的功能是一样的
ExceptionHandler
作用 : 自定义注解
有什么用 :可以当成异常拦截器
用在方法上 结合ControllerAdvice注解 可以进行全局异常拦截处理
ControllerAdvice
这是一个增强的 Controller
用来
全局异常处理
全局数据绑定
全局数据预处理
Data
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
注解在类上, 为类提供get,set读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
AllArgsConstructor
翻译:所有构造函数
会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验,
使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数就是全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。
NoArgsConstructor
翻译: 无参数构造函数
无参构造函数
RequiredArgsConstructor
Spring 从 4.0 开始, 就不在 推 荐 使 用 属 性 注 入 ,原因是它会让我们忽略掉一些代码的隐患。
所以,构造器的方法就成了首选。
可以生成带有必需参数的构造函数
把需要注入的属性,修改成 final 类型的(或者使用 @NotNull 注解,不推荐),这些属性将构成默认的构造器。
基于lombok包,必须引用lombok
Component
最普通的组件,可以被注入到spring容器进行管理
把普通pojo实例化到spring容器中,相当于配置文件中的
Service
作用于业务逻辑层
把服务层的类交给springioc容器管理
Slf4j
pom文件加入lombok的依赖
作日志输出的,
SpringBootApplication
(Spring Boot 应用程序)有了它项目就可以运行起来,因为他相当于3个注解的功能
SpringBootConfiguration
(Spring Boot 配置)加载Spring的配置
EnableAutoConfiguration
(启用自动配置)ComponentScan
(组件扫描)Configuration
(配置)等同于spring的XML配置文件(将类标记为应用程序上下文的Bean定义的源。)
Import
@Import引入普通的类可以帮助我们把普通的类定义为Bean。@Import可以添加在@SpringBootApplication(启动类)、@Configuration(配置类)、@Component(组件类)对应的类上。
Secured
和@PreAuthorize
连接
Autowired
翻译 : 自动连线
如果容器中存在一个bean,这个bean的类型和id与被标注@Autowired的属性或者方法参数的类型和名称相同, 就可以完成依赖注入 主要用到的功能就是依赖注入了
推荐文章
Resource
翻译:资源
spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。
类似Autowired Autowired默认按种类自动找 resource 默认按面字
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
看的这个兄弟的
FieldEncrypt
mybatis- plus-mate
付费使用面向企业的版本,里面提供了企业常规需要的一些东西,这个注解就是里面提供的加密功能的注解,可以写在字段上,也有脱敏相关的内容
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Trim {
}
和trim方法差不多
JUnit5 @BeforeAll 注解替换了 JUnit4 中的@BeforeClass注解。 它用于表示应在当前测试类中的所有测试之前执行注解方法。