Skip to content

Instantly share code, notes, and snippets.

@gregorius
Created September 27, 2011 08:45
Show Gist options
  • Save gregorius/1244623 to your computer and use it in GitHub Desktop.
Save gregorius/1244623 to your computer and use it in GitHub Desktop.
nye instanser via Spring
Dette er hva jeg har gjort nå, etter å ha prøvd mye annet rart......;-)
applicationContext:
<beans>
<bean id="wsMonitoringServiceFactoryBean" class="no.soliditet.webservices.monitor1.helper.WSMonitoringService" singleton="true" factory-method="getInstance">
<property name="serviceClass" value="no.lindorff.pro.server.MonitoringServiceImpl"/>
</bean>
</beans>
Java, interface +impl:
public class MonitoringServiceImpl implements MonitoringService
Java factory/singleton...whatever:
public class WSMonitoringService {
private static WSMonitoringService instance;
private String serviceClass;
private Class<MonitoringService> clazz;
private WSMonitoringService() {
}
public static synchronized WSMonitoringService getInstance() {
if (instance == null) {
instance = new WSMonitoringService();
}
return instance;
}
public MonitoringService getMonitoringService() {
try {
MonitoringService myService = clazz.newInstance();
return myService;
}
catch (Exception e) {
log.error("Unable to instantiate monitoringservice object.", e);
throw new RuntimeException(e);
}
}
public void setServiceClass(String serviceClass) {
this.serviceClass = serviceClass;
clazz = getClazz();
}
private Class<MonitoringService> getClazz() {
try {
//noinspection unchecked
return (Class<MonitoringService>)Class.forName(serviceClass);
}
catch (Exception e) {
log.error("Unable to instantiate monitoringservice object.", e);
throw new RuntimeException(e);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment