Spring5学习-1
什么是Spring5框架
Spring 是轻量级的开源的 JavaEE 框架,它主要解决企业应用开发的复杂性。
Spring5的两个核心部分
- IOC:控制反转,把创建对象过程交给 Spring 进行管理。取代以往的用new创建实例的方法,降低耦合性。
- Aop:面向切面,不修改源代码进行功能增强。在后期的修改,增添功能时不会对原来的代码改动。
Spring5的特点
- 方便解耦,简化开发
- Aop编程支持
- 方便程序测试
- 方便和其他框架进行整合
- 方便进行事务操作
- 降低API开发难度
Spring5的下载
可直接看第6步
1.进入Spring的官方 https://spring.io/,点击 Project -> Spring Framework。
2.选择Spring Framework -> learn,查看有哪些版本可供选择,记下带有GA标识的版本号,点击右上角的github标识去下载。
3.在github界面下拉,找到Access to Binaries选项,点击其中的 Spring Framework Artifacts 选项
4.在打开的界面下拉 找到 Downloading a Distribution 选项,点击里面的链接 https://repo.spring.io,并打开这个连接
5.找到 Artifacts -> release -> org -> springframworkwork -> spring,并且复制 Repository Path
6.最后访问 https://repo.spring.io/ui/native/release/org/springframework/spring/ 选择对应的版本,选择-dist.zip即可下载。
Spring初始项目的创建
1.我们首先创建一个java工程
2.我们在模块目录下建立一个lib的目录,用于存放jar包,因为这里是一个简单的初体验,我们只需要导入一些必须的jar包
这四个jar包我们可以从下载的Spring5压缩包中的libs文件夹中找到。
导入上面对应的四个核心jar包之后还需要导入 commons-logging-1.1.1.jar
,下载地址为:https://nowjava.com/jar/detail/m02262204/commons-logging-1.1.1.jar.html
终:
这个是我的目录结构
3.我们创建一个User类
public class User {
public void add(){
System.out.println("add...");
}
}
4.我们在src目录下创建一个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">
<!--配置User对象创建-->
<bean id="user" class="edu.zzuli.spring.User"></bean>
</beans>
5.我们创建一个测试类
public class TestSpring5 {
@Test
public void testAdd(){
//1.加载spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//2.获取配置创建对象
User user = context.getBean("user", User.class);
System.out.println(user);
user.add();
}
}
运行测试类,即可调用User中的方法。
IOC
1.概念:控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理。
2.使用的目的:降低耦合度。
上面的代码初体验即用到了IOC。
3.IOC的底层原理:xml解析,工厂模式,反射。
4.图解原理:
上图借用了尚硅谷的讲义,主要的意思是说:通过xml解析技术获取xml文件中class属性的值,在这里这个class属性的值为“com.atguigu.UserDao”,把这个值赋予变量classValue,然后通过反射技术得到这个类,用newInstance方法创建实例,然后return出去。这样的好处就在于我的bean有所改变的话,我去只修改xml文件就行了,不用改变其他的地方。
IOC的接口
1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂。
2、Spring 提供 IOC 容器实现的两种方式:(两个接口)
(1)BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用。
注意:加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象。
(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。
注意:加载配置文件时候就会把在配置文件对象进行创建。
孰优孰劣:因为我们Spring技术大部分使用在web项目,我们尽可能的把加载资源放在服务器开始的时候,所以我们大部分使用的是后者。
3.ApplicationContext接口的实现类有两个:
两者的区别:
- File..类的参数为xml文件的绝对路径。
- Class...类的参数为xml文件相对于src的相对路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现