Spring boot SpringBoot war文件-scanBasePackages不适用于jar文件中的bean
我们有一个SpringBoot应用程序,它作为war文件部署。在主ApplicationClass中,我们有scanBasePackages,其路径表达式与ApplicationClass的包不同Spring boot SpringBoot war文件-scanBasePackages不适用于jar文件中的bean,spring-boot,Spring Boot,我们有一个SpringBoot应用程序,它作为war文件部署。在主ApplicationClass中,我们有scanBasePackages,其路径表达式与ApplicationClass的包不同 @SpringBootApplication(scanBasePackages= { "com.test.cmn" }) @EnableCaching public class Application extends SpringBootServletInitializer{ public
@SpringBootApplication(scanBasePackages= { "com.test.cmn" })
@EnableCaching
public class Application extends SpringBootServletInitializer{
public static void main( String[] args ){
SpringApplication.run( Application.class, args );
}
/**
* @see org.springframework.boot.web.support.SpringBootServletInitializer#onStartup(javax.servlet.ServletContext)
* @param servletContext
* @throws ServletException
*/
@Override
public void onStartup( ServletContext servletContext ) throws ServletException{
//WebEnviromentConfiguration.setActiveProfile(servletContext);
servletContext.setInitParameter( "spring.profiles.active", "dev" );
super.onStartup( servletContext );
}
@Override
protected SpringApplicationBuilder configure( SpringApplicationBuilder builder ){
return builder.sources( Application.class );
}
}
对WEB-INF/classes文件夹中的bean进行基本包扫描。但是没有检测到jar文件中的bean。但是我们能够在应用程序类路径中看到这些bean(通过显式加载类)
我们还需要做些什么来自动检测这些bean吗?看看这个答案,但第二个答案告诉我们如何将这些bean作为子包包含在主应用程序中。但由于项目结构的原因,我们很难做到这一点。它扫描的包不是jar的一部分,也不是子包。