Spring注解
2023-11-23 20:56:59 0 举报
AI智能生成
Spring注解思维导图
作者其他创作
大纲/内容
spring framework
1. 核心注解
<font color="#3da8f5">@Component</font>
表示一个类是一个组件,通常是一个被Spring管理的Bean。
<font color="#3da8f5">@Service</font>
表示一个类是一个服务类,通常用于标识业务层的Bean。
<font color="#3da8f5">@Repository</font>
表示一个类是一个仓库类,通常用于标识数据访问层的Bean。
<font color="#3da8f5">@Controller</font>
表示一个类是一个控制器,通常用于标识Web控制器类。
<font color="#3da8f5">@Configuration</font>
表示一个类是一个配置类,通常用于定义Bean的配置信息。
<font color="#3da8f5">@Bean</font>
用于在@Configuration类中定义Bean。
<font color="#3da8f5">@Import</font>
用于将其他@Configuration类导入到当前@Configuration类中。
2. 依赖注入相关注解
<font color="#3da8f5">@Autowired</font>
自动装配,用于在Bean之间建立依赖关系。
<font color="#3da8f5">@Qualifier</font>
用于指定@Autowired装配的Bean的名称。
<font color="#3da8f5">@Resource</font>
自动装配,用于在Bean之间建立依赖关系,可以指定Bean的名称。
<font color="#3da8f5">@Value</font>
用于注入属性值。
3. AOP相关注解
<font color="#3da8f5">@Aspect</font>
表示一个类是一个切面。
<font color="#3da8f5">@Pointcut</font>
定义一个切点,用于指定哪些方法需要被切入。
<font color="#3da8f5">@Before</font>
在方法执行之前执行切面逻辑。
<font color="#3da8f5">@After</font>
在方法执行之后执行切面逻辑。
<font color="#3da8f5">@AfterReturning</font>
在方法返回之后执行切面逻辑。
<font color="#3da8f5">@AfterThrowing</font>
在方法抛出异常时执行切面逻辑。
<font color="#3da8f5">@Around</font>
在方法执行之前和之后执行切面逻辑。
4. 事务管理相关注解
<font color="#3da8f5">@Transactional</font>
用于标识事务管理的方法。
不生效的场景
https://blog.csdn.net/dudu0917/article/details/126670974
<font color="#3da8f5">@Propagation</font>
用于指定事务的传播行为。
<font color="#3da8f5">@Isolation</font>
用于指定事务的隔离级别。
<font color="#3da8f5">@RollbackFor</font>
用于指定哪些异常需要回滚事务。
<font color="#3da8f5">@NoRollbackFor</font>
用于指定哪些异常不需要回滚事务。
5. Web开发相关注解
<font color="#3da8f5">@RequestMapping</font>
用于映射HTTP请求的URL和处理方法。
<font color="#3da8f5">@GetMapping</font>
用于映射HTTP GET请求的URL和处理方法。
<font color="#3da8f5">@PostMapping</font>
用于映射HTTP POST请求的URL和处理方法。
<font color="#3da8f5">@PutMapping</font>
用于映射HTTP PUT请求的URL和处理方法。
<font color="#3da8f5">@DeleteMapping</font>
用于映射HTTP DELETE请求的URL和处理方法。
<font color="#3da8f5">@PathVariable</font>
用于获取URL中的参数。
<font color="#3da8f5">@RequestParam</font>
用于获取请求参数。
<font color="#3da8f5">@RequestBody</font>
用于获取请求体中的数据。
<font color="#3da8f5">@ResponseBody</font>
用于将方法的返回值序列化为JSON格式并返回给客户端。
<font color="#3da8f5">@ResponseStatus</font>
用于指定方法的HTTP响应状态码。
<font color="#3da8f5">@ControllerAdvice</font>
用于定义全局异常处理器。
<font color="#3da8f5">@ExceptionHandler</font>
用于定义异常处理方法。
Java Servlet API注解(不是spring注解)
@WebFilter
用于声明一个过滤器类,用于拦截发送到Web应用程序的HTTP请求和响应。使用这个注解可以配置应该被过滤器拦截的URL模式。
@WebFilter+@Order时候,@order不生效
https://blog.csdn.net/Zong_0915/article/details/126747302
@ServletComponentScan
用于指定Servlet容器应该自动扫描和注册组件(如过滤器和Servlet)。这个注解通常用在主应用程序配置文件上,例如Spring Boot应用程序类。
6. 定时任务相关注解
@Scheduled
用于定义定时任务的执行时间。
@EnableScheduling
用于开启定时任务。
7. 测试相关注解
@RunWith
用于指定测试运行器。
@Test
用于定义测试方法。
@Before
用于定义在测试方法执行之前执行的方法。
@After
用于定义在测试方法执行之后执行的方法。
@BeforeClass
用于定义在测试类加载之前执行的方法。
@AfterClass
用于定义在测试类加载之后执行的方法。
8. 其他常用注解
<font color="#3da8f5">@Conditional</font>
用于根据条件决定是否加载配置。
<font color="#75c940">@Profile</font>
用于定义配置的激活环境。
<font color="#3da8f5">@Lazy</font>
用于延迟加载Bean。
<font color="#3da8f5">@DependsOn</font>
用于指定Bean的依赖关系。
<font color="#75c940">Spring boot</font>
<font color="#75c940">1. 核心注解</font>
<font color="#3da8f5">@SpringBootApplication</font>
该注解是一个组合注解,用于标识Spring Boot应用的主类。
<font color="#3da8f5">@Configuration</font>
该注解表示该类是一个配置类,类似于XML配置文件。
<font color="#3da8f5">@ComponentScan</font>
该注解用于指定Spring应用上下文中的组件扫描规则。
<font color="#3da8f5">@EnableAutoConfiguration</font>
该注解用于启用Spring Boot自动配置功能。
2. Web开发相关注解
<font color="#3da8f5">@RestController</font>
该注解是@Controller和@ResponseBody的组合注解,用于标识控制器类。
3. 数据库相关注解
<font color="#3da8f5">@EnableJpaRepositories</font>
该注解用于启用Spring Data JPA功能。
<span class="tag"><font color="#3da8f5">@Entity</font></span>
该注解用于标识JPA实体类。
<font color="#3da8f5">@Table</font>
该注解用于指定实体类对应的数据库表名。
<font color="#3da8f5">@Id</font>
该注解用于标识实体类的主键属性。
<font color="#3da8f5">@GeneratedValue</font>
该注解用于标识主键属性的自动生成策略。
<font color="#3da8f5">@Column</font>
该注解用于指定实体类属性对应的数据库列名。
<font color="#3da8f5">@Repository</font>
该注解用于标识数据访问组件。
4. 安全相关注解
<span class="tag"><font color="#3da8f5">@EnableWebSecurity</font></span>
该注解用于启用Spring Security功能。
<span class="tag"><font color="#3da8f5">@EnableGlobalMethodSecurity</font></span>
该注解用于启用全局方法安全功能。
<span class="tag"><font color="#3da8f5">@Secured</font></span>
该注解用于限制方法的访问权限。
<span class="tag"><font color="#3da8f5">@PreAuthorize</font></span>
该注解用于在方法执行之前检查权限。
<span class="tag"><font color="#3da8f5">@PostAuthorize</font></span>
该注解用于在方法执行之后检查权限。
5. 测试相关注解
<span class="tag"><font color="#3da8f5">@SpringBootTest</font></span>
该注解用于定义Spring Boot应用程序的集成测试。
<span class="tag"><font color="#3da8f5">@WebMvcTest</font></span>
该注解用于定义Spring MVC应用程序的单元测试。
<span class="tag"><font color="#3da8f5">@DataJpaTest</font></span>
该注解用于定义Spring Data JPA应用程序的单元测试。
6. 缓存相关注解
<span class="tag"><font color="#3da8f5">@EnableCaching</font></span>
该注解用于启用Spring缓存功能。
<span class="tag"><font color="#3da8f5">@Cacheable</font></span>
该注解用于缓存方法的返回值。
<span class="tag"><font color="#3da8f5">@CachePut</font></span>
该注解用于更新缓存中的数据。
<span class="tag"><font color="#3da8f5">@CacheEvict</font></span>
该注解用于清除缓存中的数据。
7. 定时任务相关注解
<span class="tag"><font color="#3da8f5">@EnableScheduling</font></span>
该注解用于启用Spring定时任务功能。
<span class="tag"><font color="#3da8f5">@Scheduled</font></span>
该注解用于定义定时任务的执行规则。
8. 配置相关注解
<span class="tag"><font color="#3da8f5">@Value</font></span>
该注解用于注入配置文件中的属性值。
<span class="tag"><font color="#3da8f5">@ConfigurationProperties</font></span>
该注解用于注入配置文件中的属性值,并将其绑定到实体类上。
<span class="tag"><font color="#3da8f5">@Profile</font></span>
该注解用于指定应用程序的配置文件。
<span class="tag"><font color="#3da8f5">@Conditional</font></span>
该注解用于根据条件决定是否加载Bean。
自定义starter
<span class="tag">@ConditionalOnBean,仅在当前上下文中存在某个bean时,才会实例化这个Bean。</span><br>
<span class="tag">@ConditionalOnClass,某个class位于类路径上,才会实例化这个Bean。</span>
<span class="tag">@ConditionalOnExpression,当表达式为true的时候,才会实例化这个Bean。</span>
<span class="tag">@ConditionalOnMissingBean,仅在当前上下文中不存在某个bean时,才会实例化这个Bean。</span>
<span class="tag">@ConditionalOnMissingClass,某个class在类路径上不存在的时候,才会实例化这个Bean。</span>
<span class="tag">@ConditionalOnNotWebApplication,不是web应用时才会实例化这个Bean。</span>
<span class="tag">@AutoConfigureAfter,在某个bean完成自动配置后实例化这个bean。</span>
<span class="tag">@AutoConfigureBefore,在某个bean完成自动配置前实例化这个bean</span>
<font color="#ffaf38">Spring Cloud</font>
1. 服务发现相关注解
<font color="#3da8f5">@EnableDiscoveryClient</font>
该注解用于启用服务发现功能。
<font color="#3da8f5">@LoadBalanced</font>
该注解用于启用客户端负载均衡功能。
<font color="#3da8f5">@FeignClient</font>
该注解用于定义Feign客户端接口。
2. 配置中心相关注解
<font color="#3da8f5">@RefreshScope</font>
该注解用于实现动态刷新配置。
3. 熔断器相关注解
<font color="#3da8f5">@EnableCircuitBreaker</font>
该注解用于启用Hystrix熔断器功能。
<font color="#3da8f5">@HystrixCommand</font>
该注解用于定义熔断器命令。
4. 分布式事务相关注解
<font color="#3da8f5">@EnableTransactionManagement</font>
该注解用于启用分布式事务管理功能。
<font color="#3da8f5">@GlobalTransactional</font>
该注解用于标识全局事务。
5. 异步
<font color="#3da8f5">@EnableAsync</font>
该注解用于启用异步方法调用功能。
<font color="#3da8f5">@Async</font>
该注解用于定义异步方法。
Mybatis
SQL语句映射
<span class="tag">@Select</span> 实现查询功能
<span class="tag">@Insert</span> 实现新增功能
<span class="tag">@Update</span> 实现更新功能
<span class="tag">@Delete</span> 实现删除功能
<span class="tag">@SelectKey</span> 获取自增主键或序列的值
<span class="tag">@Param</span> 映射多个参数
结果集映射
<span class="tag">@Result、@Results</span>
<span class="tag">@ResultMap</span>
关系映射
<span class="tag">@One</span> 用于一对一映射关系
<span class="tag">@Many</span> 用于一对一映射关系
0 条评论
下一页