欢迎光临
我们一直在努力

Java 中的 Spring 框架

一、Spring 框架核心定位

Spring 是 Java 生态中一站式的企业级应用开发框架,核心目标是简化 Java 开发,解决企业级开发中的复杂性(如对象创建、依赖管理、事务控制、跨环境适配等)。它不是替代 Java EE,而是对 Java EE 技术(如 Servlet、JDBC、JPA 等)进行封装和增强,目前 Spring Framework 6.x 是主流版本,适配 Java 17+,并全面支持模块化、响应式编程。

二、Spring 核心优势(核心设计思想)

  • 控制反转(IoC,Inversion of Control)
    • 通俗理解:原本由开发者手动 new 对象、管理对象依赖,现在交给 Spring 容器统一管理,开发者只需定义对象,由容器负责创建、组装和销毁。
    • 实现方式:依赖注入(DI,Dependency Injection),包括构造器注入、Setter 注入、字段注入(不推荐),核心是解耦,让代码更易测试、维护。
  • 面向切面编程(AOP,Aspect-Oriented Programming)
    • 核心作用:将日志、事务、权限校验等 “横切逻辑” 与业务逻辑分离,避免代码冗余。比如给所有接口添加统一的日志记录,无需在每个接口方法里写日志代码。
    • 关键概念:切面(Aspect)、切点(Pointcut)、通知(Advice,如前置 / 后置 / 异常通知)。
  • 轻量级与模块化
    • 轻量级:核心包体积小,无侵入式设计,可按需引入模块(如只用到 IoC 就只引入 spring-core),不强制绑定全量功能。
    • 模块化:Spring Framework 拆分为核心容器、AOP、数据访问、Web、测试等模块,可灵活组合。
  • 三、Spring 核心组件

    组件 / 模块核心作用常用类 / 注解
    Spring Core(核心容器) 实现 IoC 容器,管理 Bean 的生命周期 ApplicationContext、@Component、@Autowired
    Spring Context 扩展 Core 功能,提供资源加载、国际化、事件发布等 @Value、Environment
    Spring AOP 实现 AOP 编程,支持切面逻辑织入 @Aspect、@Before、@AfterReturning、@Around
    Spring JDBC 封装 JDBC,简化数据库操作,减少样板代码 JdbcTemplate、NamedParameterJdbcTemplate
    Spring Transaction 声明式事务管理,无需手动控制事务提交 / 回滚 @Transactional

    四、入门级核心代码示例(Spring IoC+DI)

    1. 定义 Bean(业务类)

    java

    运行

    // 标记为Spring管理的Bean
    @Component
    public class UserService {
    // 依赖注入(构造器注入,推荐方式)
    private final UserDao userDao;

    // 构造器注入,Spring会自动匹配并注入UserDao实例
    public UserService(UserDao userDao) {
    this.userDao = userDao;
    }

    public void addUser() {
    userDao.insertUser();
    System.out.println("用户添加成功");
    }
    }

    // 数据访问层Bean
    @Component
    public class UserDao {
    public void insertUser() {
    System.out.println("执行数据库插入操作");
    }
    }

    2. 启动 Spring 容器并获取 Bean

    java

    运行

    import org.springframework.context.annotation.AnnotationConfigApplicationContext;

    public class SpringDemo {
    public static void main(String[] args) {
    // 初始化Spring上下文(基于注解配置)
    AnnotationConfigApplicationContext context =
    new AnnotationConfigApplicationContext("com.example");

    // 从容器中获取UserService实例(无需手动new)
    UserService userService = context.getBean(UserService.class);

    // 调用业务方法
    userService.addUser();

    // 关闭容器
    context.close();
    }
    }

    输出结果:

    plaintext

    执行数据库插入操作
    用户添加成功

    五、Spring 生态延伸

    Spring Framework 是基础,在此之上衍生出了更贴合实际开发的生态组件:

    • Spring Boot:简化 Spring 应用搭建,自动配置、内嵌服务器、起步依赖,快速开发微服务。
    • Spring Cloud:基于 Spring Boot 实现微服务治理(服务注册发现、配置中心、熔断降级等)。
    • Spring Security:处理认证、授权、防跨站等安全问题。

    总结

  • Spring 核心是IoC(依赖注入) 和AOP,核心目标是简化开发、解耦代码。
  • Spring Framework 是基础,Spring Boot/Cloud 等是其生态延伸,覆盖从单体到微服务的全场景。
  • 开发中核心是通过注解(如 @Component、@Autowired、@Transactional)利用 Spring 容器管理对象和增强功能。
  • 赞(0)
    未经允许不得转载:171主机测评 » Java 中的 Spring 框架
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址