我在打包为war文件的Tomcat实例中运行Spring Boot应用程序。我希望能够以rest服务的形式将“包”添加到我的实例中。为此,我需要能够在运行时在@SpringBootApplication注释中配置scanBasePackages。即tomcat启动时。现在我有..。
@SpringBootApplication(scanBasePackages="path1, path2")
public class RestApplication extends SpringBootServletInitializer {
//code
}...but我希望path2是可配置的,如果需要的话,还可以添加path3等。我如何才能做到这一点?我知道我不能在注解中配置字符串,所以我的问题是,除了这个注解之外,我还有什么其他的方法来设置它。
干杯。
发布于 2016-03-08 11:05:36
您可以尝试在您的项目中使用类似以下内容
@Configuration
@Profile("custom-profile")
@ImportResource( {"file:path/additional-context.xml" } )
public class ConfigClass { } 然后在此文件中配置扫描的其他包。
<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“文件。
发布于 2017-06-10 13:29:50
你有没有试过这个:
@SpringBootApplication(scanBasePackages={"path1", "path2"})希望这能有所帮助:)
https://stackoverflow.com/questions/35856941
复制相似问题