全部笔记All notes

Web程序设计笔记01——第一章:Spring的基本应用

阅读 8m 12s8m 12s read

Spring 基本应用教程

概述

本教程介绍 Spring Framework 的基本应用,包括环境搭建、项目创建、依赖注入等核心概念。Spring 是 Java 企业级开发的基础框架,掌握其基本用法对后续学习 SpringBoot、SpringMVC 等技术至关重要。

💡 学习目标:

  • 掌握 IDEA + Maven + Spring 开发环境搭建
  • 理解 Spring IoC 容器和依赖注入
  • 能够创建简单的 Spring 应用程序

环境准备

开发工具版本

工具版本说明
JDK1.8+Java 开发环境
IDEA2021+集成开发环境
Maven3.6.3+项目管理工具
Spring5.3+核心框架

Maven项目创建

IDEA 欢迎页面配置

为了提高开发效率,建议配置 IDEA 启动时显示欢迎页面:

步骤 1: 进入自定义设置

  • 在 IDEA 欢迎页面点击 Customize
  • 选择 Settings 进入系统设置

IDEA设置入口

步骤 2: 配置启动选项

  • 搜索 System Settings 并进入
  • 取消 Reopen projects on startup 选项
  • 勾选 NEW windows 选项

启动配置

🔧 配置说明: 这样配置后每次启动 IDEA 都会显示欢迎页面,方便选择项目或创建新项目

Maven 环境配置

步骤 1: 进入 Maven 设置

  • 在 IDEA 设置中搜索 Maven
  • 进入 Maven 配置页面

步骤 2: 配置 Maven 路径

  • 设置 Maven home path: 指向 apache-maven-3.6.3 安装目录
  • 配置 User settings file: 指向 Maven 配置文件
  • 设置 Local repository: 指向本地仓库目录

⚠️ 注意事项:

  • 建议将 Maven 安装到非 C 盘根目录
  • 本地仓库目录需要手动创建
  • 配置完成后点击 OK 保存设置

Maven 目录结构示例:

D:/Development/
├── apache-maven-3.6.3/          # Maven 安装目录
│   ├── bin/
│   ├── conf/
│   └── lib/
└── maven-repository/             # 本地仓库

Maven 镜像配置

为了提高依赖下载速度,建议配置阿里云镜像:

步骤 1: 编辑 Maven 配置文件

  • 找到 maven/conf/settings.xml 文件
  • 使用文本编辑器打开

步骤 2: 添加阿里云镜像 在 <mirrors> 标签内添加以下配置:

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

步骤 3: 配置本地仓库 找到 <localRepository> 标签,设置本地仓库路径:

<localRepository>D:/Development/maven-repository</localRepository>

🔧 配置说明:

  • 阿里云镜像可大幅提升依赖下载速度
  • 本地仓库建议设置在非 C 盘目录
  • 配置完成后保存文件

创建 Maven 项目

步骤 1: 新建项目

  • 在 IDEA 欢迎页面选择 New Project
  • 选择 Maven 项目类型
  • 选择合适的 SDK 版本

创建项目

步骤 2: 配置项目信息

配置项示例值说明
Namec01项目名称
LocationD:/Projects/c01项目存储路径
GroupIdcom.owlbay组织标识
ArtifactIdc01项目标识
Version1.0-SNAPSHOT版本号

项目配置

步骤 3: 验证 Maven 配置

  • 确认 Maven home path 指向正确路径
  • 验证 User settings file 配置
  • 确认 Local repository 设置正确

Maven验证

步骤 4: 项目创建完成

  • IDEA 会自动下载 Maven 依赖
  • 看到项目结构树表示创建成功

项目结构


Spring基础配置

Spring 框架体系结构

Spring 框架采用模块化设计,主要包含以下几个核心模块:

1. 核心容器 (Core Container)
模块功能描述
spring-core框架基础核心,提供工具类和基本功能
spring-beansBean 定义、创建和管理,实现 IoC 和 DI
spring-context运行时容器,提供 ApplicationContext
spring-expressionSpring 表达式语言(SpEL)支持
2. AOP 模块
模块功能描述
spring-aop基础 AOP 功能和代理支持
spring-aspectsAspectJ 集成和高级 AOP 特性
3. Web 模块
模块功能描述
spring-webWeb 基础功能和容器集成
spring-webmvcSpring MVC 框架
spring-websocketWebSocket 协议支持
4. 数据访问模块
模块功能描述
spring-jdbcJDBC 抽象层和数据库访问
spring-tx事务管理和声明式事务
spring-ormORM 框架集成(Hibernate、MyBatis)
spring-jms消息服务集成

依赖注入详解

项目结构搭建

步骤 1: 创建项目目录结构 在 src/main 下创建标准的 Maven 目录:

src/
├── main/
│   ├── java/           # Java 源代码
│   └── resources/      # 配置文件
└── test/
    └── java/           # 测试代码

步骤 2: 设置源码目录

  • 右键点击 java 文件夹
  • 选择 Mark Directory as → Sources Root

设置源码目录

三层架构设计

Spring 应用通常采用三层架构模式:

// 架构层次
控制层 (Controller)  →  服务层 (Service)  →  数据访问层 (DAO)
     ↓                    ↓                    ↓
处理用户请求           业务逻辑处理           数据库操作

💡 设计原则:

  • 控制层: 处理 HTTP 请求,调用服务层
  • 服务层: 实现业务逻辑,调用 DAO 层
  • DAO 层: 负责数据访问和持久化操作

3.右击名为 resources 的文件选择 Mark Directory as 属性中的 Resources Root(资源根)

设置资源目录


实践示例

传统 Java 开发方式

步骤 1: 创建接口和实现类

在 Java 源包下创建以下文件:

UserDao 接口:

public interface UserDao {
    public void say();
}

UserDaoImpl 实现类:

public class UserDaoImpl implements UserDao {
    @Override
    public void say() {
        System.out.println("UserDao say...");
    }
}

Test 测试类:

public class Test {
    public static void main(String[] args) {
        // 传统方式:手动创建对象
        UserDao userDao = new UserDaoImpl();
        userDao.say();
    }
}

Spring IoC 容器方式

步骤 1: 添加 Spring 依赖

在 pom.xml 中添加 Spring 核心依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.21</version>
    </dependency>
</dependencies>

Maven依赖

🔧 版本说明: 推荐使用 Spring 5.3+ 版本,具有更好的性能和稳定性

步骤 2: 创建 Spring 配置文件

在 resources 目录下创建 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">
    
    <!-- 配置 UserDao Bean -->
    <bean id="userDao" class="com.owlbay.UserDaoImpl"/>
    
</beans>

配置文件

步骤 3: 使用 Spring 容器获取对象

修改测试类,使用 Spring 容器:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        // 1. 创建 Spring 容器
        ApplicationContext applicationContext = 
            new ClassPathXmlApplicationContext("applicationContext.xml");
        
        // 2. 从容器中获取对象
        UserDao userDao = (UserDao) applicationContext.getBean("userDao");
        
        // 3. 调用方法
        userDao.say();
    }
}

运行结果:

UserDao say...

运行结果

对比分析

方式对象创建耦合度扩展性
传统方式手动 new高差
Spring IoC容器管理低好

💡 核心优势:

  • 控制反转: 对象创建权交给 Spring 容器
  • 依赖注入: 自动装配对象之间的依赖关系
  • 松耦合: 降低代码间的耦合度,提高可维护性

常见问题

问题1:依赖下载失败

❓ 问题: Maven 依赖下载失败或速度慢

解决方案:

  1. 配置阿里云镜像:

    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
  2. 检查网络连接: 确保网络正常

  3. 清理本地仓库: 删除损坏的依赖文件

  4. 重新导入项目: 刷新 Maven 项目

问题2:ApplicationContext 找不到配置文件

❓ 问题: FileNotFoundException: applicationContext.xml

解决方案:

  1. 检查文件位置: 确保 applicationContext.xml 在 resources 目录下
  2. 检查文件名: 确认文件名拼写正确
  3. 重建项目: Clean 并重新构建项目
  4. 检查类路径: 确保 resources 标记为 Resources Root

问题3:Bean 创建失败

❓ 问题: NoSuchBeanDefinitionException

解决方案:

  1. 检查 Bean ID: 确认 getBean() 中的 ID 与配置文件一致
  2. 检查类路径: 确认 class 属性的包名和类名正确
  3. 检查依赖注入: 确保所需的构造函数存在
  4. 验证 XML 格式: 检查 XML 语法是否正确

问题4:IDEA 不识别 Spring 配置

❓ 问题: IDEA 中 Spring 配置文件没有代码提示

解决方案:

  1. 安装 Spring 插件: 确保 IDEA 安装了 Spring 支持插件
  2. 配置 Spring Facet: 在项目设置中添加 Spring 支持
  3. 检查 Schema: 确保 XML 中包含正确的 Schema 声明
  4. 重启 IDEA: 重启开发环境刷新配置

相关文章

前后章节导航

Spring基础系列

Spring进阶指南

MyBatis持久层框架

Spring MVC Web开发

SpringBoot现代化开发


总结

本教程介绍了 Spring 框架的基本应用,主要包括:

🎯 核心内容

  • 环境搭建: IDEA + Maven + Spring 开发环境配置
  • 项目创建: Maven 项目的标准创建流程
  • IoC 容器: Spring 控制反转的基本使用
  • 依赖注入: 通过配置文件管理对象依赖关系

📚 关键概念

  • IoC (控制反转): 对象创建权交给 Spring 容器管理
  • DI (依赖注入): 容器自动装配对象间的依赖关系
  • Bean: Spring 容器管理的对象
  • ApplicationContext: Spring 应用上下文容器

🔄 开发流程

  1. 环境准备 → 配置开发工具和依赖
  2. 项目创建 → 建立标准的 Maven 项目结构
  3. 编写代码 → 定义接口、实现类和测试类
  4. 配置 Bean → 在 XML 中声明和配置对象
  5. 容器获取 → 通过 ApplicationContext 获取对象