我创建了一个带有父上下文(服务)和子上下文(spring-webmvc控制器)的spring启动应用程序:
@Configuration
public class MainApiApplication {
public static void main(String[] args) {
new SpringApplicationBuilder()
.parent(Services.class)
.child(ApiOne.class, MainApiApplication.class)
.run(args);
}
@Bean
public EmbeddedServletContainerFactory servletContainer() {
return new TomcatEmbeddedServletContainerFactory();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想为我的ApiTwo.class配置添加另一个客户端上下文(和DispatcherServlet).我想我必须做两件事:
什么是弹簧靴方式呢?
我有一个使用Spring Boot生成可执行JAR的项目,该JAR使用Spring Data REST公开REST API.它还与Spring Security OAuth集成.这很好.我的问题如下,
我希望只有当具有JPA存储库的对应JAR位于类路径中(它已被定义为依赖项)时,我才想要启用REST API的不同模块.
问题是我希望他们彼此独立.我希望能够在具有不同映射的不同调度程序servlet下为它们提供服务,因此我可以为每个映射指定不同的baseUri,并为资源发现提供不同的根URL.
我会试着让它更清楚:
API模块A:
API模块B:
更多模块......
除此之外,我可以拥有另一个调度程序servlet,我将/ oauth/*端点与其他自定义控制器一起保存,并且安全配置必须适用于所有(/*)
我知道我可以通过ServletRegistrationBean定义更多的调度程序servlet,但我不知道如何附加到每个不同的弹簧数据休息配置.
我也一直在尝试使用SpringApplicationBuilder的分层应用程序上下文,在每个子上下文中包含定义每个调度程序servlet的配置,每个RepositoryRestMvcConfiguration并使每个@EnableJpaRepositories注释定义要扫描的不同包.无论如何我甚至无法加载上下文,因为它们没有被创建为WebApplicationContext因此失败,因为没有可用的ServletContext.
任何帮助/建议?提前致谢.