区块链技术博客
www.b2bchain.cn

Spring系列:ApplicationContext和BeanFactory对比区别

这篇文章主要介绍了Spring系列:ApplicationContext和BeanFactory对比区别的讲解,通过具体代码实例进行19832 讲解,并且分析了Spring系列:ApplicationContext和BeanFactory对比区别的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=19832

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

目录

基础

对比

demo

配置方式

注解方式


基础

Spring系列:IOC依赖注入(根据类型查找)实例

对比

Spring系列:ApplicationContext和BeanFactory对比区别

Spring Bean 的维护和生命周期管理均在 BeanFactory 实现类中,绝多大数是指 DefaultListableBeanFactory

ApplicationContext是BeanFactory的子接口。

Spring系列:ApplicationContext和BeanFactory对比区别

 

 

当byType是BeanFactory.class的时候,获得是的ApplicationContext中的DefaultListableBeanFactory对象。(ApplicationContext中每次getBean()都是通过DefaultListableBeanFactory来查找bean对象的)

 Spring系列:ApplicationContext和BeanFactory对比区别

 

真正的IOC的底层实现就是BeanFactory的实现类,因为ApplicationContext是委托DefaultListableBeanFactory来操作getBean等方法的

 

demo

配置方式

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/META-INF/content-inject.xml") ;            //自定义bean         UserRepos userRepos = applicationContext.getBean("userRepos", UserRepos.class) ;          System.out.println(  userRepos.getObjectFactory().getObject()== applicationContext  );         System.out.println(userRepos.getBeanFactory() == applicationContext);         System.out.println(userRepos.getBeanFactory() == applicationContext.getAutowireCapableBeanFactory());

true
false
true

注解方式

package com.test;  import com.test.pojo.User; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean;  import java.util.Map;  public class IOCDemo {       public static void main(String[] args) {         AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();         applicationContext.register( IOCDemo.class) ;         applicationContext.refresh() ;         lookupBeans(applicationContext);     }      @Bean     public User user(){         User u = new User();         u.setId(1);         u.setName("NIO");         return u ;     }      private static void lookupBeans(AnnotationConfigApplicationContext beanFactory) {         if(beanFactory instanceof ListableBeanFactory){             Map<String,User> users =  beanFactory.getBeansOfType(User.class);             System.out.println(users);         }     }     } 

{user=User{id=1, name=’NIO’}}

 

本文转自互联网,侵权联系删除Spring系列:ApplicationContext和BeanFactory对比区别

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Spring系列:ApplicationContext和BeanFactory对比区别
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们