我想定义一个没有接口的Spring Bean CLASS

问题描述

如果要代理的类(在您的情况下是通过事务代理实现)实现了任何接口(在您的情况下是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的重点,但是请不要建议我使用该接口。