Spring及Spring的创建和使用

目录

1.Spring是什么?

2.loc和DI是啥?有什么区别? 

3.Spring最核心的功能是啥?

 4.Spring项目的创建

5.将Bean对象存储到Spring中

6.获取并使用Bean对象

 7. ApplicationContext VS BeanFactory


1.Spring是什么?

Spring 就是一个包含了众多工具的loc容器

包含了两个最核心的最关键的功能:

        1.将对象存入到Spring中

        2.从Spring中获取到对象

2.loc和DI是啥?有什么区别? 

 IoC, Inversion of Control,译为控制反转,使用控制反转的思路,可以实现依赖类之间的解耦,让我们不必去关心依赖类的具体实现,以及生命周期,我们只需要在使用的时候,把他注入进来就行

DI, Denpendency Injection,译为依赖注入,是一种loc具体实现手段,指的是loc容器运行期间,动态将某种依赖关系注入到对象中

d

区别:Ioc是指导思想,DI是具体的实现

3.Spring最核心的功能是啥?

 1.将对象存储到Spring当中

 2.从Spring中取出对象

 4.Spring项目的创建

        1)创建一个maven项目

  2)配置一下国内源(如果settings.xml不存在,就要把这个settings。xml创建进去,并将其勾选)

 

        3)添加Spring依赖包 ,将以下代码粘贴到.xml文件下,然后刷新

<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>5.2.3.RELEASE</version>
	</dependency>
	
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-beans</artifactId>
		<version>5.2.3.RELEASE</version>
	</dependency>
</dependencies>

         4)创建一个启动类;

5.将Bean对象存储到Spring中

        1)创建一个业务对象

 

        2)将对象存储到Spring框架(声明式)

在resources包下新建一个xml文件,并将User对象注册到Spring中,使用一个<bean>标签

6.获取并使用Bean对象

        1)获取Spring上下文对象

	// 方法一: 通过 ApplicationContext 来获取 Spring 的上下文对象
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
    // 方法二: 通过  BeanFactory 来获取 Spring 的上下文对象
    BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

        2)通过Spring上下文对象来获取Bean对象(有以下三种方式)

    // 方法一: 通过 bean 的 id 来获取
    UserBean user = (UserBean) context.getBean("user");
    // 缺点:需要强制类型转换
    // 方法二: 通过类型获取
    UserBean user = context.getBean(UserBean.class);
    // 缺点:对于多个对象的同一种类型Bean获取会报错
    // 方法三: 通过 id+类型 来获取
    UserBean user = context.getBean("user",UserBean.class);
    // 优点 : 不需要强制类型转换, 对于多个对象的同一种类型的 Bean 获取不会报错

         3)使用业务对象

    public static void main(String[] args) {
        // 1. 获取到 Spring 的上下文对象
        // 方法一: 通过 ApplicationContext 来获取 Spring 的上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        // 2. 通过 Spring 上下文对象来获取业务对象
        // 方法一: 通过 bean 的 id 来获取
        UserBean user = (UserBean) context.getBean("user");
        // 3. 使用业务对象
        user.printName();
    }

 7. ApplicationContext VS BeanFactory

        1)二者来自的 jar 包不一样ApplicationContext 来自 spring.context.jar 下;BeanFactory 来自 spring.beans.jar 下)

        2)对于继承来说

ApplicationContext 和 BeanFactory 都属于 Spring 下的顶级接口
 
ApplicationContext 属于 BeanFactory 的⼦类, BeanFactory 所有的功能 ApplicationContext 也是拥有的,
 
除此之外. AppicationContext 还拥有其他的 BeanFactory 没有的功能

         3)对于执行性能来说

  ApplicationContext是一次性加载并初始化所有的Bean对象,所以它的启动过程可能比较慢,但是后续执行快;而BeanFactory是需要那个去加载,因此BeanFactory占用系统资源更少,启动更快,但是后续的执行可能会更慢些

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值