Spring第二篇:Spring容器的基本使用及原理

2021-02-03 10:17

阅读:579

标签:bsp   lap   mave   config   maven   bean   初始化   关系   exception   

一、Spring的IOC容器

  Spring的IOC容器是具有依赖注入功能的容器,负责对象的实例化、对象的初始化,对象和对象之间依赖关系配置、对象的销毁、对外提供对象的查找等操作,对象的整个生命周期都是由容器来控制。我们需要使用的对象都由ioc容器进行管理,不需要我们再去手动通过new的方式去创建对象,由ioc容器直接帮我们组装好,当我们需要使用的时候直接从ioc容器中直接获取就可以了。

  IOC容器通过解析xml的配置文件和解读java的注解来获取需要管理的清单,安排配置文件和注解指定的对象创建方式构建对象,并将对象按照依赖关系组装好供外部调用。

二、Bean概念

  Spring的IOC容器管理的对象就是Bean对象,Bean对象就是普通的Java,只不过现在对象的创建和管理需要Spring来完成。我们需要在配置文件中告诉Spring如何创建和管理该对象,我们把配置文件中这些定义bean对象的创建方式、对象间依赖关系和管理对象的配置信息称之为,配置元数据信息。Spring容器通过bean的配置元数据信息来创建和组装我们需要的bean对象。

 三、Spring容器的基本使用

  1、创建maven项目

  2、引入spring的maven相关依赖

  3、增加bean的xml配置元数据信息,定义spring容器管理的bean对象

  4、创建Spring容器,并指定加载的bean配置文件。启动Spring容器,加载指定的bean配置文件,创建配置文件中定义好的bean对象,bean对象存放在容器中供外部使用。

  5、获取spring容器中的对象,并使用。

四、Spring的容器对象

  1、BeanFactory接口

  org.springframework.beans.factory.BeanFactory接口是Spring容器的顶层接口,提供了容器最基本的使用方法。

  常用的方法:

//按bean的id或者别名查找容器中的bean
Object getBean(String name) throws BeansException

//这个是一个泛型方法,按照bean的id或者别名查找指定类型的bean,返回指定类型的bean对象
 T getBean(String name, Class requiredType) throws BeansException;

//返回容器中指定类型的bean对象
 T getBean(Class requiredType) throws BeansException;

//获取指定类型bean对象的获取器,这个方法比较特别,以后会专门来讲
 ObjectProvider getBeanProvider(Class requiredType);

  2、ApplicationContext接口

  org.springframework.context.ApplicationContext接口继承了BeanFactory接口的所有功能,并在其基础上增加了AOP、事件支持、国际化等功能。

  3、ClassPathXmlApplicationContext接口

  org.springframework.context.support.ClassPathXmlApplicationContext接口继承了ApplicationContext接口,这个接口可以从classPath接口中加载xml文件,并根据xml文件的配置元数据信息创建bean对象。

  4、AnnotationConfigApplicationContext接口

  org.springframework.context.annotation.AnnotationConfigApplicationContext接口也继承了ApplicationContext接口,上面的ClassPathXmlApplicationContext接口支持从xml的配置文件中创建并管理bean对象,而AnnotationConfigApplicationContext接口则支持从注解解析中创建和管理bean对象。

  使用注解的方式比使用xml文件配置的方式要更加方便。

五、Spring的IOC容器简单使用

  1、创建maven

  创建spring-series的聚合工程,并添加相应的依赖管理

lin.java.spring
    spring-series
    pom1.0-SNAPSHOT

  pom.xml文件信息

UTF-81.81.81.85.2.3.RELEASE4.13-beta-3org.springframework
                spring-core
                ${spring.version}org.springframework
                spring-context
                ${spring.version}org.springframework
                spring-beans
                ${spring.version}junit
                junit
                ${junit.version}

  选中spring-series,进行module创建,相应的pom.xml中增加依赖配置


    org.springframework
            spring-core
        org.springframework
            spring-context
        org.springframework
            spring-beans
        junit
            junit
            test

  2、在项目中创建相应的类

  在项目重创建测试用的实体类

package com.java.spring01.demo1;

public class HelloSpring {

    public void say(String str){
        System.out.println("hello spring IOC First demo " + str);
    }
}

  3、在resources文件中创建bean.xml文件,用于指定Bean的配置元数据信息


       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-4.3.xsd">

    
    class="com.java.spring01.demo1.HelloSpring"/>

  3、创建test方法并运行

package com.java.spring01.demo1;

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HelloSpringTest {

    @Test
    public void testSay(){
        //1、配置xml文件路径
        String beanXml = "classpath:/spring01/demo1/bean.xml";
        //2、获取IOC容器,加载配置文件到容器中
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(beanXml);
        //3、获取bean对象
        HelloSpring bean = context.getBean("helloSpring", HelloSpring.class);
        //4、运行bean方法
        bean.say("测试");
    }
}

  运行结果:

技术图片

 

Spring第二篇:Spring容器的基本使用及原理

标签:bsp   lap   mave   config   maven   bean   初始化   关系   exception   

原文地址:https://www.cnblogs.com/8593l/p/12801204.html


评论


亲,登录后才可以留言!