I have just started to use Spring in a Tapestry web application. I'm currently making heavy use of Tapestry "extensions" which are managed objects just like Spring beans upon which properties can be set.

I am planning on using the Spring stack to eliminate these Tapestry extensions, making the service objects into Spring beans. The initial target use of Spring then is as a simple service manager / locator.

The application is heavily customized - a common idiom we use is to have an interface with a different concrete implementation for each client.

So what I really wanted to do was:
Code:
	<bean id="serviceBean" class="$&#123;client.service.class&#125;" />
... and use the PropertyPlaceholderConfigurer to replace the token with the actual name of the concrete service class for a client.

However, it seems that the PropertyPlaceholderConfigurer is useful only for replacing <property> values, which makes sense given its name.

Is there a better way to accomplish this using Spring?

An additional note: I would like to have a single applicationContext.xml file - each client would have their own client.properties with customized values.