问题描述
如果要代理的类(在您的情况下是通过事务代理实现)实现了任何接口(在您的情况下是InitializingBean
通过实现HibernateDaoSupport
),则Spring默认使用基于JDK动态代理的代理策略。
因此,它创建了一个type的代理InitializingBean
,很明显,它不能注入type的字段中MySampleService
。
如果你不想使用的界面,你可以重写通过声明使用事务方面的战略<tx:annotation-driven>
与proxy-target-class =
"true"
。
解决方法
我有一个延伸的四季豆HibernateDaoSupport
。我希望将此bean注入控制器中,但是我不希望它实现任何接口。我只想从其余代码中引用具体的类(也许不使用AopProxy?)有人可以这样做吗?
<bean id="mySampleService" class="com.sample.MySampleService">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
@Autowired
private MySampleService mySampleService;
... getters and setters ....
我知道使用该接口是一个好主意,这就是IoC的重点,但是请不要建议我使用该接口。