いくつかの可能性があります。
HibernateSessionFactory
はビルド後に不変であり、メソッドSessionFactoryBean
を組み込むため、必要な設定作業は一部の人が行う必要があることに注意してください。SessionFactory
afterPropertiesSet
SessionFactoryBean
BeanFactoryPostProcessor
編集
あなたのコメントを読んだ後、EntityClassHolder
Bean を宣言し、Autowire コレクション機能を使用してEntityClassFactoryBean
、単一の に注入できるすべてのエンティティを取得できると思いますSessionFactoryBean
。しかし、それがあなたがやりたいことかどうかはわかりません:
public class EntityClassHolder {
List<Class<?>> entityClasses;
public List<Class<?>> getEntityClasses() {
return entityClasses;
}
public void setEntityClasses(List<Class<?>> entityClasses) {
this.entityClasses = entityClasses;
}
}
public class EntityClassFactoryBean extends AbstractFactoryBean<List<Class<?>>> {
@Autowired
List<EntityClassHolder> list;
@Override
public Class<?> getObjectType() {
return List.class;
}
@Override
protected List<Class<?>> createInstance() throws Exception {
ArrayList<Class<?>> classList = new ArrayList<Class<?>>();
for (EntityClassHolder ech : list) {
classList.addAll(ech.getEntityClasses());
}
return classList;
}
}
たとえば、複数の applicatonContext-xxx.xml がある場合、そのうちの 1 つをロードするとSessionFactory
、Bean で定義されたエンティティ クラスで構成されます。EntityClassHolder