易君召
易君召
发布于 2026-10-31 / 1 阅读
0

Spring 简化开发的核心思路

Spring 核心就是帮你把对象创建、依赖管理、事务、配置、切面这些重复样板代码收起来,不用自己写大量 new、工厂、工具类、try-catch 事务、JDBC 模板代码。下面分点讲清楚:

1. IoC / 控制反转 + DI 依赖注入(最核心)

传统写法:自己 new 对象()、手动维护依赖,硬编码,耦合高,改一处牵连很多。

// 传统
UserService service = new UserService();
service.setUserDao(new UserDao());

Spring IoC:容器负责创建、管理对象(Bean),依赖自动注入。

  • 注解 @Component / @Service / @Repository / @Autowired

  • 不需要手动 new,对象生命周期交给容器

  • 解耦:业务代码只面向接口,不关心实例怎么造

  • 方便替换实现、单元测试(容易 Mock)

一句话:不用自己组装对象,Spring 帮你装配。

2. AOP 面向切面编程,抽离通用横切逻辑

很多逻辑是散落在各个方法里的重复代码:日志、权限校验、性能埋点、异常统一捕获、限流。 传统:每个方法开头结尾复制粘贴日志代码。 Spring AOP:把这类横切逻辑抽成切面,不侵入业务代码。

  • @Aspect、@Before/@After/@Around

  • 典型场景:接口日志、统一异常处理、事务(@Transactional 底层依赖 AOP) 业务代码只写业务,日志、监控单独维护。

3. 声明式事务 @Transactional

原生 JDBC / MyBatis 写事务非常繁琐: 手动 Connection、setAutoCommit(false)、try 提交、catch 回滚、finally 关闭连接,容易漏写回滚。

Spring 声明式事务: 只需要在方法上加 @Transactional,一行注解搞定事务。

  • 异常自动回滚

  • 支持传播行为、隔离级别、只读事务配置 底层 AOP 自动包裹事务逻辑,消除大量事务样板代码。

4. 模板化封装(JdbcTemplate、RestTemplate 等)

原生 JDBC 样板:加载驱动、获取连接、创建 Statement、处理 ResultSet、关闭资源(连接、statement、rs),每个查询都写一遍,还容易忘关闭连接造成泄漏。

Spring 提供各种 XXXTemplate:

  • JdbcTemplate:一行执行 SQL、自动关闭资源,不用写关闭代码

  • RedisTemplate、RestTemplate、JmsTemplate 统一封装资源获取、异常处理、资源释放,只需要关心 SQL / 参数,不用写资源管理。

5. 统一的异常体系

Spring 把底层各种异构异常(JDBC、Hibernate、MyBatis)包装成一套统一的 DataAccessException 体系,不再需要捕获一堆底层驱动专属异常,上层业务捕获更简单。

6. 整合生态,兼容主流框架

Spring 不是要替代 MyBatis、Redis、Quartz,而是做粘合剂: Spring 可以很方便整合 MyBatis、Hibernate、RabbitMQ、Redis、定时任务等。 不需要自己写适配层、连接池管理,官方 / 社区 Starter 直接集成。

到 SpringBoot 阶段进一步进化,但底层能力来自 Spring Core。

7. 非侵入式、低耦合

大部分功能靠注解、配置,不需要业务类继承 Spring 特定类、实现特定接口(对比早期 EJB,必须实现接口、很重)。 业务 POJO 就是普通 Java 对象(POJO),可独立测试,脱离 Spring 容器也能跑。

8. 灵活的配置体系

  • XML 配置(老方式)

  • 注解配置 @Configuration + @Bean

  • 条件装配 @Conditional,按需加载 Bean 可以根据环境、类是否存在动态创建组件,方便多环境切换、可选组件。

简单对比总结

痛点

Spring 解决方案

手动 new 对象、组装依赖

IoC + DI

到处复制日志、权限代码

AOP

事务样板代码多、容易出错

@Transactional 声明式事务

JDBC 连接、关闭资源繁琐

JdbcTemplate 模板

各种第三方组件整合麻烦

统一集成抽象层

框架侵入强,业务和框架绑死

POJO 编程,非侵入

补充:SpringBoot 是 Spring 的增强

SpringBoot 基于 Spring,再加上自动配置、starter、内嵌容器,进一步简化:不用写 XML、不用配 Tomcat、自动装配 Bean;但底层简化开发的基础能力,全部来自 Spring Framework 的 IoC/AOP/ 事务 / 模板。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/spring-simplify-development-core-approach

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/