java - 我想定义一个没有接口(interface)的 Spring Bean CLASS

标签 java spring ioc-container

我有一个扩展 HibernateDaoSupport 的 spring bean。我希望将这个 bean 注入(inject)到我的 Controller 中,但我不希望它实现任何接口(interface)。我只想从我的其余代码中引用具体类(也许不使用 AopProxy?)有人有办法做到这一点吗?

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

@Autowired
private MySampleService mySampleService;

... getters and setters ....

我知道使用接口(interface)是个好主意,这就是 IoC 的全部意义所在,但请不要建议我使用接口(interface)。

最佳答案

如果要代理的类(在您的情况下由事务代理)实现任何接口(interface)(InitializingBean 在您的情况下由 HibernateDaoSupport 实现),Spring 默认使用基于 JDK 动态代理的代理策略。

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

如果您不想使用接口(interface),您可以通过声明 <tx:annotation-driven> 来覆盖事务方面使用的策略。与 proxy-target-class = "true" .

另请参阅:

关于java - 我想定义一个没有接口(interface)的 Spring Bean CLASS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528061/

相关文章:

java - Spring 数据 JPA : Filtering page contents results in a smaller page than requested

java - Android:CustomView 中的 EditText 在触摸时未按预期运行

java - 在 .equals() 中添加针对不同值类型的检查

java - 我如何向其中添加 onClickListener?

java - 为每个线程生成一个新的对象实例是线程安全的操作吗?

java - spring boot中如何使用自定义logger记录访问日志

java - 如何将 JSON 中的 Java 对象的实例类型发送到 Java Spring-Server Post 请求?

c# - IoC 容器映射 : singleton vs each-call creation

caSTLe-windsor - 我必须用 CaSTLe Windsor 解决 ILogger 问题吗?

vb.net - 对于 vb.net 程序员来说,最好的 DI-IOC 引用资料是什么?