首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时为Spring Boot应用程序配置基包扫描

在运行时为Spring Boot应用程序配置基包扫描
EN

Stack Overflow用户
提问于 2016-03-08 08:47:02
回答 2查看 11.5K关注 0票数 2

我在打包为war文件的Tomcat实例中运行Spring Boot应用程序。我希望能够以rest服务的形式将“包”添加到我的实例中。为此,我需要能够在运行时在@SpringBootApplication注释中配置scanBasePackages。即tomcat启动时。现在我有..。

代码语言:javascript
复制
@SpringBootApplication(scanBasePackages="path1, path2")
public class RestApplication extends SpringBootServletInitializer {
   //code
}

...but我希望path2是可配置的,如果需要的话,还可以添加path3等。我如何才能做到这一点?我知道我不能在注解中配置字符串,所以我的问题是,除了这个注解之外,我还有什么其他的方法来设置它。

干杯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-08 11:05:36

您可以尝试在您的项目中使用类似以下内容

代码语言:javascript
复制
@Configuration
@Profile("custom-profile")    
@ImportResource( {"file:path/additional-context.xml" } )  
public class ConfigClass { }  

然后在此文件中配置扫描的其他包。

代码语言:javascript
复制
<context:component-scan base-package="x.y.z.service, x.y.z.controller, x.y.z.dao" />

请注意,您的资源additional-context.xml声明为外部的,并且您可以在根本不重新构建war的情况下对其进行更改。

@ImportResource将在声明配置文件"custom- profile“为活动后进行处理。对于使用“默认配置”启动应用程序来说,这是一种安全方法,无需任何磁盘上的"additional-context.xml“文件。

票数 4
EN

Stack Overflow用户

发布于 2017-06-10 13:29:50

你有没有试过这个:

代码语言:javascript
复制
@SpringBootApplication(scanBasePackages={"path1", "path2"})

希望这能有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35856941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档