0

我很难确定是否需要在非弹簧启动应用程序模块(如共享库)中使用org.springframework.boot依赖项,或者使用org.springframework依赖项和非弹簧依赖项。

目前我有3个项目:

parent/
|-- client
|   |-- pom.xml
|   |-- src
|-- domain
|   |-- pom.xml
|   |-- src
|-- server
|   |-- pom.xml
|   |-- src
|-- pom.xml

我的服务器是一个 Spring Boot 应用程序,用于提供网页服务,并用作 RESTless API(通过使用两个不同的 HttpSecurity 配置)。

我的客户端是一个使用服务器API 服务的 Spring Boot CommandLineRunner 应用程序。

我创建了模块,以便客户端服务器都可以访问相同版本的 JPA 实体。


我不知道什么时候使用org.springframework.boot依赖,什么时候使用org.springframework非spring依赖。

例如,在我的域模块中。我需要一些通常通过“org.springframework.boot::spring-boot-starter-jpa”和“org.springframework.boot::spring-boot-starter-security”获得的依赖项。但由于域模块不是 Spring Boot 应用程序。我应该使用非spring-boot:“org.spring.framework.security::spring-security-core”依赖和非spring依赖“javax.persistence::persistence-api”吗?

最佳做法是什么?什么时候使用springframework.boot依赖,什么时候使用springframework和非spring依赖?同时尽可能靠近春天。

4

1 回答 1

0

如果需要,请使用 springframework.boot 依赖项,如果不需要,请不要使用它们。就那么简单。共享库通常不需要它们,但它可以。

请注意,尽管就像其他人所说的那样,您的 maven pom 父级并没有真正说明您实际使用了哪些依赖项,所以上面的段落并没有说明这一点。建议使用相同的父级 [与使用您的模块的应用程序一样],因为它可以使依赖项版本保持同步,无论是启动还是非启动。您是说“使用 spring-boot-starter-web,一个 tomcat 网络服务器启动”,但只有当您有一个引导应用程序类并使用 spring-boot 插件时才是正确的,对于共享库,您不会有或做。

总而言之,如果可以的话,请使用与打算使用您的库的应用程序相同的父级。

于 2017-01-17T07:33:39.810 回答