1、Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)

这是编译后找不到静态资源的问题,会出现各种情况,包括无法访问xx.html页面、只有页面没有css效果等。都是某一些静态资源没有被编译到target中,下图每个部分都有可能出现没有被加载到target的情况出现,比较经常碰到的是箭头所示的templates中xx.html、static中css、js等:

template 不识别 foreach_前端框架

网上几个比较典型的解决办法有:

a、在application.properties中配置如下(或配置更多内容):

template 不识别 foreach_spring_02

 b、在pom.xml中配置resources位置:

template 不识别 foreach_前端框架_03

该方法似乎重新指定了资源文件的位置,实际在springboot配置中已经指定了编译资源位置:

template 不识别 foreach_spring boot_04

  

c、在application.yml中配置static静态资源模板(位置)

template 不识别 foreach_静态资源_05

 d、还有诸多许多其他方法。但对本工程都无效。

最后找到一个有效解决方法:

编写一个配置类,如:WebConfig

@Configurationpublic class WebMVCConfig implements WebMvcConfigurer {

    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
            "classpath:/META-INF/resources/", "classpath:/resources/",
            "classpath:/static/", "classpath:/public/" };


    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);

    }
}

再重新编译,target中所有资源都有存在,完美解决。

注:以上提到的其他方法仅对本项目无效,并不指无用。

===============================2022.03.31==================================

2、Error creating bean with name 'sqlSessionFactory' defined in class path.........

在springboot项目结构连接数据库时,用了mybatis,注入时一直提示错误,在调试时发现托管给spring的mapper实例和serviceImpl实例一直为null,报空指针异常,在测试环境中也是如此:

template 不识别 foreach_静态资源_06

 而启动整个springboot项目会报Error creating bean with name 'xxxxxx' defined in class path.........

(xxxxxx会迭代cause by,出现多个),也就是无法创建某个bean。

后经排错,是vo层(也叫po、pojo等)创建了一个类Collection与java.util.Collection冲突导致,将该类改名项目正常运行。而至于为何这个错误会导致bean无法生成,还不清楚。。

总结:起类名、文件名一定要注意避开一些可能已经被Java使用的词。

还有一个小点:spring项目中测试环境要使用项目下的资源需要使用@RunWith注解,否则项目就算正常运行但测试环境依然可能报空:

template 不识别 foreach_spring boot_07

后经验证,不仅是名称冲突会导致创建bean失败,许多其他原因也会导致这个错误的出现,例如:

xxx.xml中的namespace错误也会导致无法创建bean(假设红框中几个字母没写):

template 不识别 foreach_spring_08

 

 

================================2022.04.07=================================