簡體   English   中英

我想用NO接口定義一個Spring Bean CLASS

[英]I want to define a Spring Bean CLASS with NO Interface

我有一個擴展HibernateDaoSupport的spring bean。 我希望將這個bean注入到我的控制器中,但我不希望它實現任何接口。 我只是想從我的其余代碼中引用具體的類(不是可以使用AopProxy?)有沒有人有辦法做到這一點?

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

@Autowired
private MySampleService mySampleService;

... getters and setters ....

我知道使用界面是一個好主意,這是IoC的重點,但請不要建議我使用界面。

如果要代理的類(在您的情況下通過事務代理)實現任何接口(在您的情況下由HibernateDaoSupport實現的InitializingBean ),Spring默認使用基於JDK動態代理的代理策略。

因此,它創建了一個InitializingBean類型的代理,顯然,它不能被注入到MySampleService類型的字段中。

如果您不想使用接口,則可以通過使用proxy-target-class = "true"聲明<tx:annotation-driven>來覆蓋事務方面使用的策略。

也可以看看:

你可以在xml中編寫包括映射控制器在內的所有東西,然后你就不需要編寫接口了。 否則,使用注釋需要構建接口來代理它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM