标签:包中 mapper 配置文件 jar classpath bean locationPattern new sqlmap
采用spring boot 开发了一个多模块项目,有多个模块中都有mapper配置文件。
采用如下的方式配置,制度去到了一个模块jar包中配置文件:
@Bean(name = "sqlSessionFactory") public SqlSessionFactory sqlSessionFactoryBean() { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setTypeAliasesPackage("tk.mybatis.springboot.model"); MybatisInterceptor interceptor = new MybatisInterceptor(); bean.setPlugins(new Interceptor[]{interceptor}); //添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { //\com\tritrust\t\core\dict\sqlmap //\com\tritrust\t\system\sqlmap bean.setMapperLocations(resolver.getResources("classpath:com/tritrust/t/**/sqlmap/*.xml")); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } }
需要读取多个jar里面的配置需要修改配置路径为:
bean.setMapperLocations(resolver.getResources("classpath*:com/tritrust/t/**/sqlmap/*.xml"));
classpath*:就可以读取多个jar里面文件了。
查看spring core 中org.springframework.core.io.support.PathMatchingResourcePatternResolver类有如下代码:
public Resource[] getResources(String locationPattern) throws IOException { Assert.notNull(locationPattern, "Location pattern must not be null"); if (locationPattern.startsWith("classpath*:")) { return this.getPathMatcher().isPattern(locationPattern.substring("classpath*:".length())) ? this.findPathMatchingResources(locationPattern) : this.findAllClassPathResources(locationPattern.substring("classpath*:".length())); } else { int prefixEnd = locationPattern.startsWith("war:") ? locationPattern.indexOf("*/") + 1 : locationPattern.indexOf(58) + 1; return this.getPathMatcher().isPattern(locationPattern.substring(prefixEnd)) ? this.findPathMatchingResources(locationPattern) : new Resource[]{this.getResourceLoader().getResource(locationPattern)}; } }
标签:包中,mapper,配置文件,jar,classpath,bean,locationPattern,new,sqlmap 来源: https://www.cnblogs.com/sandyyeh/p/10335116.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。