在SESSIONS.ser中通过Tomcat反序列化之后,如何依赖注入标记为@Configurable的bean?
注意:除非您非常熟悉Java,Spring AOP和Tomcat,否则这没有任何意义。
问题是当Tomcat SESSIONS.ser反序列化时,不会注入标记为@Configurable的bean。
我在使用Spring 2.5.4,spring-tomcat-weaver-2.5.4,Tomcat 6.0.14的基于Struts 1.2.9的(遗留)应用程序上注意到了这种行为。
码:
public class MyForm implements Serializable {
private Foo myFoo; // getters and setters
}
public class Foo imlements Serializable {
private Bar myBar; // getters setters
}
@Configurable("barTemplate")
public class Bar implements Serializable {
@Autowired(required=true)
private transient SessionFactory hello;
// other transient dependencies ...
}
XML将Bar配置为原型bean。
正确的上下文:spring-configured和context:load-time-weaver设置应用等(因为它适用于Tomcat的冷启动)。
第一次开始时一切正常。但是,重新启动Tomcat会导致写入SESSIONS.ser并在重新启动时反序列化MyForm,它会执行此操作。但是,Bar中的所有依赖项都没有设置!
但是如果我关闭Tomcat,删除SESSIONS.ser文件,然后重新启动,那么一切都会正常工作。
奇怪的。
任何建议都非常感谢。
没有找到相关结果
已邀请:
1 个回复
搜洼挂时
元素与空
添加到相关webapp的
元素中。
这基本上指示Tomcat根本不使用会话管理器。