【Java开发】Java热门框架深入开发第1篇:学习目标,一、Spring简介【附代码文档】

举报
小帅说java 发表于 2025/08/29 19:57:31 2025/08/29
【摘要】 学习目标 一、Spring简介 2 初识Spring 3 Spring体系结构 二、IOC和DI入门案例【重点】 五、Bean的生命周期【了解】 问题导入 1 生命周期相关概念介绍 2 代码演示 3 Bean销毁时机 六、依赖注入(DI配置) 1 依赖注入方式【重点】 2 依赖自动装配【理解】 3 集合注入 今日目标 一、第三方资源配置管理 1 管理DataSource连接池对

🏆🏆🏆教程全知识点简介:学习目标 一、Spring简介 2 初识Spring 3 Spring体系结构 二、IOC和DI入门案例【重点】 五、Bean的生命周期【了解】 问题导入 1 生命周期相关概念介绍 2 代码演示 3 Bean销毁时机 六、依赖注入(DI配置) 1 依赖注入方式【重点】 2 依赖自动装配【理解】 3 集合注入 今日目标 一、第三方资源配置管理 1 管理DataSource连接池对象 2 加载properties属性文件【重点】 四、Spring整合其他技术【重点】 二、AOP案例 1 案例-测量业务层接口万次执行效率 2 AOP切入点数据获取 2 Spring事务角色【理解】 二、请求与响应 1 请求映射路径【重点】 2 请求参数 3 日期类型参数传递【重点】 4 响应 三、REST风格 1 REST简介 2 RESTful入门案例 3 REST快速开发【重点】 今日内容 一、SSM整合【重点】 1 SSM整合配置 三、异常处理器【理解】 1 异常介绍 2 异常处理器 一、分模块开发与设计 1. 分模块开发的意义 模块拆分原则 2. 分模块开发(模块拆分) 二、依赖管理 1. 依赖传递 2. 可选依赖 4 可选依赖和排除依赖的区别 三、聚合与继承 1. 聚合工程 3. 继承关系 5. 聚合与继承的区别 四、属性管理 1. 属性 2. 版本管理 五、多环境配置与应用 1. 多环境配置作用 2. 跳过测试(了解) 六、私服 2. 私服仓库分类 3. 资源上传与下载 附件1:POM文件总体配置说明 一、MyBatisPlus简介 1. 入门案例 二、标准数据层开发 2. Lombok插件介绍 四、DML编程控制 1. id生成策略控制(Insert) 2. 多记录操作(批量Delete/Select) 3. 逻辑删除(Delete/Update) 4. 乐观锁(Update)


📚📚👉👉👉   https://gitee.com/xiaoshuai112/Backend/blob/master/Java/Java热门框架深入开发/note.md 🍅🍅

✨ 本教程项目亮点

🧠 知识体系完整:覆盖从基础原理、核心方法到高阶应用的全流程内容
💻 全技术链覆盖:完整前后端技术栈,涵盖开发必备技能
🚀 从零到实战:适合 0 基础入门到提升,循序渐进掌握核心能力
📚 丰富文档与代码示例:涵盖多种场景,可运行、可复用
🛠 工作与学习双参考:不仅适合系统化学习,更可作为日常开发中的查阅手册
🧩 模块化知识结构:按知识点分章节,便于快速定位和复习
📈 长期可用的技术积累:不止一次学习,而是能伴随工作与项目长期参考


🎯🎯🎯全教程总章节


🚀🚀🚀本篇主要内容

学习目标

  • [ ] 能够说出Spring的体系结构
  • [ ] 能够编写IOC入门案例
  • [ ] 能够编写DI入门案例
  • [ ] 能够配置setter方式注入属性值
  • [ ] 能够配置构造方式注入属性值
  • [ ] 能够理解什么是自动装配

一、Spring简介

1 Spring介绍

问题导入

我们为什么要学习Spring框架?

1.1 为什么要学

  • Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>==90%==

  • 专业角度

  • ==简化开发==,降低企业级开发的复杂性
  • ==框架整合==,高效整合其他技术,提高企业级应用开发与运行效率

1.2 学什么

  • 简化开发
  • ==IOC(反转控制)==
  • ==AOP(面向切面编程)==

    • ==事务处理==
  • 框架整合

  • MyBatis
  • MyBatis-plus
  • Struts
  • Struts2
  • Hibernate
  • ……

1.3 怎么学

  • 学习Spring框架设计思想
  • 学习基础操作,思考操作与思想间的联系
  • 学习案例,熟练应用操作的同时,体会思想

2 初识Spring

问题导入

目前我们使用的是Spring几版本?

2.1 Spring家族

  • 官网:
  • Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能。

2.2 Spring发展史

3 Spring体系结构

问题导入

通过系统架构图,Spring能不能进行数据层开发?Spring能不能进行web层开发?

3.1 Spring Framework系统架构图

  • Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基

3.2 Spring Framework学习路线

4 Spring核心概念

问题导入

问题1:目前我们的代码存在什么问题以及怎么解决这些问题?

问题2:请描述什么是IOC,什么是DI?

4.1 目前我们代码存在的问题

  • 代码书写现状
  • 耦合度偏高
  • 解决方案
  • 使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象

4.2 核心概念

  • ==IOC(Inversion of Control)控制反转==

使用对象时,由主动new产生对象转换为由==外部==提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。通俗的讲就是“==将new对象的权利交给Spring,我们从Spring中获取对象使用即可==”

  • Spring技术对IoC思想进行了实现

  • Spring提供了一个容器,称为==IOC容器==,用来充当IoC思想中的“外部”

  • IOC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为==Bean==

  • ==DI(Dependency Injection)依赖注入==

  • 在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入。

  • 目标:充分解耦
  • 使用IoC容器管理bean(IOC)
  • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)
  • 最终效果
  • 使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系

二、IOC和DI入门案例【重点】

1 IOC入门案例【重点】

问题导入

\标签中id属性和class属性的作用是什么?

[JProfiler 文档]

1.1 门案例思路分析

  1. 管理什么?(Service与Dao)
  2. 如何将被管理的对象告知IOC容器?(配置文件)
  3. 被管理的对象交给IOC容器,如何获取到IoC容器?(接口)
  4. IOC容器得到后,如何从容器中获取bean?(接口方法)
  5. 使用Spring导入哪些坐标?(pom.xml)

1.2 实现步骤

【第一步】导入Spring坐标
【第二步】定义Spring管理的类(接口)
【第三步】创建Spring配置文件,配置对应类作为Spring管理的bean对象
【第四步】初始化IOC容器(Spring核心容器/Spring容器),通过容器获取bean对象

1.3 实现代码

【第一步】导入Spring坐标

[VisualVM 文档]

<dependencies>
    <!--导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
</dependencies>

【第二步】定义Spring管理的类(接口)

  • BookDao接口和BookDaoImpl实现类

[Codecademy Java]

public interface BookDao {
    public void save();
}

public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}
  • BookService接口和BookServiceImpl实现类
public interface BookService {
    public void save();
}

public class BookServiceImpl implements BookService {
    private BookDao bookDao = new BookDaoImpl();
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

【第三步】创建Spring配置文件,配置对应类作为Spring管理的bean对象

  • 定义applicationContext.xml配置文件并配置BookServiceImpl
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="
       xmlns:xsi="
       xsi:schemaLocation=" 

    <!--
        bean标签:表示配置bean
        id属性:表示给bean起名字
        class属性:表示给bean定义类型
    -->
    <bean id="bookService" class="com.itheima.service.impl.BookServiceImpl"></bean>

</beans>

==注意事项:bean定义时id属性在同一个上下文中(IOC容器中)不能重复==

【第四步】初始化IOC容器(Spring核心容器/Spring容器),通过容器获取Bean对象

public class App {
    public static void main(String[] args) {
        //1.创建IoC容器对象,加载spring核心配置文件
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2 从IOC容器中获取Bean对象(BookService对象)
        BookService bookService= (BookService)ctx.getBean("bookService");
        //3 调用Bean对象(BookService对象)的方法
        bookService.save();
    }
}

1.4 运行结果

2 DI入门案例【重点】

问题导入

\标签中name属性和ref属性的作用是什么?

2.1 DI入门案例思路分析

  1. 基于IOC管理bean
  2. Service中使用new形式创建的Dao对象是否保留?(否)
  3. Service中需要的Dao对象如何进入到Service中?(提供方法)
  4. Service与Dao间的关系如何描述?(配置)

2.2 实现步骤

【第一步】删除使用new的形式创建对象的代码
【第二步】提供依赖对象对应的setter方法
【第三步】配置service与dao之间的关系

2.3 实现代码

【第一步】删除使用new的形式创建对象的代码

public class BookServiceImpl implements BookService {
    private BookDao bookDao;  //【第一步】删除使用new的形式创建对象的代码
    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

[Visual Studio Code Java]

【第二步】提供依赖对象对应的setter方法

[WireMock 文档] ```java public class BookServiceImpl implements BookService { private BookDao bo

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。