I am using spring3. I have classes below.
Transport.java
package com.net.core.ioc;
public interface Transport {
public void doSave();
}
Car.java
package com.net.core.ioc;
public class Car implements Transport{
String name;
public Car(String name){
this.name=name;
}
public void doSave(){
}
}
Bus.java
package com.net.core.ioc;
public class Bus implements Transport {
String id;
public Bus(String id){
this.id=id;
}
public void doSave() {
}
SpringService.java
package com.net.core.ioc;
public class ServiceLocator {
private static ServiceLocator service = new ServiceLocator ();
public static ServiceLocator createService(){
return service;
}
public Transport createCarInstance(String name){
return new Car(name);
}
public Transport createBusInstance(String id){
return new Bus(id);
}
}
}
config.xml
<context:component-scan base-package="com.net.core.ioc"/>
<bean id="serviceLocator" class="com.net.core.ioc.ServiceLocator"factory-method="createService"/>
<bean id="springServiceCarInstance" factory-bean="serviceLocator" factory-method="createCarInstance" scope="prototype"/>
<bean id="springServiceBusInstance" factory-bean="serviceLocator" factory-method="createBusInstance" scope="prototype"/>
</beans>
Now I get beans, as shown below:
Transport request = (Transport)applicationContext.getBean("springServiceCarInstance","someName");
request.doSave();
Now can I use spring transactions here? I mean, can I comment on car and bus classes using @Transactional?
source
share