`
diecui1202
  • 浏览: 97129 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring 2-看看容器中有什么

阅读更多

一、初始化

// 1. 资源
Resource res = new ClassPathResource("beans.xml");

// 2. 初始化IOC容器
BeanFactory beanFactory = new XmlBeanFactory(res);
 

二、如何查看容器中的bean定义信息?

// 3. 转化为可枚举容器
ListableBeanFactory listableBeanFactory = null;
if (beanFactory instanceof ListableBeanFactory) {
	listableBeanFactory = (ListableBeanFactory) beanFactory;
}
if (listableBeanFactory == null) {
	throw new RuntimeException("listableBeanFactory is null.");
}

// 4. 转化为BeanDefinitionRegistry
BeanDefinitionRegistry beanDefinitionRegistry = null;
if (beanFactory instanceof BeanDefinitionRegistry) {
	beanDefinitionRegistry = (BeanDefinitionRegistry) beanFactory;
}
if (beanDefinitionRegistry == null) {
	throw new RuntimeException("listableBeanFactory is null.");
}
 
上面的示例代码中,ListableBeanFactory和BeanDefinitionRegistry两个接口单独说明一下
  1. ListableBeanFactory
    这是接口的注释:
    Extension of the BeanFactory interface to be implemented by bean factories that can enumerate all their bean instances, rather than attempting bean lookup by name one by one as requested by clients.
    该接口继承自BeanFactory,同时该容器能枚举它的bean实例,客户端甚至可以通过名字来查找;
  2. BeanDefinitionRegistry
    注释:
    Interface for registries that hold bean definitions, for example RootBeanDefinition and ChildBeanDefinition instances. Typically implemented by BeanFactories that internally work with the AbstractBeanDefinition hierarchy.
    实现该接口,可以拿到注册到容器中的bean的定义信息,包括抽象的bean定义;
遍历容器中的bean
for (String name : listableBeanFactory.getBeanDefinitionNames()) {
        // 对每一个bean的name,从BeanDefinitionRegistry中拿到BeanDefinition信息
	BeanDefinition bd = beanDefinitionRegistry.getBeanDefinition(name);
	System.out.println(name);

        // 判断是否是抽象的bean
	if (bd.isAbstract()) {
		System.out.println("\tIt is a abstract bean.");
                continue;
	}

	IBean bean = (IBean) beanFactory.getBean(name);
	System.out.print("\t");
	bean.doItNow();
}
分享到:
评论

相关推荐

    spring容器简单实例

    spring简单实例,一看就懂,介绍spring基本配置

    Spring之核心容器bean

    Spring之核心容器bean ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/44886613

    详解spring boot容器加载完后执行特定操作

    主要介绍了详解spring boot容器加载完后执行特定操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring的IoC容器(PDF)

    Spring的IoC容器的详细介绍,想了解Spring核心的人不可不看~

    spring-boot-starter-web更换默认Tomcat容器的方法

    Spring Boot支持容器的自动配置,默认是Tomcat,当然我们也是可以进行修改的。下面小编给大家带来了spring-boot-starter-web更换默认Tomcat容器的方法,感兴趣的朋友跟随小编一起看看吧

    Spring的IoC容器

    Spring的IoC容器使用指南,具体内容自己看吧。

    spring+springmvc+mybatis的整合

    但是有一些部分自己没有能完成,主要是如何从spring容器里取出ApplicationContext,这个我的实现比较low,看了看讲义,才OK的。 我的实现: [java] view plain copy WebApplicationContext acc = ...

    spring杂谈 作者zhang KaiTao

    1.10 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。 1.11 在spring中获取代理对象代理的目标对象工具类 1.12 如何为spring代理类设置属性值 1.13 我对SpringDAO层支持...

    spring security 参考手册中文版

    9.3.1什么是Spring Security中的认证? 78 9.3.2直接设置SecurityContextHolder内容 80 9.4 Web应用程序中的身份验证 81 9.4.1 ExceptionTranslationFilter 82 9.4.2 AuthenticationEntryPoint 82 9.4.3认证机制 82 ...

    浅谈spring容器中bean的初始化

    下面小编就为大家带来一篇浅谈spring容器中bean的初始化。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    spring-javaconfig

    JavaConfig使用Java代码来对配置,管理和实例化Bean.并交由Spring容器来使用。在使用XML文件来描述Bean配置时,需要定义许多专有的XML元素。而使用Java代码来描述Bean配置,...让我们看看JavaConfig中那些最重要的注释

    Spring面试题含答案.pdf

    2. 使用 Spring 框架的好处是什么? 3. Spring 由哪些模块组成? 4. 核心容器(应用上下文) 模块 5. BeanFactory – BeanFactory 实现举例 6. XMLBeanFactory 7. 解释 AOP 模块 8. 解释 JDBC 抽象和 DAO 模块 9. ...

    tiny-spring-practice:实践tiny-spring,手写Spring两大核心功能:IOC和AOP

    想看源码但是Spring的源码层次复杂,封装繁琐,简单的逻辑写的非常“啰嗦”,阅读起来很费劲。然后发现了多年前的一个精简版的Spring学习项目,叫,作者对spring核心的IOC和AOP进行了临摹实现,也很细心的对实现步骤...

    spring boot容器启动流程

    spring cloud是基于spring boot快速搭建的,今天咱们就看看spring boot容器启动流程,需要的朋友跟随脚本之家小编一起学习吧

    开源框架 Spring Gossip

    BeanNameAutoProxyCreator DefaultAdvisorAutoProxyCreator <br> 持久层 来看看 Spring 的 IoC 容器与 AOP 框架如何应用于持久层,包括了资料库、交易等相关议题。 资料库存取 Spring ...

    Spring AOP源码分析.mmap

    有关于Spring,我们最常用的两个功能就是IOC和AOP,前几篇文章从源码级别介绍了Spring容器如何为我们生成bean及bean之间的依赖关系 下面我们接着来看AOP的源码实现。 有关于AOP,我们在面试中也被无数次问到...

    高级开发spring面试题和答案.pdf

    spring 三种注入(就是从spring容器中将bean放入对象属性值中) Spring下描述依赖关系@Resource, @Autowired和@Inject的区别与联系 Spring中BeanFactory和ApplicationContext的区别 谈谈Spring IOC的理解,原理与...

    Spring.net框架

    有了这个Factory,MainApp中的内容就很简单了: using System; namespace IocInCSharp { public class MainApp { public static void Main() { ISayHello sayHello = (ISayHello)SayHelloFactory.Create(...

    Spring攻略 英文第二版

    随着Spring框架最新版本——3.0版的发布,Spring平台已经发展成熟,成为Java、Java虚拟机、Groovy、NET或者Action-Script开发人员最...这是这本书的英文版,可以对着中文去看看,如果觉得中文翻译的有问题,可以参考

Global site tag (gtag.js) - Google Analytics