spring - In Grails, specifying which of two classes implementing the same interface should be used for injection -
in grails 2.5.0, there's grails class, let's call g
, implements interface, let's call i
; i've created new class myself, let's call m
, implements i
.
unfortunately, third-party grails plugin injects using:
@autowired i
which throws nouniquebeandefinitionexception
, because both g
& m
implement i
, , grails doesn't know use.
how can specify injections of i
, class g
should used?
i want inject class m
injections like:
def m
or
m m
some solutions mention using @qualifier
annotation @ injection site, but, because injection site in third-party plugin, don't want modify code if can avoid it. shouldn't modify source of g
, since grails itself. so, i'd prefer either configure in config file, or somehow annotate m
such either isn't candidate i
injection, or it's lower priority candidate i
injection default priority, assume has been applied g
.
i know must documented somewhere in grails and/or spring, it's i've gotten many spurious results searching answer.
a possibly simpler converse question how specify m
should used injections of type i
, instead of original question how specify m
should not used injections of type i
.
in grails-app/conf/spring/resources.groovy
, add:
beans = {springconfig.addalias 'i', 'g'}
Comments
Post a Comment