multi composant du module de numérisation ne fonctionne pas dans le ressort de démarrage
Je vais avoir deux module web et de l'entreprise. J'ai d'entreprise inclus dans le site web. Mais quand j'essaie d'inclure un service d'interface à partir d'entreprise sur le web à l'aide de @autowired
, c'est de donner org.springframework.beans.factory.NoSuchBeanDefinitionException
.
Donc, en gros, @SpringBootApplication
n'est pas en mesure d'analyser le @Service
de module d'entreprise.
Est-il quelque chose de simple, je suis absent?
Si j'ajoute @Bean
pour que le service dans la @SpringBootApplication
classe, il fonctionne très bien.
Code:
package com.manish;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
public class SpringBootConfiguration {
public static void main(String[] args) {
SpringApplication.run(SpringBootConfiguration.class, args);
}
}
De classe de module 1, qui est l'appel de la classe de module 2:
package com.manish.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import uk.co.smithnews.pmp.service.contract.UserRegistrationService;
@RestController
@RequestMapping("/testManish")
public class SampleController {
@Autowired
private SampleService sampleService;
....
}
Module 2:
package com.manish.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class SampleServiceImpl implements SampleService {
}
Merci,
Comment voulez-vous construire et exécuter votre application? Vous pouvez poster votre configuration de build?
Grâce dunni, il y avait un type dans mon code, qui a été à l'origine du problème. Quand j'ai essayé de coller le code pour vous, j'ai tout compris.
Grâce dunni, il y avait un type dans mon code, qui a été à l'origine du problème. Quand j'ai essayé de coller le code pour vous, j'ai tout compris.
OriginalL'auteur krmanish007 | 2015-10-12
Vous devez vous connecter pour publier un commentaire.
@SpringBootApplication
analyse uniquement les paquets de la classe avec l'annotation elle-même et tous les paquets ci-dessous.Exemple: Si la classe avec le SpringBootApplication annotation est dans le package
com.project.web
, puis cette packages et les tous ci-dessous qui sont analysés.Toutefois, si vous avez vos services dans le package
com.project.business
, les haricots ne seront pas analysés.Dans ce cas, vous devez ajouter l'annotation
@ComponentScan()
à votre classe d'application, et ajouter tous les paquets que vous souhaitez analyser la valeur de cette annotation, par exemple@ComponentScan({"com.project.web", "com.project.business"})
.Eh bien, alors vous avez à donner plus d'informations à propos de votre projet de la structure. Le composant d'analyse ne se soucie pas, si vos classes sont stockées dans différents Pots, tant qu'ils sont sur le chemin de la classe.
J'ai ajouté mon code, mais tout semble encore assez simple. Merci
vous pouvez aussi @ComponentScan(basePackages = {"com.projet"}) cela va balayer tous les packages com.projet.*
OriginalL'auteur dunni