不仅是@Resource,使用@Autoware注解也是不需要set和get方法的。因为spring在实例化对象时,是通过java的反射机制注入实例。具体请自行参考java反射。
我知道spring反射实例化对象,在实例化对象时也需要实例类中的非静态field,如果有set方法,可以通过方法名找到Method.invoke()来初始化field,但是没有set方法,spring直接修改field的权限(也就是把private修改为protected或public),然后将field初始化的吗?
@覃学苦练: 是的
@formcc: 了解了,谢谢
应该是配置文件中service已经进行标注了
可是我没有配置service的set方法啊,如果不使用注解的方式,即
<bean id="xxService" class="XxService"></bean>
<bean id="xxAction" class="XxAction">
<property name = "xxService" ref="xxService">
</bean>
这样如果action中没有set方法,就会报错;使用了注解的方式没有set方法也不会报错
@覃学苦练: 对啊 如果action没有set方法,xml property会报找不到该类型 为啥。。。