-
怎样判断Spring容器初始化完成?!20
一个普通类实现了BeanFactoryPostProcessor,在里面调用了一个bean,结果bean中的还需要Spring注入一个类,结果空指针,单测没有问题。类摘要如下:
public class A implements BeanFactoryPostProcessor{
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException{
……很多操作省略
((B)factory.getBean("B")).xxx();
}
}
@Component
public class B{
@Autowired
@Qualifier("C")
private C c;
public void xxx(){
// 单元测试中注掉A类中最后那句跑OK,但是启动服务就不行,包空指针
c.yyy();
}
}
上述问题,初步估计是Spring容器没有初始化完成。逻辑实现的目的是想在Spring加载完成后执行某些方法。2013年5月15日 14:17
4个答案 按时间排序 按投票排序
-
看你代码想要表达的是,想要spring在构造bean后执行某个方法
推荐使用@PostConstruct即可:@Component public class B{ @Autowired @Qualifier("C") private C c; @PostConstruct public void xxx(){ // 单元测试中注掉A类中最后那句跑OK,但是启动服务就不行,包空指针 c.yyy(); } }
如果非要自己玩,那就用ApplicationListenerpublic class A implements ApplicationListener<ContextRefreshedEvent> { public void onApplicationEvent(ContextRefreshedEvent event) { event.getApplicationContext().getBean("B", B.class).xxx(); } }
2013年5月15日 21:49
-
你的意思是A用到了B,但是初始化A的时候,B还没有初始化完成,造成空指针异常。如果是这样,可以利用depends-on关键字,指定要想实例化A,则首先实例化B.
2013年5月15日 16:24
相关推荐
下面小编就为大家带来一篇浅谈spring容器中bean的初始化。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring的IoC容器初始化源码解析,包括资源定位、加载、注册3个过程
实现将一个接口动态代理,并将该代理对象在spring容器初始化完成前注册到spring容器中。实现可以通过@Autowired等注释或其他方法从spring容器中获取该代理对象
主要介绍了Spring容器初始化及问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要给大家介绍了关于spring容器初始化时候遇到的死锁问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
NULL 博文链接:https://bijian1013.iteye.com/blog/2374256
spring ioc容器初始化流程图 spring ioc容器依赖注入流程图 spring aop实现原理流程图
当我们不使用spring的时候 完成一个简单的 打印机任务是这样的 //MessageService类 只提供 打印内容 public class MessageService { public MessageService() { super(); System.out.println("MessageSerivce.......
spring 中文开发手册,spring容器初始化等案例
Bean的之前初始化 19 Bean的准备就绪(Ready)状态 21 Bean的销毁 21 ApplicationContext 21 Spring的AOP框架 21 Spring的数据层访问 22 Spring的声明式事务 22 Spring对其它企业应用支持 22 注:后面的...
第一天内容:Spring框架简介(EJB、JMX、Spring核心功能、Spring模块详解、Spring重要概念(容器)、Spring容器初始化的整个流程、Spring后处理器),IOC详解,Spring环境搭建,Spring创建Bean的三种方式,scope属性...
第二种在Spring Boot客户端连接Mysql容器时初始化数据库,你可以参考使用flyway进行数据库版本控制一文,但是这依赖客户端的能力。能不能做到Mysql容器启动时就自己初始化数据库呢?当然可以!今天就来演示一下。...
3、源码分析-IOC容器的初始化 4、源码分析-IOC容器的依赖注入 5、源码分析-IOC容器的高级特性 三阶段 Spring AOP的涉及原理及具体实践 SpringJDBC的涉及原理及二次开发 SpringMVC框架设计原理及手写实现 四阶段 ...
作者:钱安川(Moxie) ...Bean的之前初始化 19 Bean的准备就绪(Ready)状态 21 Bean的销毁 21 ApplicationContext 21 Spring的AOP框架 21 Spring的数据层访问 22 Spring的声明式事务 22 Spring对其它企业应用支持 22
可用于分析spring mvc源码、spring mvc父子容器初始化流程、session和cookie机制、spring session等,也可以用于学习Java Web(servlet、filter、listener等)、spring源码等。 该项目使用servlet3.0规范,无web.xml...
--全局初始化参数--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> 4.在Servlet中使用WebApplicationContextUtils获取容器...
Spring系列第12篇:lazy-init:bean延迟初始化Spring系列第13篇:使用继承简化bean配置(abstract & parent)Spring系列第14篇:lookup-method和replaced-method比较陌生,怎么玩的?Spring系列第15篇:代理详解(Java...
3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认无参数) 14 3.3.2使用静态工厂方法实例化(简单工厂模式) 14 3.3.3初始化(创建)bean时机 15 Lazy-init初始化bean的...
这包括从AnnotationConfigApplicationContext的实例化开始,到DefaultListableBeanFactory工厂的建立,再到AnnotatedBeanDefinitionReader的初始化,这一系列过程共同构成了Spring容器的加载核心。同时,本文还探讨...
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务...