【发布时间】:2015-10-10 09:55:27
【问题描述】:
我正在尝试创建一个包含两个模块、核心和 Web 的多模块项目。它们都是我在 Spring Initialzer 上生成的 Spring Boot 项目。我设置了 Maven POM 文件,但在部署它时遇到了问题。但是我很困惑配置是如何工作的。
核心模块将包含域对象/实体、Spring Data JPA 存储库、服务,并将被打包为 JAR。 Web 模块将包含 Spring Security、控制器和视图。它将被打包为 WAR。
Spring Boot 项目的正常结构如下所示
/
pom.xml
src/
..main/
....com/
......example/
........app/
..........Application.java
..resources/
....application.properites
我基本上有两个这样的和两个 Spring Boot 应用程序/配置/初始化类。
我的问题是
属性是否必须存在于单个配置文件中,或者我可以有两个 application.properities,一个是核心 jar,一个用于 WAR?
-
我的 core.jar 中可以包含以下内容吗
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class TimesheetCoreApplication { public static void main(String[] args) { SpringApplication.run(TimesheetCoreApplication.class, args); } }
连同以下两个在我的 web.war 中
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TimesheetWebApplication {
public static void main(String[] args) {
SpringApplication.run(TimesheetWebApplication.class, args);
}
}
与
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(TimesheetWebApplication.class);
}
}
- 由于 Spring Boot 做了很多自动配置,它们是否会在配置上相互交叉,或者相互冲突或覆盖?
解决此问题的最佳方法是什么?如果可能,我想利用 Spring Boot。
【问题讨论】:
-
您的核心应用程序将什么也不做,因为它只是另一个 jar,就像 Web 项目中包含的任何其他 jar 一样。所以只有你的 web jar 会做一些事情,你真的确定你希望你的核心应用程序是一个 spring boot 应用程序而不仅仅是 web 吗?如果它不是一个独立的应用程序并且只用于嵌入,那有什么意义呢。
标签: java spring maven spring-boot