Bonjour,
J'utilise Spring 2.5, et JavaConfig pour la configuration. Pour chaque couche de l'architecture (domain / service / web), j'utilise une classe de configuration, importée (via @Import) par la couche supérieure.
Couche domain
Couche service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @AnnotationDrivenConfig @Configuration public abstract class DomainContext extends ConfigurationSupport { @Bean public MessageSource domainMessageSource() { ReloadableResourceBundleMessageSource domainMessageSource = new ReloadableResourceBundleMessageSource(); domainMessageSource.setBasename("domain"); domainMessageSource.setDefaultEncoding("UTF-8"); domainMessageSource.setCacheSeconds(-1); return domainMessageSource; } }Couche web
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 @Import(DomainContext.class) @AnnotationDrivenConfig @Configuration public abstract class ServiceContext extends ConfigurationSupport { @Bean public MessageSource serviceMessageSource() { ReloadableResourceBundleMessageSource serviceMessageSource = new ReloadableResourceBundleMessageSource(); serviceMessageSource.setBasename("service"); serviceMessageSource.setDefaultEncoding("UTF-8"); serviceMessageSource.setCacheSeconds(-1); return serviceMessageSource; } }Je cherche simplement à accéder, dans la configuration web, soit à tous mes objets de type MessageSource, soit au moins à celui identifié domainMessageSource. J'ai donc essayé pas mal de choses :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Import(ServiceContext.class) @AnnotationDrivenConfig @Configuration public abstract class WebContext extends ConfigurationSupport { // ... }Tout aboutit à la même erreur (j'ignore d'où sort le troisième objet : messageSource !) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 @Autowired private MessageSource[] messagesSources; @Autowired private Collection<MessageSource> messagesSources; @Autowired @Qualifier("domainMessageSource") private MessageSource domainMessageSource; @Resource private MessageSource domainMessageSource; @Resource(name="domainMessageSource") private MessageSource domainMessageSource;Comment débloquer cette situation ? Merci.No unique bean of type [org.springframework.context.MessageSource] is defined: expected single matching bean but found 3: [domainMessageSource, serviceMessageSource, messageSource]
Partager