我想用NO接口定义一个Spring Bean CLASS

fan*_*ang 8 java spring ioc-container

我有一个延伸的春豆HibernateDaoSupport.我希望将这个bean注入到我的控制器中,但我不希望它实现任何接口.我只是想从我的其余代码中引用具体的类(不是可以使用AopProxy?)有没有人有办法做到这一点?

<bean id="mySampleService" class="com.sample.MySampleService">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

@Autowired
private MySampleService mySampleService;

... getters and setters ....
Run Code Online (Sandbox Code Playgroud)

我知道使用界面是一个好主意,这是IoC的重点,但请不要建议我使用界面.

axt*_*avt 11

如果到(在你的情况下,由事务代理)被代理类实现任何接口(InitializingBean通过实现HibernateDaoSupport你的情况),Spring缺省使用基于JDK动态代理代理策略.

因此,它创建了一个类型的代理InitializingBean,显然,它不能被注入到类型的字段中MySampleService.

如果你不想使用的界面,你可以重写通过声明使用事务方面的战略<tx:annotation-driven>proxy-target-class = "true".

也可以看看:

  • 另外,不要将具体课程定为最终,否则您将无法以这种方式代理. (2认同)