Illegal overloaded getter method with ambiguous type for property enabled in class class XXXX (springboot整合spring Security映射冲突 )

这个问题的主要原因是对于登录的user 对象实现了

UserDetails

他的重载方法和原来user里的setter/getter方法重复,不符合JavaBean的规范,

JavaBean规范:

  • JavaBean是一个public 类(外部访问),
  • 具有无参构造函数(外部实例化调用),
  • 提供setXxx()和getXxx()方法,被外部程序实例使用。

符合规范的Java类,都可以称为JavaBean。

  1. setXxx()与getXxx()方法也被称为setter方法与getter方法,是针对JavaBean方法的一种命名方式,方法的名称为set+属性名和get+属性名构成,属性名是将JavaBean的属性名称首字母大写,
  2. JavaBean通过这种方法的命名 规范以及对类的访问权限和构造函数的要求使得外部程序能够通过反射机制来实例化javaBean和查找到这些方法从而调用这些方法来设置和获取JavBean对象的属性。
  3. 在javaBean中,对于属性的定义也不同于普通类中的属性定义,javaBean的属性是指setter和getter方法名中所包含的属性名,即使JavaBean类中没有定义此名称的实例变量,也可以成为JavaBean方法,即有方法就可以,这种定义方式扩展了属性的定义,融入了对javaBean所封装的业务功能状态的表示。

————————————————

对于Enabled属性来讲,不确定映射的属性的get方法。

解决办法:

只需要留一个get方法即可,这里因为我们必须使用重载的方法,所以把自己生成的get方法去掉就OK啦

原文地址:https://www.cnblogs.com/liruilong/p/12848507.html