Created
September 27, 2011 08:45
-
-
Save gregorius/1244623 to your computer and use it in GitHub Desktop.
nye instanser via Spring
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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