Der Application Support ist eine Bibliothek mit integrativen Code für JSF2, JSF Ext, Spring Framework und JPA / Hibernate. Ziel ist, häufig verwendete Komponenten für den einfachen Aufbau einer Applikation erfolgreich zu kombinieren. Application Support liefert eine Reihe nützlicher Bausteine.
| Methode | Beschreibung |
|---|---|
| getContext | Liefert den (Spring-)ApplicationContext |
| createEntityManager | Liefert den EntityManager zum Durchführen von Datenbank-Operationen außerhalb der Spring-Injection, wie zum Beispiel beim Bau von Validators und Converters. Der so erhaltene EntityManager muss in jedem Fall in einem try-finally-Block mit der Methode close geschlossen werden. Andernfalls entsteht ein Speicher- und Ressourcen-Leck. |
Daher eine ScopeInjectionFactory:
@Component
public class ScopeInjectionFactory implements InjectionFactory<ScopeValue> {
@Override
public Class<ScopeValue> getAnnotationType() {
return ScopeValue.class;
}
@Override
public Object create(Class<?> type, String beanName, ScopeValue annotation) {
Scopes scopes = Scopes.instance();
if (scopes == null)
return null;
Scope scope = scopes.getScope();
if (scope == null)
return null;
return scope.get(beanName);
}
}
Die dazugehörige Annotation:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface ScopeValue {
}