spring注入静态成员变量提示invalid setter method

果然还是不够细心啊,被坑一晚上..

一个极其简单的小程序,但是需要通过xml文件配置注入一个值,唯一的特别是要注入的属性是类中的静态成员变量..

如下,然后自动生成get和set方法..坑就从此开始了...

public class Food{
   private static String  desc;

   public static String getDesc(){
       return desc;
  }

  public static void setDesc(String desc){
      Food.desc = desc;
  }
}

然后xml中如下配置:

 <bean id="food" class="xxxk.Food" >
        <property name="desc" value="食物" />
</bean>

然后启动就会报找不到set方法的错误...反复对比set方法的名字,无任何异常..然后一晚上就这样报废了...

最后发现自动生成的方法会带static修饰符,而spring的set方法不能是static的,跟一下源码能发现,虽然各种值和名字都能获取到,但是其中有一个resolvedDescriptor获取不到.

去掉set方法前面的static修饰符即可..

时间: 2024-08-04 06:49:02

spring注入静态成员变量提示invalid setter method的相关文章

spring注入静态成员变量

工作中遇到的问题,在工具类里面需要给静态成员变量注入值,而静态成员变量是在类加载的时候加载的,所以一直报空指针. 在网上找了几种方法,记录一下. 第一种:使用set函数注入. 1 @Component 2 public class LogUtil { 3 4 private static PayLogDao logDao ; 5 @Autowired 6 public void setLogDao(PayLogDao logDao){ 7 LogUtil.logDao = logDao; 8 }

使用spring注入时出现is not writable or has an invalid setter method

在web-application-config.xml中定义 <bean id="employeeServiceDest" class="com.service.EmployeeServiceImpl">      <flex:remoting-destination />    <property name="EsysDao" ref="EsysDao"/> </bean> 结

使用spring注入时出现 XXX is not writable or has an invalid setter method

在applicationContext-redis.xml中定义 <bean id="jedisClientPool" class="cn.e3mall.common.jedis.JedisClientPool"> <property name="jedisPool" ref="jedisPool"></property> </bean> <bean id="je

Bean property &#39;esyerDao&#39; is not writable or has an invalid setter method. Does the parameter type of

今天调试程序的时候偶然出现了 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeServiceDest' defined in ServletContext resource [/WEB-INF/web-application-config.xml]: Error setting property values; nested exception is o

is not writable or has an invalid setter method错误的解决

java中在配置spring时,遇到is not writable or has an invalid setter method的错误一般是命名方式的问题 需要写成private userInfoDao userinfoDao;(这里前面是小写,后面是大写) 在get和set方法中,需要写成这样get 或set之后只能有两个字母大写 private userInfoDao userinfoDao; public userInfoDao getUserinfoDao(){ return user

错误信息:Bean property &#39;sessionFactory&#39; is not writable or has an invalid setter method.(Springmvc)

是在建立class的时候对应的set方法和spring配置文件的不一样 public class GoodsService implements IGoodsService{private IGoodDAO goodsDao; public void setGoodsDao(IGoodDAO goodsDao) { this.goodsDao = goodsDao;} } public class GoodDAO implements IGoodDAO{private SessionFactor

Bean property &#39;xxx&#39; is not writable or has an invalid setter method

出现此问题的原因是在ApplicationContext.xml中配置有问题,里面的bean的属性名称用 与 注入的类名称不一致 applicationContext.xml <bean id="testdao" class="com.tre.daoImpl.UserDaoImpl"> </bean> <bean id="testservice" class="com.tre.serviceImpl.Use

Spring 注入static变量

一般我们我想注入一个static的变量,如下: @Autowired    private static String str; 不过,这样最终结果为null. 1.使用配置文件的方式注入 private static String from; public static String getFrom() { return from; } public static void setFrom(String from) { TestStatic.from = from; } <bean class

【Spring开发】—— Spring注入静态变量

今天碰到一个问题,我的一个工具类提供了几种静态方法,静态方法需要另外一个类的实例提供处理,因此就写出了这样的代码: 1 Class Util{ 2 private static XXX xxx; 3 xxx = BeanUtil.getBean("xxx"); 4 public static void method1(){ 5 xxx.func1(); 6 } 7 public static void method2(){ 8 xxx.func2(); 9 } 10 } 这里是使用的g