SpringBoot不能批量加载mapperLocations!急!在线等!求大神指点啊!

@Configuration
public class MyBatisConfig {

@Autowired
private BasicDataSource basicDataSource;

@Bean
@ConditionalOnMissingBean //当容器里没有指定的Bean的情况下创建该对象
public SqlSessionFactoryBean sqlSessionFactory() throws IOException {
    SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
    // 设置数据源
    sqlSessionFactoryBean.setDataSource(basicDataSource);
    // 设置mybatis的主配置文件
    ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    Resource mybatisConfigXml = resolver.getResource("classpath:mybatis/SqlMapConfig.xml");
    sqlSessionFactoryBean.setConfigLocation(mybatisConfigXml);
    // 设置别名包
    sqlSessionFactoryBean.setTypeAliasesPackage("com.zeunpro.robot.approbot.pojo");



            //就是这句代码,只能指定单个mapper.xml文件,加通配符的话找不到文件
            sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mappers/AdminUserMapper.xml"));


    return sqlSessionFactoryBean;
}

}


或者用这个:

  sessionFactory.setMapperLocations(new Resource[]{resource1, resource2});

你用@InputResource这个注解不行吗,还有在web项目中最后会打成包的,你这样获取resource我是不建议的,一般都是这样获取Thread.currentThread().getContextClassLoader().getResourceAsStream("mappers/AdminUserMapper.xml")

另外一个就是application.properties配置文件没有效果,里面编写东西没有反应,懵逼中!

@ImportResource注解没用,Thread.currentThread().getContextClassLoader().getResourceAsStream("mappers/AdminUserMapper.xml")这种的话,
我有多个怎么弄

是可以那样写的,你参考一下:


sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:mappers/*-Mapper.xml"));

 public void setMapperLocations (Resource[] mapperLocations)

Set locations of MyBatis mapper files that are going to be merged into the SqlSessionFactory configuration at runtime. This is an alternative to specifying "<sqlmapper>" entries in an MyBatis config file. This property being based on Spring's resource abstraction also allows for specifying resource patterns here: e.g. "classpath*:sqlmap/*-mapper.xml".


sessionFactory.setMapperLocations(new Resource[]{resource1, resource2});

         // 只能加载单个文件
        //sessionFactory.setMapperLocations(new Resource[]{new ClassPathResource(mapperLocation)});

        PathMatchingResourcePatternResolver pathMatchResolver = new PathMatchingResourcePatternResolver();

        // 通过通配符获取多个mapper.xml
        sessionFactory.setMapperLocations(pathMatchResolver.getResources(mapperLocation));

Resource mybatisConfigXml = resolver.getResource("classpath:mybatis/SqlMapConfig.xml");
改成
Resource[] mybatisConfigXmls = resolver.getResources("classpath:mybatis/*.xml");

resolver.getResource是获取单个资源
resolver.getResources是获取多个资源