Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置Spring+;休眠依赖注入? 我有一个来自C++/C++的java到Neb到.< /P>_Java_Spring_Hibernate_Spring Boot - Fatal编程技术网

如何设置Spring+;休眠依赖注入? 我有一个来自C++/C++的java到Neb到.< /P>

如何设置Spring+;休眠依赖注入? 我有一个来自C++/C++的java到Neb到.< /P>,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我的项目当前设置如下: org.blah.config HibernateConfig.java org.blah.customer Customer.java CustomerController.java CustomerService.java HibernateConfig设置hibernate内容并公开LocalSessionFactoryBean CustomerController是REST入口点,它实际上没有太多逻辑,它只是包装了CustomerService.

我的项目当前设置如下:

org.blah.config
  HibernateConfig.java
org.blah.customer
  Customer.java
  CustomerController.java
  CustomerService.java
HibernateConfig设置hibernate内容并公开LocalSessionFactoryBean

CustomerController是REST入口点,它实际上没有太多逻辑,它只是包装了CustomerService.java(或者我应该称之为CustomerRepository?)

java(或CustomerRepository?)包装数据库内容。在这里,我有:

@Autowired
private SessionFactory sessionFactory;
在我的CustomerController中,如果我这样做:

private CustomerService customerService = new CustomerService();
它不会注入sessionFactory

从我发现的一些示例中,人们似乎在HibernateConfig中创建了CustomerService bean,然后将其注入控制器的构造函数中。这是个好习惯吗?然后我会将我的HibernateConfig重命名为更具体的名称,比如CustomerHibernateConfig,等等


只是想了解如何/在何处放置配置并创建服务/repo实例,以便将其注入控制器。

这是一个很难用几句话回答的问题。您要求的是一个很大程度上取决于所选设计模式的整体架构,但考虑到您有控制器和服务,让我这样说吧。MVS只是一种简化,并不是一种完美的方法。这将引发更多类似的问题

  • 控制器应该有多少逻辑
  • 模型应该包含任何逻辑吗
  • 视图应该包含逻辑吗
像这样的问题很难回答,因为这些都是非常主观的。不过,我已经使用Spring一段时间了,我会给你我的建议

控制器的功能是验证输入,并在需要时重定向到视图,或响应客户端的请求。如果您有域逻辑(又名业务逻辑、业务规则和域知识),即做出业务关键决策的逻辑,那么它不应该在控制器上,而应该在服务上

现在,我想说,您的体系结构缺少一个层,我肯定会添加一个
DAO
,这是一种设计模式,定义了一种将应用程序的持久层解耦的方法。这就是您所理解的存储库

话虽如此,您只需要一个HibernateConfiguration,并在与该模型相关的每个模型或XML文件中进行相应的映射。我建议使用
注释
而不是XML文件


如果您想学习如何实现一个使用Hibernate的Spring项目,您可以通过以下步骤看到它是多么容易。该页面确实有关于Spring使用的最佳指南。

您应该看看Spring JPA入门指南;您根本不需要任何Hibernate配置,应该使用JPA接口,而不是传统的Hibernate特定接口
spring boot starter数据jpa
是您的朋友。感谢Alain,另一位推荐使用jpa的评论员。试图弄清楚现在什么是首选的方法。显然,我不能学到所有东西,所以我只想学习最新和最棒的:)。我一直在使用Baeldung的网站。你指给我看的教程是“最新和最好的”:?是的,有很多,所以你必须选择最适合你的。在这里,看看这个链接,它将帮助您做出决定。请记住,Hibernate是一个JPA实现,有助于简化工作。