Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot SpringBoot war文件-scanBasePackages不适用于jar文件中的bean_Spring Boot - Fatal编程技术网

Spring boot SpringBoot war文件-scanBasePackages不适用于jar文件中的bean

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

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

看看这个答案,但第二个答案告诉我们如何将这些bean作为子包包含在主应用程序中。但由于项目结构的原因,我们很难做到这一点。它扫描的包不是jar的一部分,也不是子包。