zdal配置文件_Spring混合配置时,遇到配置文件路径NotFound,使用PathMatchingResourcePatternResolver解决...

在将spring的xml配置改为java配置的过程中,遇到了一些问题,block时间比较长的一个问题是资源(.xml, .properties)的路径找不到,最后是使用PathMatchingResourcePatternResolver解决的。

背景:Spring+MyBatis

入口:

@Configuration

@Import({

DalConfig.classXXDBConfig.class})

@ImportResource(locations= {"classpath*:spring/applicationContext.xml", "classpath*:spring-dao/applicationContext.xml"})public classConfig {

@BeanpublicPathMatchingResourcePatternResolver pathMatchingResourcePatternResolver(){return newPathMatchingResourcePatternResolver();

}

}

DalConfig

@Configurationpublic classDalConfig {

@BeanpublicDalDataSourceFactory xxDalDataSource() {return newDalDataSourceFactory();

}

@BeanpublicPropertyPlaceholderConfigurer configBean(

PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver)throwsIOException {

List resources = new ArrayList<>();

resources.addAll(Arrays.asList(pathMatchingResourcePatternResolver.getResources("classpath*:config.properties")));

resources.addAll(Arrays.asList(pathMatchingResourcePatternResolver.getResources("classpath*:/META-INF/app.properties")));

PropertyPlaceholderConfigurer propertyPlaceholderConfigurer= newPropertyPlaceholderConfigurer();

propertyPlaceholderConfigurer.setLocations(resources.toArray(newResource[resources.size()]));

propertyPlaceholderConfigurer.setIgnoreUnresolvablePlaceholders(true);returnpropertyPlaceholderConfigurer;

}

}

XXDBConfig

@Configurationpublic classXXDBConfig {

@BeanpublicDataSource dataSourceXXXDB(

@Value("${DBDataCenter}") String dbDataCenter,

@Value("${CFX_DataSource_ServiceUrl}") String cfxDataSourceServiceUrl,

@Value("${app.id}") String appId,

DalDataSourceFactory xxxDalDataSource)throwsException {returnxxxxDalDataSource.createDataSource("xxx" +dbDataCenter,

cfxDataSourceServiceUrl,

appId);

}

@BeanpublicSqlSessionFactoryBean sqlSessionFactoryXXXDB(

DataSource dataSourceXXXDB,

PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver)throwsIOException {

SqlSessionFactoryBean sqlSessionFactoryBean= newSqlSessionFactoryBean();

sqlSessionFactoryBean.setDataSource(dataSourceXXXDB);

sqlSessionFactoryBean.setMapperLocations(

pathMatchingResourcePatternResolver.getResources("classpath:com/xx/xxxdb/mapper/**/*.xml") //**表示迭代查找

);returnsqlSessionFactoryBean;

}

@BeanpublicMapperScannerConfigurer mapperScannerConfigurerXXXDB() {

MapperScannerConfigurer mapperScannerConfigurer= newMapperScannerConfigurer();returnmapperScannerConfigurer;

}

}

Test

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes=Config.class)public classDBConfigTest {

@AutowiredprivateApplicationContext ctx;

@AutowiredprivateEnvironment env;

@Testpublic voidcheckXXXDB(){

MapperScannerConfigurer mapperScannerConfigurerXXXDB= (MapperScannerConfigurer)ctx.getBean("mapperScannerConfigurerXXXDB");

assertNotNull(mapperScannerConfigurerXXXDB);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值