# Spring教程 - 1 Spring简介

# 1.1 什么是Spring

Spring 是一个为 Java 平台开发的开源框架,最早由 Rod Johnson 于 2003 年创建,现已成为一个用于构建企业级应用的全面解决方案。几乎可以说现在的 Java Web 项目离不开 Spring 框架。

Spring 提供了很多的服务,例如 SpringMVCSpring BootSpring CloudSpring Security 等等,这里要讲解的是 Spring Framework ,是 Spring 的核心框架,最主要的就是提供了 IoC容器AOP面向切面编程 功能。

Spring 官网:点击前往 (opens new window)

# 1.2 Spring的特点

这些特点现在可能还不能体会,学习完成,再来看一遍,才能理解。

  1. 轻量级
    • Spring 框架的设计目标之一是保持轻量级,它不会对应用程序带来过多的负担,使得开发人员可以专注于业务逻辑的实现,而不必担心框架本身的复杂性。
    • 相比于一些传统的企业级框架,Spring 的启动速度较快,资源占用相对较少。
  2. 控制反转(IoC)
    • Spring 实现了控制反转的设计模式,通过依赖注入(Dependency Injection)的方式来管理对象之间的依赖关系
    • 开发人员不再需要手动创建和管理对象的实例,而是由 Spring 容器负责创建对象,并将其注入到需要的地方。这样可以降低对象之间的耦合度,提高代码的可维护性和可测试性。
  3. 面向切面编程(AOP)
    • Spring 提供了强大的面向切面编程支持,可以将横切关注点(如日志记录、事务管理、安全控制等)从业务逻辑中分离出来。
    • 通过 AOP,可以在不修改原来代码的情况下,在代码执行之前或之后去执行另外的代码,对业务方法进行增强和扩展,提高代码的复用性和可维护性
  4. 数据访问
    • Spring 提供了统一的数据访问抽象层,支持多种数据访问技术,如 JDBC、Hibernate、MyBatis 等。
    • 开发人员可以根据项目的需求选择合适的数据访问技术,而不必担心底层数据库的差异。
  5. 事务管理
    • Spring 提供了声明式事务管理和编程式事务管理两种方式,可以方便地管理数据库事务。
    • 声明式事务管理通过在方法上添加注解或在配置文件中配置事务属性来实现,无需在业务代码中显式地编写事务控制代码,提高了开发效率和代码的可读性。

话不多说,直接开始吧!