【发布时间】:2013-07-27 11:53:33
【问题描述】:
我必须使用 Spring 3 MVC、Spring data 和 JPA 开发业务应用程序。我搜索了一些示例,但发现很少有解决方案。我选择了两种方式来设计我的 webapp。第一个是(一个实体的示例):
@Entity
class Product {
//fields, methods
}
interface ProductRepository extends JpaRepository <Product, Long>{}
interface ProductService {
//methods declaration
}
@Service
class ProductServiceImpl implements ProductService{
@Autowired
ProductRepository
//methods
}
@Controller
@RequestMapping("productsite")
class ProductController{
@Autowired
ProductServiceImpl
//render the model
}
第二个:
@Entity
class Product {
//fields, methods
}
interface ProductRepository extends JpaRepository <Product, Long>{
//methods declaration
}
@Service
class ProducDAO{
@Autowired
ProductRepository
//methods
}
@Component
class ProductEndpoint{
@Autowired
ProducDAO
//fields, methods
}
@Controller
@RequestMapping("productsite")
class ProductController{
@Autowired
ProductEndpoint
//render the model
}
哪种解决方案更好并且符合良好做法?感谢您的帮助。
【问题讨论】:
-
DAO 和存储库基本上是一回事。我认为没有任何理由让存储库使用 DAO。这两个组件的职责是什么。此外,当一个组件有一个接口和一个实现时,接口必须是自动装配的,而不是实现。
标签: spring model-view-controller spring-mvc spring-data