Spring boot整合mybatis
2018-02-01 17:09
253 查看
Spring boot整合mybatis项目在启动的时候,Dao层注入失败,错误信息如下所示:
解决方案我采用的是使用注解
Spring boot整合mybatis的时候需要做一些配置,同时要继承VFS
配置文件MybatisAutoConfiguration对SqlSessionFactoryBean进行了属性注入
SpringBootVFS继承VFS
*************************** APPLICATION FAILED TO START *************************** Description: A component required a bean of type 'com.person.job.admin.dao.XxlJobInfoDao' that could not be found. Action: Consider defining a bean of type 'com.person.job.admin.dao.XxlJobInfoDao' in your configuration.
解决方案我采用的是使用注解
@MapperScan("com.person.job.admin.dao")
Spring boot整合mybatis的时候需要做一些配置,同时要继承VFS
配置文件MybatisAutoConfiguration对SqlSessionFactoryBean进行了属性注入
@Configuration @MapperScan("com.fiberhome.job.admin.dao") public class MybatisAutoConfiguration { @Autowired private Environment env; @Bean public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws Exception { SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); factory.setDataSource(dataSource); factory.setVfs(SpringBootVFS.class); factory.setTypeAliasesSuperType(POJO.class); factory.setTypeAliasesPackage(env.getProperty("mybatis.type-aliases-package"));//指定entity包路径 factory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(env.getProperty("mybatis.mapper-locations")));//指定xml文件位置 return factory; } }
SpringBootVFS继承VFS
public class SpringBootVFS extends VFS { private final ResourcePatternResolver resourceResolver; public SpringBootVFS() { this.resourceResolver = new PathMatchingResourcePatternResolver(getClass().getClassLoader()); } @Override public boolean isValid() { return true; } @Override protected List<String> list(URL url, String path) throws IOException { Resource[] resources = resourceResolver.getResources("classpath*:" + path + "/**/*.class"); List<String> resourcePaths = new ArrayList<String>(); for (Resource resource : resources) { resourcePaths.add(preserveSubpackageName(resource.getURI(), path)); } return resourcePaths; } private static String preserveSubpackageName(final URI uri, final String rootPath) { final String uriStr = uri.toString(); final int start = uriStr.indexOf(rootPath); return uriStr.substring(start); } }
相关文章推荐
- spring boot 学习笔记(2) 整合mybatis
- SpringBoot(五):SpringBoot整合MyBatis
- SpringBoot整合MyBatis
- SpringBoot整合Mybatis(二)
- Spring Boot整合mybatis(一)实例代码
- SpringBoot整合mybatis freemarker
- spring boot 整合mybatis org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)
- 关于springboot 整合mybatis和servlet
- springboot整合mybatis
- Spring boot Mybatis 整合(注解版)
- SpringBoot+Mybatis(注解开发)整合实例
- Spring Boot整合MyBatis
- Springboot 整合 Mybatis 的完整 Web 案例
- SpringBoot非官方教程 | 第六篇:springboot整合mybatis
- springBoot(四)整合之MyBatis整合
- Spring Boot学习记录(三)--整合Mybatis
- SpringBoot整合Spring Security和Mybatis验证
- spring boot整合mybatis
- springboot+mybatis+springmvc整合实例
- 详解SpringBoot 快速整合MyBatis(去XML化)