🎐每文一言
知世故而不世故 才是最善良的成熟
🧨🧨主要复习spring框架相关注解
目录
🧨🧨主要复习spring框架相关注解
🎯Spring Framework
🎯Spring MVC
🎯MyBatis
🎯Spring Boot
🎯Lombok
🎯 Knife4j
🎯Spring Validation
🎯Spring有关的常用注解大全
🎯Spring Framework
Spring生态的核心,包含2个核心特性:
- 第1个:IoC控制反转,是一种编程思想,反转资源的获取方向,把创建对象和管理对象交由框架管理;
- 第2个:AOP面向切面编程,是一种编程泛型,提高代码的可维护性、可重用性和可扩展性,降低代码的耦合度,集中管理横切关注点的代码,提高开发效率;
🎯Spring MVC
Spring MVC 是Spring框架的一个重要组成部分,提供了一种MVC即模型视图控制器的设计模式实现方式,将应用程序的控制器层、模型层、视图层分离,使得开发人员能够更加高效地构建Web应用程序。
🎯MyBatis
MyBatis是一个数据持久层框架,提供了简单易用的接口,通过对象关系映射让开发者能够更轻松地操作关系型数据库;
主要通过使用SQL语句和配置文件来实现,消除了几乎所有的JDBC代码和参数的手动设置,以及对结果集的检索。
🎯Spring Boot
Spring Boot 是一个快速搭建工程环境的脚手架,核心特性有:
起步依赖:创建项目时,会默认添加基础依赖,简化我们自己查找依赖的过程。
自动配置:在构建Spring应用时,只需添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。
内嵌Web服务:SpringBoot工程支持内嵌的web服务,可以将tomcat这样的服务直接嵌套到web依赖中,并且可以自动将项目打包,并在项目运行时部署到服务器中。
🎯Lombok
Lombok是一个Java库,主要作用有两个:
可以通过注解自动生成 setter getter toString等方法,减少重复代码,提高开发效率;
通过 @Slf4j 注解使用其提供的日志功能,可以有效的帮助开发者调试程序和管理服务器资源消耗
🎯 Knife4j
接口测试:内置了接口测试功能,可以在文档界面上进行接口的测试和调试;
生成离线API文档:通过注解和页面操作,可以直接生成API文档,无需额外的配置和编写文档,提高了开发效率.
🎯Spring Validation
Spring Validation 是一个数据验证框架,用于对Java对象进行校验;
可通过注解的方式对数据进行校验,避免开发人员手动校验数据的同时,又提高了系统的安全性和可靠性,有效地避免非法参数和恶意攻击
🎯Spring有关的常用注解大全
注解 | 所属框架 | 作用 | |
---|---|---|---|
1 | @Component | Spring | 添加在类上,标记当前类是组件类 可以通过参数配置 Spring Bean名称 |
2 | @Controller | Spring | 添加在类上,标记当前类是控制组件类 用法同@Component |
3 | @Service | Spring | 添加在类上,标记当前类是业务逻辑组件类 用法同@component |
4 | @Repository | Spring | 添加在类上,标记当前类是数据访问组件类 用法同@component |
5 | @Configuration | Spring | 添加在类上,仅添加次注解的类才会被视为配置类,通常不配注解参数 |
6 | @ComponentScan | Spring | 添加在配置类上,开启组件扫描 如果没有配置包名,则扫描当前配置类所在的包,如果配置类包名,则扫描所配置的包 及其子孙包 |
7 | @Value | Spring | 添加在属性上,或添加在被Spring调用的 方法的参数上,用于读取 Environment 中的属性值,为对象的属性或方法的参数注入值 |
8 | @Autowired | Spring | 添加在属性上,使得Spring自动装配此属性的值 添加在构造方法上.使得Spring自动调用此构造方法添加在Setter方法上,使得Spring自动调用此方法 |
9 | @Qualifer | Spring | 添加在属性上,或添加在方法的参数上 配合自动装配机制,用于指定需要的 Spring Bean的名称 |
10 | @Resource | Spring | 此注解是javax包中的注解,添加在属性上, 使得Spring自动装配此属性的值 通常不推荐使用此注解 |
11 | @Scope | Spring | 添加在组件类上,或添加在已经添加了@Bean注解的方法上,用于指定作用域,注解参数为 singleton(默认)时为"单例",注解参数为prototype时为"非单例" |
12 | @Aspect | Spring | 添加切面类上,属于AOP的注解 用于告诉Spring容器将该类识别为一个切面,它定义了切入点(Pointcut)和通过(Advice),切入点定义了在应用程序中哪些方法或者代码块应该被拦截和执行逻辑,通过包括前置通知,返回通知,环绕通知,异常通知和最终通知 |
13 | @Before | Spring | 前置通知,添加在切面类的方法上, 在目标方法执行前通知 |
14 | @After | Spring | 后置通知,添加在切面类的方法上, 在目标方法执行后通知 |
15 | @AfterReturnig | Spring | 返回通知,添加在切面类的方法上 在目标方法正常返回之后执行通知 |
16 | @AfterThrowing | Spring | 异常通知,添加在切面类的方法上 在目标方法抛出异常之后执行的通知 |
17 | @Around | Spring | 环绕通知,添添加在切面类的方法上 将目标方法封装起来,在目标方法调用之前和调用之后执行自定义的行为,通常使用 try ...catch ...finally 包裹 |
18 | @Mapper | Mybatis | 添加在Mapper接口上,用于标记此接口Mybatis的Mapper接口 |
19 | @MapperScan | Mybatis | 添加在配置类上,用于指定Mapper接口的跟包,Mybatis将根据此跟包执行扫描,以找到各Mapper接口 |
20 | @Select | Mybatis | 添加在Mapper接口的抽象方法上,可以通过此注解直接配置此抽象2方法对应的SQL语句(不必将SQL语句配置在XML文件中),用于配置SELECT类的SQL语句,但是,非常不推荐这种做法 |
21 | @Insert | Mybatis | 同上,用于配置INSERT类的SQL语句 |
22 | @Update | Mybatis | 同上,用于配置UPDATE类的SQL语句 |
23 | @Delete | Mybatis | 同上,用于配置DELETE类的SQL语句 |
24 | @Param | Mybatis | 添加在接口方法参数前, 用于传递多个参数给SQL语句,在Mapper接口定义多个参数时,需要使用@Param注解来标识每个参数的名字,这样Mybatis就可以将参数值绑定到SQL语句中对应的参数上 |
25 | @SpringBootApplication | Spring Boot | 添加在类上,用于标记此类是Spring Boot的启动类,每个Spring Boot 项目应该只要一个类添加了此注解 |
26 | @SpringBootTest | Spring Boot | 添加在类上,,用于标记此类是加载Spring 环境的测试类 |
27 | @Test | Spring Boot | 添加在方法上,用于标记此方法是Spring 环境测试方法 |
28 | @RequestMapping | Spring MVC | 添加在类上,,也可以添加在处理请求的方法上,通常用于配置请求路径 |
29 | @ResponseBody | Spring MVC | 添加在类上,,标记此方法是响应正文的,添加类上,标记此类中所有方法都是"响应正文"的 |
30 | @RestController | Spring MVC | 添加在类上,,标记此类上是一个"响应正文"的控制器类 |
31 | @PostMapping | Spring MVC | 添加在方法上,是将请求方式限制为"post"的@RequestMapping |
32 | @GetMapping | Spring MVC | 添加在方法上,是将请求方式限制为"get"的@RequestMapping |
33 | @DeleteMapping | Spring MVC | 添加在方法上,是将请求方式限制为"delete"的@RequestMapping |
34 | @PutMapping | Spring MVC | 添加在方法上,是将请求方式限制我"put"的@RequestMapping |
35 | @PathVariable | Spring MVC | 添加在请求参数上用于标记此参数;来自URL的占位符,如果URL的占位符名称与方法的参数名称不同,需要配置此注解来指定URL中的占位符名称 |
36 | @RequestBody | Spring MVC | 添加在请求参数上,用于标记此参数必须是对象格式的参数,如果未添加此注解,参数必须是FormData格式的 |
37 | @RequestParam | Spring MVC | 添加在请求参数上,用于将请求参数值绑定到控制器方法的参数上,同时方便使用knife4j测试 |
38 | ExceptionHandler | Spring MVC | 添加在方法上,标记此方法是处理异常的方法可以通过配置注解参数来指定需要处理的异常类型,如果没有配置注解参数,所处理的异常类型取决于方法的参数列表中的异常类型 |
39 | @ControllerAdvice | Spring MVC | 添加在类上,标记此类中特定的方法将作用于每次处理请求的过程中 |
40 | @RestControllerAdvice | Spring MVC | 添加在类上是@ControllerAdvice和@ResponseBody的组合注解 |
41 | @Data | Lombok | 添加在类上,将在编译期生成此类中所有属性的Setter方法,Get方法,以及hashcode(),equals() ,toString()方法 |
42 | @Setter | Lombok | 添加在类上,将在编译期生成此类中所有属性的Setter方法,也可以添加在类的属性上,将编译期生成此属性的Setter方法 |
43 | @Getter | Lombok | 添加在类上,将在编译期生成此类中所有属性的Get方法,也可以添加在此类属性上,将编译期生成此属性的Get方法 |
44 | @ToString | Lombok | 添加在类上,将编译期生成给予此类中所有属性的toString()方法 |
45 | @NoArgConstructor | Lombok | 添加在类上,将在编译期生成此类的无参数构造方法 |
46 | @AllArgsConstruct | Lombok | 添加在类上,将在编译期生成此类的所有属性的全参构造方法 |
47 | @Api | Knife4j | 添加在控制器类上,通过此注解的tag属性配置API文档中的模块名称 |
48 | @ApiOperation | Knife4j | 添加在控制器类中处理请求的方法上,用于配置业务名称 |
49 | @ApiModelProperty | Knife4j | 添加在封装的请求参数类型中的属性上,用于配置请求参数的详细说明,包括:名称,数据类型,是否必须相等 |
50 | @ApiImplicitParam | Knife4j | 添加在控制器类中处理请求的方法上,用于配置请求参数的详细说明,包括:名称,数据类型,是否相等 |
51 | @ApiImplicitParams | Knife4j | 添加控制器类中处理的方法上,如果需要通过@ApiImplicitParam 注解配置的参数超过1个,则必须将多个@ApiImplicitParam注解作为此注解的参数 |
52 | @ApiIgnore | Knife4j | 添加在请求参数上,用于标记API文档将不关心此参数 |
53 | @Validated | Spring Validation | 添加在方法的参数上,标记此参数需要经过Validation的框架的检查,添加在类上,并结合方法上的检查注解(例如@NotNull 等)实现对为封装的参数检查 |
54 | @NotNull | Spring Validation | 添加在需要被检查的参数上,或者添加在需要被检查的封装类型的属性上,用于配置"不允许为null"的检查规则 |
55 | @NotEmpty | Spring Validation | 使用位置同@NotNull,用于配置"不允许为空字符串"的检查规则 |
56 | @NotBlank | Spring Validation | 使用位置@NotNull,用于配置"不允许为空白"的检查规则 |
57 | @Pattern | Spring Validation | 使用位置同@NotNull,用于配置正则表达式的检查规则 |
58 | @Range | Spring Validation | 使用位置同@NotNull,用于配置"数值必须在某个取值区"的检查规则 |
下一篇内容预告✨✨✨✨:Spring Validation
文章后记
最近在搭建公众号-浅羽陪你敲代码_主要分享一下相关有关java代码知识点
感兴趣的朋友可以关注一下😍😍,日常喜欢做一些知识总结,也是为日后寻找合适的工作做准备💪,
如果有志同道合的朋友,希望能留个言,一起进步-一起奋斗(~ ̄▽ ̄)~