基于java注解配置 mybatis的时候,mapper无法注入spring容器,怎么解决?

配置代码如下:

 @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        logger.info("SqlSession配置....");
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(basicDataSource());
        factoryBean.setMapperLocations(context.getResources("classpath*:config/mappers/*.xml"));
//      factoryBean.setTypeAliasesPackage("com.hengqinlife.EcPlatform.dao.modules.**.entity");
//      Interceptor[] plugins = new Interceptor[10];
//      PageHelper page = new PageHelper();
//      Properties properties = new Properties();
//      properties.setProperty("dialect", "mysql");
//      page.setProperties(properties);
//      plugins[0] = page;
//      factoryBean.setPlugins(plugins);
        return factoryBean.getObject();
    }

    @Bean
    public static MapperScannerConfigurer getMapperScannerConfigurer(){
        MapperScannerConfigurer config = new MapperScannerConfigurer();
        config.setBasePackage("com.hengqinlife.EcPlatform.dao.modules.**.mapper");
        config.setSqlSessionFactoryBeanName("sqlSessionFactory");
        return config;
    }

图片说明

static方法不能注入

不能把bean写成静态方法吧。

反而用下面这种单个配置mapper他又能注入


    @Bean
    public GeUserPersonalMapper geUserPersonalMapper(){
        MapperFactoryBean<GeUserPersonalMapper> bean = new MapperFactoryBean<GeUserPersonalMapper>();
        bean.setMapperInterface(GeUserPersonalMapper.class);
        bean.setSqlSessionFactory(context.getBean(SqlSessionFactory.class));
        try {
            return bean.getObject();
        } catch (Exception e) {
            return null;
        }
    }

通配符 * 和 * 之间不是有个点 . 吗;
如果通配符的注入仍然不成功,试试一个个列举出来(写mapper的全路径);