读书人

关于配置文件中的property属性与set

发布时间: 2012-11-06 14:07:00 作者: rapoo

关于配置文件中的property属性与set,get方法
一直以为在配置文件中有一个property,对应的class里就应有一个与其名称一样的变量,这样spring的IOC才会通过setter getter 方法对其进行初始化。

但是今天看到spring的hibernateDaoSupport里边没有sessionFactory变量,但是继承该hibernateDaoSupport的dao却被要求有一个datasource或者sessionFactory的property,所以纳闷至极。


遂决定自己实验一下,结果是只要dao里边有对应的set get 方法即可,并不要求有一个对应的变量。并且尽管有set 方法,但是并不要求一定需要配置property属性。反之,如果配置了property属性,则一定要有set方法。

hibernateDaoSupport需要datasource或者sessionFactory的property是因为其继承的类中有一个after****方法,在这个方法中会判断datasource或者sessionFactory是否为空。在spring框架中,bean生成的时候会默认去运行这个after***方法。所以如果不配置的话就会报错。


例如:
public class HibernateTestDao extends HibernateDaoSupport{

/*public void test(){
getHibernateTemplate().execute(null);
}*/
public String stri;
public final void setStryyyyyy(String str){
this.stri=str;
}

public final String getStryyyyyy(){
return this.stri;
}

}

因为根据约定,是以set后边的字符为变量。
所以配置文件中

<bean id="HibernateTestDao" parent="baseDao" >
<property name="stryyyyyy" value="tttttttttttttttt">

</property>
</bean>

读书人网 >编程

热点推荐