Is it possible from Spring to inject the result of calling a method on a ref bean?

Posted by Alex Worden on Stack Overflow See other posts from Stack Overflow or by Alex Worden
Published on 2010-03-26T01:52:41Z Indexed on 2010/03/26 2:03 UTC
Read the original article Hit count: 314

Filed under:

Hi,

Is it possible from Spring to inject the result of calling a method on a ref bean?

I'm trying to refactor some cut/pasted code from two separate projects into a common class. In one of the projects, the code lives in a class I'll call "MyClient" that is being instantiated from Spring. It is injected with another spring-instantiated class "MyRegistry", then the MyClient class uses that class to look up an endpoint. All I really need is the endpoint String in my refactored class, which can be initialized via a Setter. I really cannot have a dependency on MyRegistry from MyClient in the refactored code.

So, my question is this... is there a way I can inject the endpoint String from spring that was looked up in the MyRegistry class. So, I currently have:

<bean id="registryService" class="foo.MyRegistry">
...properties set etc...
</bean>

<bean id="MyClient" class="foo.MyClient">
    <property name="registry" ref="registryService"/>
</bean>

But I'd like to have (and I know this is imaginary Spring syntax)

<bean id="MyClient" class="foo.MyClient">
    <property name="endPoint" value="registryService.getEndPoint('bar')"/>
</bean>

where MyRegistry will have a method getEndPoint(Stirng endPointName)

Hope that makes sense from a the standpoint of what I'm trying to achieve. Please let me know if something like this is possible in Spring!

© Stack Overflow or respective owner

Related posts about spring