昨天在使用SpringMVC做图片上传的时候,因为想要控制上传图片的大小,所以使用到以下配置文件
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1024"/>
</bean>
当时突然就想看看maxUploadSize字段是在哪里声明的,于是就将CommonsMultipartResolver这个类以及父类全部翻看了个遍,但是都没有看到maxUploadSize这个字段的声明。但是在其父类CommonsFileUploadSupport中看到了setMaxUploadSize这个方法。当时就在想,难道不用声明字段,只需要书写set方法就可以注入容器了吗?
于是我自定义如下类:
public class Person {
public void setName(String name) {
System.out.println("---------------------"+ name);
}
}
类非常简单,只有一个setName方法,在idea中类的结构视图中,能明显的看到,已经将name作为了属性
接下来将Person类放入spring容器中
<bean name="person" class="pers.yang.pojo.Person">
<property name="name" value="zhangsan"/>
</bean>
给name默认为zhangsan,运行程序进行测试,在控制台可以看到setName方法执行了
由此可见,在spring中,不需要字段,只需要setXxx方法即可将Xxx作为property的name值,在spring容器初始化的时候即执行setXxx方法。