Hallo zusammen
Ich möchte gerne diverse DAO- und Service Klassen innerhalb einer abstrakten Superklasse "autowiren".
AbstractFactory (com.app.factory)
GermanFactory (com.app.factory.germany)
servlet.xml
[XML]
<context:annotation-config />
<context:component-scan base-package="com.app.factory.germany"/>
[/XML]
Leider bleiben die Instanzvariablen innerhalb der zurückgegebenen Kinder-Factories jeweils null.
Die beiden Klassen (Service und DAO) können in anderen "normalen" Klassen ohne Problem mit @autowired eingefügt werden.
Einzig mit den abstrakten Klassen funktioniert das leider nicht.
Vielen Dank für eure Hilfe!
Ich möchte gerne diverse DAO- und Service Klassen innerhalb einer abstrakten Superklasse "autowiren".
AbstractFactory (com.app.factory)
Java:
public abstract class AbstractFactory{
@Autowired protected UserService userService;
@Autowired protected TenantDao<Material> materialDao;
public static AbstractFactory getFactory(Company company) throws Exception {
Integer companyNumber = new Integer(company.getCompanyNumber());
if (companyNumber.equals(SystemGlobals.COMPANY_NUMBER_GERMANY)) {
return new FactoryGermany();
}
else if (companyNumber.equals(SystemGlobals.COMPANY_NUMBER_US)) {
return new FactoryAmerica();
}
else {
throw new CompanyNotExistsException();
}
}
}
GermanFactory (com.app.factory.germany)
Java:
@Component
public class FactoryGermany extends AbstractFactory {
// implementation
}
servlet.xml
[XML]
<context:annotation-config />
<context:component-scan base-package="com.app.factory.germany"/>
[/XML]
Leider bleiben die Instanzvariablen innerhalb der zurückgegebenen Kinder-Factories jeweils null.
Die beiden Klassen (Service und DAO) können in anderen "normalen" Klassen ohne Problem mit @autowired eingefügt werden.
Einzig mit den abstrakten Klassen funktioniert das leider nicht.
Vielen Dank für eure Hilfe!