[英]Spring JPA with ApplicationContext.xml, DAO and Service are NULL
[英]DAO class declared in ApplicationContext (Spring)
我一直在研究我所在的公司的一些现有代码,我看到的是applicationContext.xml文件将UserDAO类声明为bean,这很好但是在DAO类本身已经声明了getFromApplicationContext(ApplicationContext ctx)返回了DAO类本身的实例。 我无法理解调用此方法的位置,是谁调用它。 DAO类正在扩展HibernateDaoSupport类我怎么知道我必须在我的类中创建这个方法,因为如果我删除它,eclipse中的编译器不会抱怨。 我想说的是应该有一个接口或抽象类,它将迫使我编写这个方法。
public static UserDAO getFromApplicationContext(ApplicationContext ctx) {
return (UserDAO) ctx.getBean("userDAO");
}
请任何能解释一下的人。
通常,您不应该引用应用程序上下文,尤其是在用户dao这么简单的事情上。
有关查找用法的一些提示:
如果它没有被使用,并且没有编译问题,并且xml配置中没有什么特别的东西(比如factory-method
) - 删除它。
如果这个方法没有在任何地方使用,我想你可以安全地删除它。 它看起来不像Spring自动调用的方法。 相反,它看起来像是一个实用工具方法,用于从应用程序上下文中获取UserDAO的实例。
这个方法很有用,因为它避免了对所有bean的名称进行硬编码,但是通常应该避免使用它,因为Spring的重点是使用依赖注入,从而避免像这样的bean查找。 应用程序上下文可用于在启动时获取一些根对象。 但是应该注入所有其他豆类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.