解决方案 »
- 一个proxool连接池的问题!
- jsp中使用ckeditor的相关问题
- 如何动态读取数据库中表的内容
- 后台继承了hiernateDAOSupport类,但是我想通过hql查询的结果却是空
- Error listenerStart 我郁闷死了
- JAVA怎么样自动处理一个文件夹下面所有的文本文件?大虾们请指教
- 如何将一个DLL发布为Web服务?
- 再次询问关于java客服端代码调用.net WebService不能传递参数的问题
- 寻找一个 SQL 语句生成的辅助类。。。。
- 完整的j2ee的例子,或可下栽的源代码?(在线等待)
- 问个关于SpringMVC+SpringJDBC+Velocity保存实体的问题,谢谢。
- Hibernate表与表之间关系的设计的问题
不是 是项目启动运行的,那个main是我随意加的
init-method是在每个bean建立时就会被调用,但是这个时间不能保证session factory等类被初始化(可能建立,但是没有配置属性进行初始化)
因此,基本上init-method是没有成功的可能的(多级ApplicationContext,则因为每级会独立完成初始化,属于另一种情况)一般来讲,依赖别的类初始化完成后执行的代码 是通过 实现 InitialzingBean接口
afterPropertiesSet方法来执行的。
嗯,你说的很多,我试下您说的方法;不过,昨晚上研究了下spring的事件传播机制,我上面的需求也可以使用spring提供的五个标准事件之一的容器启动的事件---ContestStartedEvent来实现。
sorry 应该是ContextRefreshedEvent这个事件;
http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/beans.html#context-functionality-events
当你的Bean在创建后,Spring立刻会调用Init用于类的初始化,整个由托管的SpringBean其实并没有完全被初始化完成,类加载顺序的不同会导致系统出现莫名其妙的问题。。解决办法:
不要使用Init方式初始化,而是监听Spring的上下文事件,接收Refresh事件(全名忘记了),此事件表示Spring完成的上下文的创建,这个时候你所有的bean都加载完成并可以提供工作了,这个时候你可以随意操作数据库了