ApplicationContext与BeanFactory的联系和区别

ClassPathXmlApplicationContext
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");

追溯发现其实继承了ApplicationContext

 继承关系

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver {

发现继承了很多beanfactory,而这些beanfactory都继承于beanfactory

ApplicationContext是一个集大成者

所以可以用applicationContext代替beanfactory 

public class Main {
    public static void main(String[] args) {
                //原始写法
     //   DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
                 //替换后
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
        AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition();
    beanDefinition.setBeanClass(User.class);
    applicationContext.registerBeanDefinition("user",beanDefinition);
        applicationContext.refresh();
        User user1 = applicationContext.getBean("user", User.class);
        //因为applicationContext是集大成者,所以有下面功能!!!
        //获取系统环境
        System.out.println(applicationContext.getEnvironment().getSystemEnvironment());
        //获取jvm环境
        System.out.println(applicationContext.getEnvironment().getSystemProperties());
        Resource resource = applicationContext.getResource("D:\\项目\\spring-study\\FunnySpring\\src\\main\\resources\\spring.xml");
        System.out.println(resource);
        System.out.println(user1);
        String test = applicationContext.getMessage("test", null, Locale.CHINESE);
        System.out.println(test);
    }
}

输出结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值