Spring IoC容器为您提供了替换bean方法的an option。有人可以提供使用此功能解决现实生活问题的真实例子吗?
我可以看到这用于调整旧的遗留代码(没有来源)以使用您的应用。但我想我会考虑直接使用遗留代码而不是Spring方法替换方法编写适配器类。
答案 0 :(得分:1)
正如文档所说,它不是“常用的”功能。
虽然可能有用但改变最终类的第三方方法(您不一定拥有源)的功能 - 即无法通过继承修改或扩展其功能的情况。
我想它仍然会成为一种黑客攻击:)
答案 1 :(得分:0)
现在使用spring IoC我可以将我的Lucene Analyzers更改为我想要的更改配置文件。
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file.properties</value>
</list>
</property>
</bean>
<bean id="DocumentAnalyzer" class="${lucene.document_analyzer}">
</bean>
<bean id="QueryAnalyzer" class="${lucene.query_analyzer}">
</bean>
<bean id="IndexSearcher" class="org.apache.lucene.search.IndexSearcher" scope="prototype">
<constructor-arg>
<value>${lucene.repository_path}</value>
</constructor-arg>
</bean>
然后在代码中:
Analyzer analyzer = (Analyzer) BeanLoader.getFactory().getBean("DocumentAnalyzer");