解决方案 »
- 各位前辈,帮我下啊,怎么将.class文件包装成一个.exe文件啊
- 用java如何访问某个网站?
- 怎么在index.html里面获取系统设置的问题
- hibernate fetch=FetchType.LAZY问题
- myeclipse6.0如何运行tomcat
- Struts表单中如何处理时间Date
- 急急急!!在线等。在axis里面,如何序列/反序列化OutputStream类?能给个例子吗?当时给分。
- 用正则表达式来判断前2位和后3位字符相等的表达式怎么写?有写过正则表达式的朋友帮帮忙!在线急!!!
- 请教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都加载完成并可以提供工作了,这个时候你可以随意操作数据库了