读书人

spring 类型转换有关问题

发布时间: 2013-04-05 10:24:33 作者: rapoo

spring 类型转换问题
applicationContext.xml里的配置如下


<bean id="login" class="com.action.LoginAction">
<property name="employeeService"><ref bean="employeeService"/> </property>
</bean>
<bean id="employeeService" class="com.imp.EmployeeService">
<property name="sessionFactory"><ref bean="sessionFactory"/> </property>
</bean>

对应com.action.LoginAction有如下一个变量
    private EmployeeService employeeService;

其中com.imp.EmployeeService 继承了一个接口
public class EmployeeService  implements EmployeeServiceInter

这样在运行时候系统会报错,说是EmployeeServiceInter格式无法转为EmployeeService 将配置文件里的代码改为如下代码则一切正常。本来被引用的bean类就是EmployeeService而在引用的类里建立一个EmployeeService格式的变量不就可以吗?为什么要在引用的类里建立一个EmployeeServiceInter格式的变量
    
<bean id="login" class="com.action.LoginAction">
<property name="EmployeeServiceInter"><ref bean="employeeService"/> </property>
</bean>
<bean id="employeeService" class="com.imp.EmployeeService">
<property name="sessionFactory"><ref bean="sessionFactory"/> </property>
</bean>

对应com.action.LoginAction变量改为
    private EmployeeServiceInter employeeServiceInter;
spring bean class
[解决办法]
面向接口编程。这是IOC的思想。
[解决办法]
因为它优先用动态代理实现注入,动态代理代理类必须有接口。

非要不用接口可以用擦写码方式实现注入,但是配置方法不一样。

读书人网 >Java Web开发

热点推荐