首页上一页 1 下一页尾页 2 条记录 1/1页
关于类型转换的疑问
发表在Java图书答疑
2011-05-29
是否精华
是
否
版块置顶:
是
否
通过《Java项目开发实例自学手册》一书中的医药进销存学习spring框架的使用
其中,spring的配置文件有如下一段
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
- <bean id="DAO" class="com.erp.dao.DaoSupport">
- <property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
- <bean id="DAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
- <property name="transactionManager">
<ref bean="transactionManager" />
</property>
- <property name="target">
<ref local="DAO" />
</property>
<property name="proxyTargetClass" value="true" />
- <property name="transactionAttributes">
- <props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
然后,在adapter类中有如下初始化方法让我产生疑问:
public boolean getdao(){
try{
this.resource = new ClassPathResource("appcontext.xml",getClass());
this.factory = new XmlBeanFactory(resource);
this.dao = (DaoSupport) factory.getBean("DAOProxy");
return true;
}catch(Exception e){
e.printStackTrace();
JF_view_error error = new JF_view_error(e.getMessage());
error.setTitle("初始化数据连接失败,错误信息如下:");
return false;
}
}
this.dao = (DaoSupport) factory.getBean("DAOProxy");
按照配置文件可知
此句等同于:
DaoSupport dao = (DaoSupport) new TransactionProxyFactoryBean();
DaoSupport为HibernateDaoSupport的子类
不同类型的类,怎么可以强制转换呢?
虽然说隔着一层spring的工厂配置,在编译时肯定发现不了错误,但在运行时,代码也能行正常,想请教这个问题.是哪里
其中,spring的配置文件有如下一段
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
- <bean id="DAO" class="com.erp.dao.DaoSupport">
- <property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
- <bean id="DAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
- <property name="transactionManager">
<ref bean="transactionManager" />
</property>
- <property name="target">
<ref local="DAO" />
</property>
<property name="proxyTargetClass" value="true" />
- <property name="transactionAttributes">
- <props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
然后,在adapter类中有如下初始化方法让我产生疑问:
public boolean getdao(){
try{
this.resource = new ClassPathResource("appcontext.xml",getClass());
this.factory = new XmlBeanFactory(resource);
this.dao = (DaoSupport) factory.getBean("DAOProxy");
return true;
}catch(Exception e){
e.printStackTrace();
JF_view_error error = new JF_view_error(e.getMessage());
error.setTitle("初始化数据连接失败,错误信息如下:");
return false;
}
}
this.dao = (DaoSupport) factory.getBean("DAOProxy");
按照配置文件可知
此句等同于:
DaoSupport dao = (DaoSupport) new TransactionProxyFactoryBean();
DaoSupport为HibernateDaoSupport的子类
不同类型的类,怎么可以强制转换呢?
虽然说隔着一层spring的工厂配置,在编译时肯定发现不了错误,但在运行时,代码也能行正常,想请教这个问题.是哪里