Spring 学习笔记
文章目录
0、脑图
1、背景
1.1、框架
Spring ( Spring Framework ),framework 的含义是框架
提供了基本的结构和规范
多个框架组合在一起就是架构(例如,SSM,SSM 框架是 Spring + Spring MVC + MyBatis 的组合,通常用于 Java Web 开发中。)
1.2、为什么要学习 Spring 框架
Spring 可以让每个人都能更快,更轻松,更安全的进行 Java 编程
Spring6 最低支持 JDK17
Spring5 最低支持 JDK8
本次学习笔记以 Spring6 为目标进行学习和总结
1.3、什么是 Spring
- Spring 不等同于 Spring 框架
- 从官网中可以看到所有 Spring 的产品(全家桶)
- Spring 是 一个完整的生态体系,包括配置,安全,网络,大数据等等;可以帮助你构建一个应用中的所有基础设施
1.4、Java web 框架演变过程
使用 Spring 都是去开发 web 应用
web 应用开发框架的演变过程如下图所示:
-
Servlet + JSP + JavaBean
使用 Servlet 获取用户输入,去数据库查询,然后使用 JSP 返回成功/失败页面
问题:逻辑复杂,可维护性太低 -
MVC三层架构
· web-跳转页面
引入 MVC 的架构思想
M model = pojo(User,参数封装成一个类)
V-view(JSP,视图体现)
C-(controller-servlet,servlet负责跳转到哪一个JSP)
· service-业务逻辑判断
· dao-数据库查询
问题:类需要用户自己去创建(new),类和类/层和层之间耦合性太强 -
EJB
对象的创建交给容器自己去做问题:侵入式强,过多的接口和依赖;如果要实现某一个类,必须继承接口或者使用它的父类;实现起来太麻烦
-
Struts1+Struts2 + Hibernate + Spring
web-跳转页面 Struts
service-业务逻辑判断
dao-数据库查询 Hibernate
层和层之间的依赖关系,用Spring去解决,new 对象的工作交给 Spring 去做
SSH 架构
问题:Struts 出现BUG,使用麻烦 -
SpringMVC + Mybatis + Spring
web-跳转页面 SpringMVC
service-业务逻辑判断
dao-数据库查询 MyBatis(处理复杂业务)
SSM 架构
问题:每一个项目都要重新搭建架构,需要大量 XML 配置文件 -
SpringBoot 开发
1.5、Spring 框架介绍
Spring 框架英文全称是 Spring Framework
注意:Spring Framework 只是 Spring 全家桶中的一个框架,也是第一个框架
Spring Framework 并不是 Spring
目的:简化项目开发
官方介绍
提供的核心内容包括:
- 依赖注入
- 事务管理(对数据库的操作,要么全部成功,要么全部失败)
- web 应用(Spring MVC)
- 数据库访问
- 消息
2、特性
2.1、IOC/DI
IOC/DI 是属于 Spring 框架中核心模块里面的,它是 Spring Framework 的基础,也是最核心的部分
Spring Framework 所有其他模块,都是在 IOC/DI 基础上研发的
IOC:Inversion of Control 控制反转
DI:Dependency Injection 依赖注入
IOC
是指对象创建的权利
区别对比
- 改造之前:由程序员控制对象创建:UserService(new UserDao()) --> UserDao;强耦合
- 改造之后:依赖 Spring 注入(DI):Spring (new UserService(); new UserDao();)如果需要用到 Spring 管理的对象,则需要依赖 Spring 注入(DI)
IOC/DI 优点
- 解耦
- 统一管理了对象
2.1.1、IOC 的实现
在使用 Spring 之前,使用传统的方式,类和类之间耦合度过高
就算使用面向接口编程的方式,引入 IUserDao,依然耦合度过高
IOC 的实现方式包括三种
- spring 3以下 xml 配置方式实现(SSM)
- spring 3+以上的版本的实现方式
- SpringBoot 的方式实现
使用 xml 实现 Spring IOC
注意:
需要提前在 UserService 中创建 get 和 set 方法
Spring 是通过 get 和 set 方法去注入成员变量 userDao
测试依赖注入
遇到的问题
1、依赖注入时,xml 文件存在问题,出现如下报错 找不到元素 ‘beans’ 的声明
Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 73; cvc-elt.1.a: 找不到元素 ‘beans’ 的声明。
【问题原因】
这个错误通常出现在使用Spring框架配置文件时,当解析XML文件时发现标签没有正确的声明或者相关的命名空间未被正确引用。
【问题解决】
1、确保 xml 头正确
<?xml version="1.0" encoding="UTF-8"?>
2、检查标签的命名空间声明:
<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">
原文地址:https://blog.csdn.net/qq_39748832/article/details/143989030
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!