Spring Boot核心注解思维导图
2025-08-30 14:55:57 1 举报
AI智能生成
Spring Boot核心注解思维导图概述了构建Spring Boot应用所必需的关键注解。这些注解通常分为几个类别:启动配置、数据访问、安全性和事务处理等。例如,`@SpringBootApplication` 是一个组合注解,它包含了 `@Configuration`、`@EnableAutoConfiguration` 和 `@ComponentScan`,用于声明应用上下文的主要入口,并自动配置Spring上下文。`@RestController` 和 `@RequestMapping` 注解通常配合使用,定义RESTful服务的端点。在数据访问层,`@Repository` 和 `@Entity` 分别用来标记数据访问组件和实体类。安全相关的注解如 `@EnableWebSecurity` 常用于配置Web安全策略。而事务管理则通过 `@Transactional` 注解进行声明。对于文件类型和修饰语的要求,由于Spring Boot是围绕Java生态构建的,这些注解都是Java文件中的类级别注解,同时它们是框架提供的特定修饰符,通常用public修饰,以确保Spring容器能够检测并管理这些类。
作者其他创作
大纲/内容
启动与配置
@SpringBootApplication
组合注解:`@Configuration` + `@ComponentScan` + `@EnableAutoConfiguration`
使用场景:主类上标注启动Spring Boot应用
效果:启动Spring Boot并自动配置
@Configuration
标识该类为配置类
使用场景:替代XML配置文件
效果:可以定义Bean
@ComponentScan
自动扫描并注册Bean
使用场景:配置扫描路径
效果:自动注入组件
@EnableAutoConfiguration
启动自动配置
使用场景:Spring Boot自动配置机制
效果:根据类路径自动配置Bean
@PropertySource
加载指定的属性文件
使用场景:读取自定义配置文件
效果:用于`@Value`注入
@Import
导入其他配置类
使用场景:多模块配置
效果:合并多个配置类
@ImportResource
导入XML配置文件
使用场景:与旧项目兼容
效果:用于兼容Spring XML配置
@Profile
按环境激活配置
使用场景:开发/测试/生产环境切换
效果:按条件加载Bean或配置
@ConfigurationProperties
描述:将配置文件映射为对象
使用场景:读取复杂结构配置
效果:例如读取`app.datasource.*
控制层(Web)
@RestController
@Controller
控制器类
使用场景:返回视图名
效果:用于返回HTML页面
请求映射注解
@RequestMapping
映射请求路径
使用场景:通用映射
效果:支持GET/POST等
@GetMapping
映射GET请求
使用场景:获取资源
效果:简化`@RequestMapping(method = RequestMethod.GET)`
其他请求映射注解(Post/Put/Delete)
类似`@GetMapping`,针对不同请求类型
参数处理注解
@PathVariable
获取URL中的变量
使用场景:动态路径
效果:例如`/user/{id}`
@RequestParam
获取请求参数
使用场景:查询参数
效果:例如`?name=Tom`
@RequestBody与@ResponseBody
处理请求与响应体
@Primary
描述:标记主数据源
使用场景:多个数据源配置
效果:区分主数据源和从数据源
服务层与依赖注入
服务层
@Service
描述:标记为服务层组件
使用场景:业务逻辑处理
效果:用于自动注入
@Component
描述:标记为通用组件
使用场景:工具类、辅助类
效果:Spring自动扫描
@Repository
描述:标记为数据访问层组件
使用场景:DAO类
效果:支持异常转换
依赖注入
@Autowired
描述:自动注入依赖
使用场景:注入Service、Repository等
效果:支持多种方式注入
@Value
描述:注入配置属性
使用场景:读取`application.properties`
效果:例如`@Value("${app.name}")`
数据绑定与校验
@Valid
描述:启用参数校验
使用场景:接口参数验证
效果:配合`@NotBlank`等使用
@NotBlank
描述:校验字符串非空
使用场景:表单提交
效果:不能为空
@NotNull
描述:校验对象非空
使用场景:参数校验
效果:不能为null
@Size
描述:校验长度
使用场景:字符串、集合等
效果:限制最小最大长度
@Min / @Max
描述:校验数值范围
使用场景:数值校验
效果:限制最小最大值
AOP切面
@Aspect
描述:标记为切面类
使用场景:日志、权限、性能监控
效果:定义切面逻辑
@Pointcu
描述:定义切点
使用场景:AOP配置
效果:指定要拦截的方法
@Before / @After / @Around
描述:定义通知切面执行逻辑前置、后置、环绕通知
使用场景:切面执行逻辑
效果:前置、后置、环绕通知
自定义注解
@Primary
描述:标记主数据源
使用场景:多个数据源配置
效果:区分主数据源和从数据源
@Target / @Retention
描述:定义注解元信息
使用场景:创建自定义注解
效果:用于自定义行为
@Inherited
描述:注解继承
使用场景:子类继承父类注解
效果:用于框架扩展
异常处理
@ControllerAdvice
描述:全局异常处理器
使用场景:统一处理异常
效果:适用于所有Controller
@ExceptionHandle
描述:处理特定异常
使用场景:Controller内部异常处理
效果:捕获并处理异常
@ResponseStatus
描述:设置HTTP响应状态码
使用场景:异常抛出时
效果:例如返回404、500等

收藏
0 条评论
下一页