Printemps: Correctement le programme d'installation @ComponentScan
J'ai de suite mis en place pour mon Spring Application Context
.
@Configuration
public class RmiContext {
@Bean
public RmiProxyFactoryBean service() {
RmiProxyFactoryBean rmiProxy = new RmiProxyFactoryBean();
rmiProxy.setServiceUrl("rmi://127.0.1.1:1099/Service");
rmiProxy.setServiceInterface(Service.class);
return rmiProxy;
}
}
@Configuration
public class LocalContext {
@Bean
public Controller Controller() {
return new ControllerImpl();
}
}
@Configuration
@Import({RmiContext.class, LocalContext.class})
public class MainContext {
}
La configuration ci-dessus fonctionne très bien, mais je veux l'activer @ComponentScan
l'annotation Controller
s avec @Component
comme il y a beaucoup de Controller
s dans mon application qui est pénible quand, a déclaré un par un à l'aide d' @Bean
.
@Configuration
@ComponentScan(basePackageClasses = {Controller.class})
public class LocalContext {
/* ... */
}
Le problème est que quand je fais @ComponentScan(basePackageClasses = {Controller.class})
, l amende de travail RmiProxyFactoryBean
ne sont pas reconnus ou ne peut pas être créé.
Alors, Comment dois-je configurer mon MainContext
de sorte que les deux haricots via RMI et locales, les haricots sont créés?
Vous devez vous connecter pour publier un commentaire.
@Configuration est également un candidat pour le composant d'analyse, de sorte que vous pouvez numériser tous les haricots dans RmiContext et tous les contrôleurs de l'ensemble de contrôleur par:
--edit--
@Configuration est un candidat pour le composant d'analyse, ici, c'est le cas de test qui fonctionne dans mon pc:
Service
trouvé) des exceptions lorsque@ComponentScan
est utilisé pour d'autres haricots annoté avec@Component
Peut-être vous pouvez essayer d'utiliser les paquets de base de vos classes (RMI, Contrôleur):
Si le RMI classes du package est différent de celui de contrôleur puis ils ne parviennent pas à instancier le printemps.
@Configuration
est une annotation pour la définition de Java à base de configuration spring. Et peut-être vous avez pensé à être@Component
. Et c'est en gros ce que je veux faire comme, annoter les composants des classes avec@Component
ou@Controller
et l'utilisation@ComponentScan
au lieu de définir manuellement avec@Bean
pour tous les composants. Mais le problème est que quand je fais ça,Rmi services
composants haricots ne sont plus créés ou reconnus.Si je vous comprends bien, vous utilisez "@ComponentScan(basePackageClasses" mais ce n'est pas la détection et l'enregistrement de votre beans spring?
J'ai eu le même problème il y a quelques minutes. Je n'ai pas abandonné et a essayé tous funny devine. On suppose que a fait.
J'ai dû ajouter un XML component-scan entrée en XML. Je viens de mettre un paquet là-bas, comme ci-dessous:
Il semble que le composant d'analyse XML permet à l' @ComponentScan.
[Fin Edit: j'ai remarqué, mon printemps schéma xml est le printemps 2.5. De toute façon, je ne sais pas si cela est important. En Ce Qui Concerne Meilleur.]