Spring5学习-1

什么是Spring5框架
Spring 是轻量级的开源的 JavaEE 框架,它主要解决企业应用开发的复杂性。

Spring5的两个核心部分

  1. IOC:控制反转,把创建对象过程交给 Spring 进行管理。取代以往的用new创建实例的方法,降低耦合性。
  2. Aop:面向切面,不修改源代码进行功能增强。在后期的修改,增添功能时不会对原来的代码改动。

Spring5的特点

  1. 方便解耦,简化开发
  2. Aop编程支持
  3. 方便程序测试
  4. 方便和其他框架进行整合
  5. 方便进行事务操作
  6. 降低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的相对路径。
posted @ 2022-01-22 12:24  中国网民  阅读(35)  评论(0编辑  收藏  举报