springboot框架下,需要直接访问resources目录下的html,也要访问数据库(mybaits)时,框架的配置。

启动类中需要填写

@MapperScan(basePackages = "mybatis接口的包路径") //com.*.dao
@EnableWebMvc //选填,如果直接在启动类中加入此注解,则无法直接访问resources下static的html静态页面(如果在pom中没有声明配置)。  如果不添加此注解,可以直接访问
resources下static的html静态页面,但是会出现找不到绑定接口的异常。例:Invalid bound statement (not found)。


解决方案:
  1.在pom文件中加入
    
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
<!--<include>**/*.html</include>
<include>**/*.css</include>
<include>**/*.jpg</include>
<include>**/*.png</include>
<include>**/*.js</include>
<include>**/*.properties</include>-->
</includes>
</resource>
</resources>
</build>
加入此配置之后 mybatis的xml(SQL XML)可以写在 src/mian 目录下。 如果不加则mybatis的xml需要写在resources下。



2.
  在src/main目录下创建一个ValidationConfig类(类名自己随意),写法如下

  

@Configuration
@EnableWebMvc
public class ValidationConfig implements WebMvcConfigurer {

/**
* 配置静态页面请求处理
*/
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix(null);
viewResolver.setSuffix(null);

registry.viewResolver(viewResolver);
registry.order(1);
}

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

这样@EnableWebMvc这个注解就不需要写在启动类那里了,因为这里写了。

这样写 mybatis的xml(SQL)需要写在resources目录下,但是可以直接访问resource下的静态页面,也可以让mybatis找到接口绑定,不去报 Invalid bound statement (not found)。

  

原文地址:https://www.cnblogs.com/llja/p/10600431.html