Вы сможете достичь этого, используя:
<bean id="myCreatedObjectBean" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass">
<value>com.mycompany.MyFactoryClass</value>
</property>
<property name="targetMethod">
<value>myFactoryMethod</value>
</property>
</bean>
Затем вы можете использовать либо @Resource, либо @Autowired + @Qualifier для непосредственного внедрения в ваш объект.
Для этого примера, ваше applicationContext.xml должно содержать:
<!-- this allows Spring to create an instance of your Factory -->
<bean id="serviceFactoryBean" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass">
<value>yourpackage.ServiceFactory</value>
</property>
<property name="targetMethod">
<value>getInstance</value>
</property>
</bean>
<!-- this allows Spring to use the factory instance to create the instance of ServiceValidator -->
<bean id="serviceValidatorBean" factory-bean="serviceFactoryBean" factory-method="getServiceValidator"/>
И тогда вы можете ввести в свой код с помощью:
@Resource(name = "serviceValidatorBean")
ServiceValidator serviceValidator;