This page (revision-7) was last changed on 15-Dec-2014 12:36 by Dieter Käppel

This page was created on 19-Nov-2012 13:14 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
7 15-Dec-2014 12:36 5 KB Dieter Käppel to previous
6 15-Dec-2014 12:36 4 KB Dieter Käppel to previous | to last
5 12-Mar-2013 12:59 4 KB Dieter Käppel to previous | to last
4 31-Dec-2012 14:54 4 KB Dieter Käppel to previous | to last
3 31-Dec-2012 14:52 2 KB Dieter Käppel to previous | to last
2 31-Dec-2012 14:44 1 KB Dieter Käppel to previous | to last
1 19-Nov-2012 13:14 2 KB Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 12 added 37 lines
!!!Spring Custom Injections
Der Application-Support stellt das Interface InjectionFactory<A extends Annotation> zur Verfügung. Damit können auf sehr einfache Weise eigene Injection-Anntotations erstellt werden.
!!Beispiel Scope-Injection
Generell ist es in Spring möglich, durch die @Value-Annotation beliebige Werte durch EL-Expression zu injecten, zum Beispiel durch #{scope.field} einen Wert aus einem [JSF Ext] Scope. Die Nachteile bestehen in der jeweiligen Angabe der EL-Expression, obwohl der Feldname bereits als Information ausreichend wäre, sowie dass der Wert nicht Null sein darf.
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 {
}
}}}