我是通过示例应用程序(遵循enter link description here的教程)学习Spring数据JPA,但却陷入了让我的JPA存储库工作的问题。
产品库(产品是实体)
@Repository
public interface ProductRepository extends JpaRepository<Product , Long> {
}
ProductRepositoryImpl
public class ProductRepositoryImpl {
@Autowired
private ProductRepository productRepo;
/**
* @return the productRepo
*/
public ProductRepository getProductRepo() {
return productRepo;
}
/**
* @param productRepo the productRepo to set
*/
public void setProductRepo(ProductRepository productRepo) {
this.productRepo = productRepo;
}
public Product findOne(Long id) {
return productRepo.findOne(id);
}
}
弹簧配置
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
<repositories base-package="com.springtest" />
<jpa:repositories base-package="com.springtest.repository"/>
<context:component-scan base-package="com.springtest"/>
</beans:beans>
主要课程
public class MainClass {
public static void main(String[] args) {
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
ProductRepositoryImpl productService = new ProductRepositoryImpl();
Product product = productService.findOne(1L);
session.close();
}
}
但每次我运行时,我都会null
productRepo
。谁能告诉我,我在这里失踪了什么?
编辑:为自动装配创建了一个实现类。
答案 0 :(得分:2)
Spring只能将bean注入Spring创建的其他Spring bean中。您可以使用
创建MainClass实例new MainClass()
所以Spring完全没有意识到这个对象的存在,并且不能神奇地将任何东西注入到这个对象中。
您需要创建一个Spring上下文,向它请求bean,然后使用这个bean。
阅读文档中的introduction to Spring。