我正在尝试为Liferay编写一个portlet(使用Tomcat和Spring),并且需要通过Persistence API / Hibernate使用数据库。我正在使用一些配置XML(applicationContext.xml等)和注释来实现这一点。 e.g。
@Component @Scope("application")
public class SomeForm {
@PersistenceContext EntityManager entityManager;
目前我遇到了NullPointerExceptions的麻烦,在我看来,因为entityManager没有绑定。但我不是要问这个问题的答案,而是要求更广泛的话题:
是否有一种简单的方法可以在运行时检查应用程序上下文中可用的对象(例如PesistenceContext,SessionContext),并确定在运行时如何在应用程序上下文中绑定Object?
答案 0 :(得分:2)
你可以调用方法
getBeanDefinitionCount()
getBeanDefinitionNames()
getBeanNamesForType()
getBeansOfType()
getBean()
在应用程序上下文本身上检查它在运行时包含的bean。
BeanFactoryUtils 类上还有等效的静态方法,如果使用嵌套的上下文,它将考虑嵌套层次结构。