Skip to content

mapperLocations is overwritten #787

Closed
@toshawn

Description

@toshawn
@Bean
public SqlSessionFactoryBeanCustomizer sqlSessionFactoryBeanCustomizer1(){
    return factoryBean -> {
        try {
            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
            Resource[] resources = resolver.getResources("classpath:mapper1/*.xml");
            factoryBean.setMapperLocations(resources);
        } catch (IOException e) {
            e.printStackTrace();
        }
    };
}
@Bean
    public SqlSessionFactoryBeanCustomizer sqlSessionFactoryBeanCustomizer2(){
        return factoryBean -> {
            try {
                ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
                Resource[] resources = resolver.getResources("classpath:mapper2/*.xml");
                factoryBean.setMapperLocations(resources);
            } catch (IOException e) {
                e.printStackTrace();
            }
        };
    }

If I assign values to the mapperLocations property of SqlSessionFactoryBean multiple times, the overwrite problem will occur because:

 public void setMapperLocations(Resource... mapperLocations) {
    this.mapperLocations = mapperLocations;
  }

The setMapperLocations method directly assigns parameters to member properties instead of merging

Metadata

Metadata

Assignees

Labels

enhancementImprove a feature or add a new feature

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions