在 Spring XML 配置中,我有以下内容:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
....
</bean>
在 Java 类中,我有 @Autowired private SessionFactory sessionFactory; 没有二传手。这样可行。现在,我将 sessionFactory 更改为 Java 配置,如下所示。
@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:jdbc.properties" })
public class PersistenceConfig {
@Bean
public SessionFactory sessionFactory() {
LocalSessionFactoryBuilder lsfb = new LocalSessionFactoryBuilder(dataSource());
lsfb.addAnnotatedClasses(...);
lsfb.setProperties(hibernateProperties());
return lsfb.buildSessionFactory();
}
// ...
}
我收到一个错误“无法自动装配字段”。添加二传手没有帮助。为什么 sessionFactory 不能使用 Java 配置自动装配?
顺便说一句,我也可以通过为 DAO 配置 Java 来解决这个问题。