当前位置: 首页 > news >正文

spring 核心注解整理

总结一下,核心注解涵盖以下方面:

  1. 依赖注入相关注解
  2. Bean定义和组件扫描注解
  3. 配置类相关注解
  4. 条件化配置注解
  5. 作用域和生命周期注解
  6. AOP相关注解
  7. 事务管理注解
  8. 属性注入相关注解
  9. 测试相关注解
  10. Spring Boot核心注解(如果需要)

每个部分列出注解名称,简要说明作用,并给出代码示例。这样用户能够全面了解Spring的核心注解,并在实际开发中正确应用。

以下是 Spring 框架中 核心注解 的分类整理,涵盖依赖注入、配置管理、Bean 声明等核心功能:


一、依赖注入(Dependency Injection)

注解作用示例
@Autowired自动注入 Bean,默认按类型匹配。可标注在字段、构造函数或方法上。@Autowired private UserService userService;
@Qualifier按名称指定注入的 Bean,用于解决多个同类型 Bean 的冲突。@Autowired @Qualifier("userServiceImplA") UserService userService;
@ResourceJSR-250 标准注解,按名称注入(类似 @Autowired + @Qualifier)。@Resource(name = "userDao") private UserDao userDao;
@Value注入配置文件属性或 SpEL 表达式结果。@Value("${app.name}") private String appName;

二、Bean 声明与组件扫描

注解作用示例
@Component通用注解,标记类为 Spring Bean(需被组件扫描)。@Component public class UserService { ... }
@Service标注服务层组件(功能同 @Component,语义更明确)。@Service public class UserServiceImpl implements UserService {}
@Repository标注数据访问层组件(DAO 层),自动处理数据库异常。@Repository public class UserDaoImpl implements UserDao {}
@Controller标注控制器层组件(Spring MVC)。@Controller public class UserController { ... }
@Configuration标记类为配置类,定义 Bean。@Configuration public class AppConfig { ... }
@Bean在配置类中定义 Bean,方法名默认作为 Bean 名称。@Bean public DataSource dataSource() { return new HikariDataSource(); }

三、配置与条件化

注解作用示例
@Conditional根据条件决定是否注册 Bean(需实现 Condition 接口)。@Conditional(OnProductionEnvCondition.class)
@Profile根据环境配置激活 Bean(如 dev, prod)。@Profile("dev") public class DevConfig { ... }
@ConditionalOnClassSpring Boot 条件注解,类路径存在指定类时生效。@ConditionalOnClass(RedisTemplate.class)
@ConditionalOnMissingBean容器中不存在指定 Bean 时生效。@Bean @ConditionalOnMissingBean public CacheManager cacheManager() { ... }

四、作用域与生命周期

注解作用示例
@Scope定义 Bean 的作用域(如 singleton, prototype)。@Scope("prototype") public class TaskProcessor { ... }
@PostConstructJSR-250 注解,Bean 初始化后执行的方法。@PostConstruct public void init() { ... }
@PreDestroyJSR-250 注解,Bean 销毁前执行的方法。@PreDestroy public void cleanup() { ... }
@Lazy延迟初始化 Bean(首次使用时创建)。@Lazy @Service public class HeavyService { ... }

五、AOP 与事务

注解作用示例
@Aspect定义切面类,结合 @Pointcut 和通知注解(@Before, @After 等)。@Aspect @Component public class LoggingAspect { ... }
@Transactional声明式事务管理,标注在类或方法上。@Transactional(rollbackFor = Exception.class)

六、Web 相关(Spring MVC)

注解作用示例
@RequestMapping映射 HTTP 请求到控制器方法(支持 REST 方法简写如 @GetMapping)。@GetMapping("/users") public List<User> getUsers() { ... }
@RequestBody将请求体内容(如 JSON)绑定到方法参数。@PostMapping("/users") public void createUser(@RequestBody User user) { ... }
@ResponseBody将方法返回值直接写入响应体(如返回 JSON)。@ResponseBody @GetMapping("/info") public User getUser() { ... }
@RestController组合 @Controller + @ResponseBody,用于 REST API。@RestController public class UserApiController { ... }

七、测试相关

注解作用示例
@SpringBootTestSpring Boot 测试类,加载完整应用上下文。@SpringBootTest class UserServiceTest { ... }
@MockBean在测试中注入 Mock Bean。@MockBean private UserRepository userRepository;
@TestJUnit 测试方法。@Test void testCreateUser() { ... }

八、Spring Boot 核心注解

注解作用示例
@SpringBootApplication组合 @Configuration + @EnableAutoConfiguration + @ComponentScan,标记主启动类。@SpringBootApplication public class MyApp { ... }
@EnableAutoConfiguration启用 Spring Boot 自动配置。@EnableAutoConfiguration

总结

掌握这些核心注解是使用 Spring 框架的基础,合理运用它们可以极大简化开发:

  1. 依赖注入@Autowired, @Resource, @Value
  2. Bean 声明@Component, @Service, @Bean
  3. 配置管理@Configuration, @Profile, @Conditional
  4. Web 开发@RestController, @RequestMapping
  5. 事务与AOP@Transactional, @Aspect

结合具体场景灵活使用,能显著提升代码的可维护性和扩展性。

相关文章:

  • Windows 和 Linux 操作系统架构对比以及交叉编译
  • 网络华为HCIA+HCIP 交换机
  • ⭐算法OJ⭐连接所有点的最小费用【最小生成树】(C++实现)Min Cost to Connect All Points
  • 申报视频材料要求!第三批南充西充县非物质文化遗产代表性项目(增补)条件时间和申请程序
  • 原生后台GPS位置限制,降低功耗
  • HarmonyOS NEXT图形渲染体系:重新定义移动端视觉体验
  • 中学数学几百年重大错误:将无穷多各异假R误为R——两数集相等的必要条件
  • ABC391题解
  • 笔试专题(三)
  • 26考研——图_图的代码实操(6)
  • uv包简单使用案例
  • 在 Mac 上使用 Poetry 配置环境变量
  • 【外设】之STIM210陀螺仪学习记录
  • 大数据学习(86)-Zookeeper去中心化调度
  • Python_电商日报_不同数据来源清洗整理成一张表
  • javaweb自用笔记:Mybatis
  • 案例实践 | 招商局集团以长安链构建“基于DID的航运贸易数据资产目录链”
  • 基于大模型预测的初治菌阳肺结核诊疗方案研究报告
  • ORBITVU 欧保图,开启自动化摄影新时代
  • 【精心整理】2025 DeepSeek 精品学习资料合集-共50份(教程+原理解读+行业应用+技术实践).zip
  • 那个网站做外贸最好/5g站长工具seo综合查询
  • 自己怎么做网站首页/被忽悠去做网销了
  • 外贸可以什么网站做/南宁一站网网络技术有限公司
  • 杭州安卓软件开发/马鞍山网站seo
  • 快速做网站用什么软件/bilibili官网网页入口
  • 网站设计语言有哪些/百度竞价最低点击一次多少钱