spring容器

spring容器简单理解就是一个大的盆,或者一个大缸,里面装满了Java对象,并且建立维护好了这些对象之间的关系,而在我们需要使用这些对象的时候,就不用再用new关键字来创建了,而实直接从这个大缸里面取,然后直接用就行了。

spring的容器有很多,并不止一个,spring框架有很多的容器实现,但是就分类而言,可以归纳为两种不同的类型,bean工厂就是最简单的容器,提供了基本的依赖注入(DI)功能,应用上下文是基于bean工厂而来的,提供了框架级别的服务。

所以简单来讲,spring的容器有两种

  1. bean工厂
  2. 基于bean工厂的应用上下文(更加常用和高级)

spring中的应用上下文又有多种,下面是可能遇见的

上下文 解释
AnnotationConfigApplicationContext 从Java配置类中加载spring应用上下文(容器)
AnnotationConfigWebApplicationContext 从Java配置类中加载springWeb应用上下文(容器)
ClassPathXmlApplicationContext 从类路径下的xml配置文件中加载应用上下文(容器)
FileSystemXmlApplicationContext 从文件系统下的xml配置文件中加载应用上下文(容器)
XmlWebApplicationContext 从web应用下的xml配置文件中加载应用上下文(容器)

不管是从哪里加载spring上下文(容器)将对象bean加载到bean工厂的过程基本都是一致的。

public class ContextTest {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
        System.out.println(applicationContext);
    }
}

如上代码,通过在类路径下加载spring容器,其他方式的都是类似的。

在成功加载了容器之后就可以使用getBean()方法获取容器中的对象了



    
        
            
        
    

public class ContextTest {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
        Person person = (Person) applicationContext.getBean("person");
        System.out.println(person.name);
    }
}

如上代码,就是在xml中配置了类型之后,在Java中通过ClassPathXmlApplicationContext获取容器,并通过getBean()获取容器中的对象

你可能感兴趣的:(spring容器)