spring5(一)

参考尚硅谷公开课:Spring5教程

spring5简单介绍

  • 两个核心部分

IOC:控制反转。将创建对象的过程交给Spring进行管理,不需要进行new的方式。

AOP:面向切面。在不修改源代码的方式下对功能进行增强。

  • 下载

下载地址:https://repo.spring.io/release/org/springframework/spring/

一步步寻找步骤:http://spring.io

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到自己想要下载的版本点击下载即可。
在这里插入图片描述

  • 编写入门案例

(1)idea新建java工程

(2)引入spring。libs中每个模块都包含以下三部分。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-erKxZnaR-1614831356706)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304094220911.png)]
spring5的模块组成如下图所示,目前demo中只需要基本功能,所以导入核心容器core coontainer即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bkPxGV0G-1614831356706)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304095122589.png)]
(3)idea导入:新建libs文件夹;file-file constructure-下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lpEOo36w-1614831356707)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304100308525.png)]
(4)使用spring创建对象,首先创建一个普通类

类、对象、方法之间的关系?
类:一个种类(class),抽象概念,共性产物
对象:属于该种类的一个对象/物件(object)
方法:对这个种类的东西可以进行的操作
类包含方法,类是对象的模板,对象是类的实例。
package com.atguigu.spring5;

public class User {
    public void add(){
        System.out.println("i am add……");
    }
}

(5)创建spring配置文件,在配置文件中配置创建的对象

a:spring中配置文件使用xml格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1yyeBZqI-1614831356707)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304101726384.png)]
(6)测试

创建对象两步走:
1、加载spring配置文件
2、获取配置创建的对象
然后就可以调用对象的方法了!
public class testspring5 {
    @Test
    public void testAdd(){
        // 1 加载spring配置文件
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); //补全快捷键 alt+回车


        // 2 获取配置创建的对象
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.add();

    }

}

扩充

java中的get()和set()方法什么时候使用?

定义为private修饰符的成员变量,如果想要被外部调用,需要使用getter/setter

IOC容器的底层原理

  • 概念

ioc:控制反转,将创建对象的过程交给Spriing进行管理,不需要new的方式进行创建。

扩充:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7QcB4uN-1614831356708)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304110645339.png)]
UserService中没有new UserFactory对象,直接就 类名.方法调用该类中的方法,是因为该方法是static修饰的方法,在类加载的时候就自动加载了该方法,所以不需要创建该类的对象实例。

通过工厂模式可以降低两个类的耦合度。虽然降低了类与类之间的耦合度,但是新增了与工厂的耦合。代码涉及的原则是尽可能的减低耦合,故为了进一步降低,采用IOC模式。

IOC中除了应用工厂模式,还增加了两个模块:XML解析+反射

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qwAAhKPv-1614831356709)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304115033369.png)]

  • 接口

IOC思想是基于IOC容器完成,IOC容器底层就是对象工厂

spring提供IOC容器两种实现方式:(两个接口)

(1)BeanFactory

(2)ApplicationContext

public void testAdd(){
        // 1 加载spring配置文件
        ApplicationContext/BeanFactory context = new ClassPathXmlApplicationContext("bean1.xml"); //补全快捷键 alt+回车

        // 2 获取配置创建的对象
        User user = context.getBean("user", User.class);
        System.out.println(user);
        user.add();

    }
BeanFactory/ApplicationContext 异同:

相同点:都可以实现加载配置文件并获取配置创建的对象。

不同点:
BeanFactory:是spring内部使用接口,不提供开发人员进行使用。
*加载配置文件的时候不会创建对象,在获取对象(getBean)的时候才会创建。

ApplicationContext:是BeanFactory的子接口,提供更多更强大的功能,面向开发人员使用的。
*加载配置文件时就会创建对象,即只要bean.xml中配置了<bean id="",class=""></bean>就会直接创建。

第二种方式比较好,在项目启动的时候把这些耗时耗资源的操作全部完成,然后使用即可。

ApplicationContext接口的重要实现类:快捷键:ctrl + h查看结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U2RK62tH-1614831356709)(C:\Users\15856\AppData\Roaming\Typora\typora-user-images\image-20210304120901625.png)]
FileSysetmXmlApplicationContext:使用的是盘符路径即配置文件实际在硬盘中的存储路径

ClassPathXmlApplicationContext:项目中src下的路径

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值