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