SpringBoot War文件-scanBasePackages无法用于jar文件中的bean

时间:2018-08-23 13:51:55

标签: spring-boot

我们有一个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吗?

0 个答案:

没有答案