【问题标题】:Spring project package problem that needs to be addressedSpring项目打包需要解决的问题
【发布时间】:2020-08-26 06:18:19
【问题描述】:

我已经尝试了在不同包中添加类的所有可能方法,例如包 com.packagename 中的应用程序类和名为 model 的不同包中的控制器,当我尝试执行程序时,它返回默认的白标错误以及何时我将这些类放在它成功运行的同一个包中。

所以我想问一下这个项目是否有任何问题,或者我需要给出任何路径。 在我也尝试过表示组件扫描的符号之前,除此之外的所有符号都没有派上用场

【问题讨论】:

  • 您的@SpringBootApplication 注释类必须在根包中,以避免额外配置需要扫描哪些包。 stackoverflow.com/questions/33619532/…
  • @MichaelKreutz 我只是好奇你能否详细说明一下根包。
  • 您可以将com.boltforever.moviecatalog 视为您的根包,您可以在其中放置@SpringBootApplication 带注释的类,然后创建子包servicemodelrepository,...相对于这个。因此,您必须将moviecatalogservices 重命名为moviecatalog,然后将modelresources 移入其中并在其中创建包service

标签: spring-mvc spring-boot-actuator


【解决方案1】:

假设你的主类(使用@SpringBootApplication注解)在包“com.somepackage”中,然后尝试将您的控制器放在“com.somepackage.controller”中(建议将其他类放在主类的子包)。有了这个改变,它应该可以工作了。

【讨论】:

  • 实际上我正在使用 spring initializr 来生成项目,我必须根据工件和 groupid 指定名称,以便默认生成,并且我正在尝试添加另一个包,但它未能做同样的事情,
【解决方案2】:

你把你的类放在错误的地方,你的包很乱。你应该有这样的结构

--src
    main
      java
        com.boltforever.moviecatalog
                                model
                                service
                                    MyService.java
                                controller
                                    MyController.java
                                MovieCatalogServiceApplication.java

这应该可以工作

【讨论】:

  • 感谢您在场景中付出的努力,但它没有做同样的事情,我为此目的使用 spring initializr 并导入相同的东西,因此它们是默认生成的,并且可以重构包名称但是同样的问题来了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多