Spring 环境搭建是 Java 应用开发的基础,其核心在于引入依赖、配置容器并管理对象生命周期。搭建方式主要分为传统的 Spring Framework 配置和基于 Spring Boot 的快速搭建,两者在配置复杂度、启动速度和适用场景上有所不同。
| 对比维度 | 传统 Spring 环境搭建 | Spring Boot 环境搭建 |
|---|---|---|
| 核心依赖 | 需手动管理多个 Spring 模块的 JAR 包或 Maven 依赖 。 | 一个 spring-boot-starter 依赖即可引入大量预配置的依赖 。 |
| 配置方式 | 主要依赖 XML 配置文件(如 applicationContext.xml)进行 Bean 定义和依赖注入 。 |
约定优于配置,提供默认配置,可通过 application.properties 或 application.yml 进行简化配置 。 |
| 项目创建 | 需手动创建项目结构、配置文件及部署描述符 。 | 可通过 Spring Initializr 在线生成,或在 IDEA 等 IDE 中直接创建 。 |
| 内嵌服务器 | 无,需要额外部署到独立的 Web 服务器(如 Tomcat)。 | 内置 Tomcat、Jetty 等服务器,可直接运行 JAR 包 。 |
| 适用场景 | 对架构有深度定制需求,或需要理解 Spring 底层原理的学习场景。 | 快速构建微服务、REST API 及现代云原生应用 。 |
传统 Spring 环境搭建步骤
以下以在 IDEA 中创建 Maven 项目为例,展示如何手动搭建一个基础的 Spring 环境并运行一个 HelloWorld 程序 。
1. 创建项目并引入依赖
首先创建一个 Maven 项目,并在 pom.xml 中添加 Spring 核心容器(spring-context)的依赖。
xml
<!-- pom.xml -->
<project>
<dependencies>
<!-- Spring 核心上下文依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.23</version> <!-- 请使用最新稳定版本 -->
</dependency>
</dependencies>
</project>
2. 创建 Bean 与 Spring 配置文件
创建一个简单的 Java Bean 类,例如 HelloWorld。
java
// HelloWorld.java
public class HelloWorld {
private String message;
// setter 方法用于属性注入
public void setMessage(String message) {
this.message = message;
}
public void sayHello() {
System.out.println("Hello, " + message);
}
}
接着,在 resources 目录下创建 Spring 的 XML 配置文件 applicationContext.xml,用于定义和管理 Bean 。
xml
<!-- applicationContext.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 定义一个 id 为 helloWorld 的 Bean,其实现类为 com.example.HelloWorld -->
<bean id="helloWorld" class="com.example.HelloWorld">
<!-- 通过 property 标签调用 setMessage 方法进行依赖注入 -->
<property name="message" value="Spring Framework"/>
</bean>
</beans>
3. 编写主类测试
最后,编写一个主类,通过 Spring 的 ClassPathXmlApplicationContext 加载配置文件,并从容器中获取 HelloWorld 实例。
java
// App.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
// 1. 加载 Spring 配置文件,初始化 IoC 容器
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 2. 从容器中获取名为 "helloWorld" 的 Bean
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld");
// 3. 调用 Bean 的方法
helloWorld.sayHello(); // 输出:Hello, Spring Framework
}
}
Spring Boot 环境搭建步骤
Spring Boot 极大地简化了初始搭建和开发过程。以下演示两种最常用的创建方式 。
方式一:通过 Spring Initializr 在线创建
- 访问 Spring Initializr。
- 选择项目类型(Maven/Gradle)、语言(Java)、Spring Boot 版本。
- 在
Dependencies中添加所需依赖,例如Spring Web用于构建 Web 应用。 - 点击
Generate下载项目压缩包,解压后导入 IDE 即可。
方式二:在 IntelliJ IDEA 中直接创建
- 打开 IDEA,选择
File->New->Project...。 - 在左侧选择
Spring Initializr,配置 JDK 版本和项目初始服务地址。 - 在接下来的界面中,填写项目元数据(Group, Artifact),并选择依赖(如
Spring Web,Spring Data JPA)。 - 完成创建后,IDEA 会自动生成项目结构和
pom.xml文件 。
一个典型的 Spring Boot 启动类示例如下:
java
// DemoApplication.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 核心注解,包含配置、组件扫描、自动配置
public class DemoApplication {
public static void main(String[] args) {
// 启动嵌入式的 Tomcat 服务器并运行 Spring Boot 应用
SpringApplication.run(DemoApplication.class, args);
}
}
进阶:整合其他框架(如 SSM)
在实际企业级开发中,常需要将 Spring 与 MyBatis、Spring MVC 等框架整合(即 SSM 框架)。整合的关键在于通过 Spring 的配置文件或 Java Config 来管理所有组件的 Bean。主要步骤包括:
- 添加依赖 :在
pom.xml中引入spring-webmvc,mybatis,mybatis-spring等依赖。 - 配置数据源与事务 :在
applicationContext.xml中配置数据库连接池(如 Druid)、SqlSessionFactory 和事务管理器。 - 配置 MVC :配置
DispatcherServlet(通常在web.xml中),并启用注解驱动、视图解析器等。 - Mapper 扫描 :使用
<mybatis:scan>或@MapperScan注解让 Spring 管理 MyBatis 的 Mapper 接口。
环境搭建的常见问题与工具
- 源码阅读环境搭建:如需深入研究 Spring 源码,可参考特定指南,涉及 Gradle 安装、源码下载与编译、导入 IDEA 等步骤 。
- 依赖管理:强烈建议使用 Maven 或 Gradle 进行依赖管理,避免手动下载和添加 JAR 包 。
- IDE 选择:Eclipse 和 IntelliJ IDEA 都提供了良好的 Spring 支持。IDEA 在智能提示、Spring Boot 集成方面体验更佳 。