2
我正在通過示例應用程序(在教程enter link description here後面)學習Spring數據JPA,但一直在讓我的JPA存儲庫工作。無法自動連接Spring數據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>
Main類
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
。任何人都可以告訴我我在這裏失蹤了什麼?
編輯:爲自動裝配創建了一個實現類。
請閱讀我編輯的帖子。我現在創建了一個實現類來允許自動裝配,但它仍然不起作用。 – ishan
重新閱讀我的答案,並閱讀我鏈接到的文檔。您仍然沒有創建Spring應用程序上下文,並且您仍然沒有爲上下文請求一個bean,但是您仍然在用新的方式創建一個對象,並期望Spring自動調用它。 –