Spring ApplicationContext(程序上下文)

理解:

Spring核心技术是IOC容器,负责对象的整个生命周期的管理–创建、装配、销毁。容器只是给我们提供了一个管理对象的空间,具体我们怎么通过容器管理对象呢?这就用到了Spring ApplicationContext。

当我们通过注解或者XML文件方式,配置好Bean和Bean的依赖关系,这个时候ApplicationContext将配置加载到IOC容器,让Spring IOC替我们管理对象,当我们需要的时候直接从容器中获取即可。

  • AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载上下文定义,适用于java注解的方式
  • ClassPathXmlApplicationContext:从类路径下的一个或多个xml配置文件中加载上下文定义,适用于xml配置的方式
  • FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载上下文定义,也就是说系统盘符中加载xml配置文件
  • AnnotationConfigWebApplicationContext:专门为web应用准备的,适用于注解方式
  • AnnotationConfigWebApplicationContext:专门为web应用准备的,适用于注解方式

代码示例:

XML方式


①.创建applicationContext.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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="company" class="com.zhw.demo.ioc.entity.Company">

②.获取容器,获取具体对象实例

public static void main(String[] args) {
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        Company company = (Company) classPathXmlApplicationContext.getBean("company");
    }

注解方式


①.创建对象管理并交给容器

@Configuration
public class MyConfig {
    @Bean
    public Company company() {
        return new Company();
    }
}

②.获取对象

public static void main(String[] args) {
        //从java注解的配置中加载配置到容器
        ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
        //从容器中获取对象实例
        Company company = context.getBean(Company.class);
    }
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容