结论:
set方法不能被static修饰、不能被private修饰、不能被protect修饰,不能被abstract修饰,不能是Object和Class
理论依据:
1、springboot源码 JavaBeanBinder 文件下的 isCandidate方法
2、static 修饰获取不到值的原因
- 在Spring框架中,@Value注解用于注入配置文件中的属性值到JavaBean中。但是,如果set方法被static修饰,那么这个方法就变成了类的方法,而不是对象的方法。Spring的依赖注入机制是通过反射来调用对象的setter方法,而不是类的方法。因此,当一个类的set方法被static修饰时,Spring无法通过反射找到对应的setter方法来注入值,从而导致无法获取到值。
- 在非spring环境下,静态方法是属于类的,而不是属于任何特定的对象实例。当你尝试通过对象来调用一个静态方法时,实际上你是在直接调用类的方法,而不是通过对象实例来调用。这违反了面向对象编程的基本原则,即一切对象都应该通过其实例来进行操作。
问题描述
通过get方法获取的属性值一致为null
解决方案
去掉static修饰词