
Originally Posted by
sniederb
Alarmnummer
Then, what is the "best practice" to access the singletons from your code?
Thanks
Simon
A good example can tell more than a 1000 words.
example:
Code:
class EmployeeManager{
private EmployeeDao employeeDao;
public void setEmployeeDao(EmployeeDao employeeDao){
this.employeeDao = employeeDao;
}
public void fire(long employeeId){
Employee employee = employeeDao.load(employeeId);
.. some fire logic
employeeDao.update(employee);
}
}
class EmployeeDao{
Employee load(long id){....}
void update(Employee e){....}
}
class FireController extends SomeSpringMVCController{
private EmployeeManager employeeManager;
public void setEmployeeManager(EmployeeManager employeeManager){
this.employeeManager = employeeManager;
}
ModelAndView onSubmit(HttpRequest request, HttpResponse resp){
long employeeId = RequestUtils.getRequiredLong(request,"employeeId");
employeeManager.fire(employeeId);
return new ModelAndView("success");
}
}
<bean id="employeeDao" class="EmployeeDao"/>
<bean id="employeeManager class="EmployeeManager">
<property name="employeeDao" ref="employeeDao"/>
</bean>
<bean id="fireController" class="FireController">
<property name="employeeManager" ref="employeeManager"/>
</bean>
You can see that nobody needs to access the ApplicationContext directly.