我很难确定是否需要使用 org.springframework.boot 依赖项,或使用 org.springframework 依赖项和非spring依赖项,而不是在非弹簧启动应用程序模块(如共享库)中。
目前我有3个项目:
parent/
|-- client
| |-- pom.xml
| |-- src
|-- domain
| |-- pom.xml
| |-- src
|-- server
| |-- pom.xml
| |-- src
|-- pom.xml
我的服务器是一个Spring Boot应用程序,用于提供网页,并用作RESTless API(使用两种不同的HttpSecurity配置)。
我的客户端是一个Spring Boot CommandLineRunner应用程序,它使用服务器的 API服务。
我创建了域模块,以便客户端和服务器都可以访问相同版本的JPA实体。
我无法弄清楚何时使用 org.springframework.boot 依赖关系,以及何时使用 org.springframework 和非spring < / strong>依赖。
例如,在我的域模块中。我需要一些我通常通过“org.springframework.boot :: spring-boot-starter-jpa”和“org.springframework.boot :: spring-boot-starter-security”获得的依赖项。但由于域模块不是Spring启动应用程序。我应该使用非spring-boot:“org.spring.framework.security::spring-security-core”依赖项和非spring依赖项“javax.persistence :: persistence-api”代替吗?
最佳做法是什么?何时使用springframework.boot依赖项以及何时使用springframework和非spring依赖项?尽可能地靠近Spring。
答案 0 :(得分:0)
如果需要,请使用springframework.boot依赖项,如果不需要,请不要使用它们。就那么简单。共享库通常不需要它们,但它可以。
请注意,虽然像其他人一样说你的maven pom parent并没有真正告诉你实际使用的是哪个依赖关系,所以上面的段落没有说明这一点。建议使用相同的父[与使用您的模块的应用程序],因为它使依赖版本保持同步,无论是启动还是非启动。你说“使用spring-boot-starter-web,一个tomcat webserver启动”,但是如果你有一个启动应用程序类并且使用spring-boot插件,那就是真的,对于共享库,你不会有或者做。
总结一下,如果可以的话,请使用与您的图书馆相同的应用程序。