我们有一个SpringBoot应用程序,它被部署为war文件。在主ApplicationClass中,我们具有scanBasePackages,其路径表达式与ApplicationClass的包不同。
@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吗?