最近经常有人出现“无法加载属性指定名称的Bean”的错误,其实问题原因很简单,解决办法也很简单,但是大家不知道,相信我简单说一下大家就都明白了。
出现这个问题的原因是action中使用了自动注入,使用了自动注入之后EasyJWeb会尝试注入action中的每个属性。这些属性的值哪儿来?是从配置文件来,比如spring配置文件里配置的bean,easyjweb配置文件配置的bean,如果没有配置的话就会报这个错。
当你使用某些不需要注入的属性的时候,比如logger等,你就需要给这个属性加上@InjectDisable。加上之后EasyJWeb在加载这个action的时候就不会去注入这个字段,否则会到容器中去找这个字段指定的名称(按名称注入时)或类型(按类型注入时)的对象,自然也就会报错。
所以解决办法就是给不需要注入的字段加上@InjectDisable。