Cwh_971111 2021-07-09 10:19 采纳率: 100%
浏览 229
已采纳

一个@configuration 继承另外一个@configuration 导致bean 重复注册

我基础模块有 securityConfig

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

   ......

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
    ......

然后管理模块我定义mallSecurityConfig 继承 securityConfig

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MallSecurityConfig extends SecurityConfig {

    @Autowired
    private UmsAdminService adminService;
    @Autowired
    private UmsResourceService resourceService;

    @Bean
    public UserDetailsService userDetailsService() {
        //获取登录用户信息
        return username -> adminService.loadUserByUsername(username);
    }

    @Bean
    public DynamicSecurityService dynamicSecurityService() {
        return new DynamicSecurityService() {
            @Override
            public Map<String, ConfigAttribute> loadDataSource() {
                Map<String, ConfigAttribute> map = new ConcurrentHashMap<>();
                List<UmsResource> resourceList = resourceService.listAll();
                for (UmsResource resource : resourceList) {
                    map.put(resource.getUrl(), new org.springframework.security.access.SecurityConfig(resource.getId() + ":" + resource.getName()));
                }
                return map;
            }
        };
    }
}

然后提示我说passwordEncoder这个bean已经被注册了,我查了下说是两个都加了@configuration的话,继承会导致父类的bean被重复注册,这个我能理解了

但是我另外写的功能也是同样两个@configuration,几乎一样的写法,没有提示报错,这是为啥呀

  • 写回答

4条回答 默认 最新

  • a1767028198 2021-07-09 10:40
    关注

    img

    img

    我启动直接GG,spring默认beanname冲突的话,启动报错,有配置可以设置覆盖,从而启动不报错
    我不知道你所谓的能启动,是你做了什么,很有可能就是楼上说的,父类就没扫描到,或者就是做了beanName相同覆盖的设置

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 7月9日
  • 创建了问题 7月9日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助