Spring初识(二)

前言

经过前面的学习,我们已经知道spring就是包含了众多方法的Ioc,那么既然是容器,就具备两个功能,我们接下来就是要介绍以下两个功能:
1.将对象存储到容器(spring)中:
2.从容器(spring)中将对象取出来.
这两个功能就应发出来,spring的创建和使用.

一.Spring创建

我们先来说一些大方向的一个步骤:
创建spring
1.创建一个maven项目
2.增加Spring的框架支持.
3.增加一个启动类(作用:为后面从spring容器获取bean 做准备)
现在具体就开始细节的操作了.

1.1创建一个maven项目Spring初识(二)_第1张图片

点击下一步之后.
Spring初识(二)_第2张图片

1.2 增加Spring依赖

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.23</version>
    </dependency>

</dependencies>

1.3 增加启动类

所谓启动类,就是在java文件目录下建立一个启动类.

public class Application {
    public static void main(String[] args) {
     
    }
}

二.存储Bean对象

具体步骤如下:
1.先创建Bean对象.
2.将创造的bean通过spring配置文件(spring-config.xml)注册到容器当中.

2.1 创建Bean

何为Bean,Bean就是Java语言中的一个普通对象,
具体代码入下:

public class Student {
    public Student(){
        System.out.println("do student init");
    }
    public void sayHi(){
        System.out.println("hi student");
    }
}

2.2 将Bean对象注册到容器当中

spring-config.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"
       xmlns:content="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

下面做的操作就是把bean对象注册到Spring容器当中.

<bean id="student" class="com.spring.demo.Student"></bean>

三.读取Bean对象

这一步就是从容器中把东西取出来.
1.得到spring对象(两种方式ApplicationContext、BeanFactory)
2.通过spring对象getBean 方法获取到Bean对象

3.1 得到spring上下文对象.

这里创建上下文对象其实有两种方式.
Spring 上下⽂对象可使⽤ ApplicationContext,实现代码如下:

 ApplicationContext context=new 
 ClassPathXmlApplicationContext("spring-config.xml");

除了ApplicationContext 之外,我们还可以使用BeanFactory 来作为Spring 的上下文,如下代码所示:

  BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

当然这两者有什么区别呢?
大家先来看使用上的区别.
Spring初识(二)_第3张图片
最后来个简单的总结,这也是常见的面试题:

继承关系和功能方面来说:Spring容器有两个顶级的接口:BeanFactory和
ApplicationContext。其中 BeanFactory提供了基础的访问容器的能力而 ApplicationContext属于BeanFactory的子类,它除了继承了BeanFactory的所有功能之外,它还拥有独特的特性,还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持。
从性能方面来说:ApplicationContext是一次性加载并初始化所有的 Bean对象,而BeanFactory是需要那个才去加载那个,因此更加轻量。

3.2 通过上下文对象,获取某一个指定的Bean对象

这里获取到Bean对象也有三种方式
1.通过名称获取.

      Student student=(Student)context.getBean("student");

2.通过类型方式获取.

 Student student=(Student)context.getBean(Student.class);

3.通过名称+类型方式获取.

        Student student=(Student)context.getBean("student",Student.class);

3.3 使用Bean对象

public class Application {
    public static void main(String[] args) {
        ApplicationContext context=new
                ClassPathXmlApplicationContext("spring-config.xml");
        Student student=(Student)context.getBean("student",Student.class);
        student.sayHi();
    }
}

总结

  1. 操作容器之前,先要有容器,所以先要得到容器。

  2. 存对象
    a.创建Bean(普通类)。
    b.将 Bean注册(配置)到spring-confing.xml中。

  3. 取对象
    a.得到Spring 上下文,并读取到Spring的配置文件。b.获取某一个 Bean对象。
    c.使用Bean对象。

具体的流程图如下:
Spring初识(二)_第4张图片

你可能感兴趣的:(javaEE进阶,spring,java,后端)