да. Ты можешь сделать это. Я не уверен, как вы делитесь бобами, но полагаю, вы тоже можете это сделать.
SpringApplicationBuilder
Поскольку приложение «UserManagement» является зависимостью, я предполагаю, что вы вызываете метод для его запуска из родительского приложения
Например, вы, вероятно, что-то делаете нравится:
public class UserManagementApplication {
private static UserManagementApplication instance = null;
private final SpringApplicationBuilder springApplicationBuilder;
private ConfigurableApplicationContext context;
private UserManagementApplication() {
this.springApplicationBuilder = new SpringApplicationBuilder(UserManagementApplication.class);
}
public static void start() {
synchronized (UserManagementApplication.class) {
if (instance == null) {
/*
******** If singleton instance is null ***************************************
******** Create a new UserManagementApplication ******************************
*/
instance = new UserManagementApplication();
}
if (instance.context == null
|| !instance.context.isActive()) {
/*
******** If the context is null or not active ********************************
******** Create new SpringApplication and run it ****************************
******** Store the resulting ConfigurableApplicationContext in memory ********
*/
instance.context = instance.springApplicationBuilder.run(new String[]{});
}
}
}
public static void stop() {
synchronized (UserManagementApplication.class) {
if (instance == null
|| instance.context == null
|| !instance.context.isActive()) return;
/*
******** If the context is active ********************************************
******** Close the context **************************************************
******** Set context back to null ********************************************
*/
instance.context.close();
instance.context = null;
}
}
public static ConfigurableApplicationContext getContext() {
if (instance == null) return null;
return instance.context;
}
}
UserManagement gradle.build и местоположения
- Поскольку вам не нужно запускать приложение «UserManagement» как исполняемый файл jar, вы можете отказаться от плагина spring -boot и создать свой собственный jar.
- Since your are using tomcat you can put templates and static
resources in META and templates in WEB-INF.
- Resources => src/main/resources/META-INF/resources/static/
- Шаблоны => src / main / resources / WEB-INF / templates /
Например, ваша сборка gradle может выглядеть примерно так:
buildscript {
ext {
springBootVersion = '2.0.0.M7'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath 'io.spring.gradle:propdeps-plugin:0.0.9.RELEASE'
classpath 'org.springframework:springloaded:1.2.6.RELEASE'
}
}
ext {
springBootVersion = '2.0.0.M7'
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'groovy'
// apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'propdeps'
apply plugin: 'propdeps-idea'
group = 'com.example.userManagement'
sourceCompatibility = 1.8
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
configurations {
includeInJar
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-groovy-templates')
compile('org.codehaus.groovy:groovy')
includeInJar("org.webjars:bootstrap:4.0.0")
includeInJar("org.webjars:jquery:3.3.1")
configurations.compile.extendsFrom(configurations.includeInJar)
}
idea {
module {
inheritOutputDirs = true
}
}
jar {
from configurations.includeInJar.collect { it.isDirectory() ? it : zipTree(it) }
}
compileJava.dependsOn(processResources)
Конфигурация MVC
Также убедитесь, что ваша конфигурация MVC знает, где находятся ресурсы.
Например, если вы расширяете WebMvcConfigurerAdapter:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/static/**").addResourceLocations("classpath:META-INF/resources/static/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:META-INF/resources/webjars/");
registry.addResourceHandler("/**").addResourceLocations("classpath:META-INF/");
}
Шаблоны MVC
Если у вас есть файл my-bundle.min.js в src / main / resources / META-INF / resources / static / js, вы можете его найти из вашего шаблона mvc следующим образом:
<script src="/resources/static/js/my-bundle.min.js"></script>
Надеюсь, это поможет!
person
thesb
schedule
17.03.2018