Spring boot整合mybatis
2018-02-01 17:09
337 查看
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 整合MyBatis
- Spring Boot整合Mybatis
- springBoot整合Mybatis
- SpringBoot开发详解(七)-- Mybatis整合Spring Boot
- springboot 整合 Mybatis (纯配置文件)
- Springboot整合mybatis将sql打印到日志
- SpringBoot整合Mybatis
- Spring boot 整合 mybatis + druid
- spring boot整合mybatis利用Mysql实现主键UUID的方法
- SpringBoot整合Druid连接池搭配Mybatis
- Springboot整合dubbo构建maven多模块项目(四) - 集成mybatis
- Spring-Boot快速整合Mybatis
- SpringBoot整合MyBatis
- Spring boot---整合mybatis (oracle)
- spring Boot 整合mybatis 如何使用多数据源
- Spring Boot 构建应用——整合 Mybatis
- SpringBoot整合Mybatis完成增删改查功能
- spring-boot与mybatis整合优化介绍
- SpringBoot + Mybatis plus 实现多数据源整合
- springboot整合Mybatis