考虑在配置中定义“包”类型的bean [Spring-Boot]

我收到以下错误:

***************************

APPLICATION FAILED TO START

***************************

Description:

Parameter 0 of method setApplicant in webService.controller.RequestController required a bean of type 'com.service.applicant.Applicant' that could not be found.

Action:

Consider defining a bean of type 'com.service.applicant.Applicant' in your configuration.

我之前从未见过此错误,但是奇怪的是@Autowire无法正常工作。这是项目结构:

申请人界面

public interface Applicant {

TApplicant findBySSN(String ssn) throws ServletException;

void deleteByssn(String ssn) throws ServletException;

void createApplicant(TApplicant tApplicant) throws ServletException;

void updateApplicant(TApplicant tApplicant) throws ServletException;

List<TApplicant> getAllApplicants() throws ServletException;

}

申请人Impl

@Service

@Transactional

public class ApplicantImpl implements Applicant {

private static Log log = LogFactory.getLog(ApplicantImpl.class);

private TApplicantRepository applicantRepo;

@Override

public List<TApplicant> getAllApplicants() throws ServletException {

List<TApplicant> applicantList = applicantRepo.findAll();

return applicantList;

}

}

现在,我应该可以只通过Autowire Applicant进行访问,但是在这种情况下,当我在我的应用程序中调用它时,它将无法正常工作

@RestController:

@RestController

public class RequestController extends LoggingAware {

private Applicant applicant;

@Autowired

public void setApplicant(Applicant applicant){

this.applicant = applicant;

}

@RequestMapping(value="/", method = RequestMethod.GET)

public String helloWorld() {

try {

List<TApplicant> applicantList = applicant.getAllApplicants();

for (TApplicant tApplicant : applicantList){

System.out.println("Name: "+tApplicant.getIndivName()+" SSN "+tApplicant.getIndSsn());

}

return "home";

}

catch (ServletException e) {

e.printStackTrace();

}

return "error";

}

}

------------------------更新1 -----------------------

我加了

@SpringBoot" title="SpringBoot">SpringBootApplication

@ComponentScan("module-service")

public class WebServiceApplication extends SpringBootServletInitializer {

@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(WebServiceApplication.class);

}

public static void main(String[] args) {

SpringApplication.run(WebServiceApplication.class, args);

}

}

错误消失了,但是什么也没发生。然而,当我注释掉的一切交易与ApplicantRestController以增加之前@ComponentScan(),我能够返回一个字符串UI,从而意味着我RestController是工作,现在它被跳过。我Whitelabel

Error Page现在很丑。

---------------------更新2 --------------------------- —

我添加了它抱怨的bean的基本包。错误读取:

***************************

APPLICATION FAILED TO START

***************************

Description:

Parameter 0 of method setApplicantRepo in com.service.applicant.ApplicantImpl required a bean of type 'com.delivery.service.request.repository.TApplicantRepository' that could not be found.

Action:

Consider defining a bean of type 'com.delivery.request.request.repository.TApplicantRepository' in your configuration.

我加了 @ComponentScan

@SpringBootApplication

@ComponentScan({"com.delivery.service","com.delivery.request"})

public class WebServiceApplication extends SpringBootServletInitializer {

@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(WebServiceApplication.class);

}

public static void main(String[] args) {

SpringApplication.run(WebServiceApplication.class, args);

}

}

----------------------------更新3 -------------------- -

添加:

@SpringBootApplication

@ComponentScan("com")

public class WebServiceApplication extends SpringBootServletInitializer {

仍然在抱怨我的ApplicantImpl课堂,@Autowires我回购TApplicantRepository了它。

回答:

可能是因为该项目已分解为不同的模块。

@SpringBootApplication

@ComponentScan({"com.delivery.request"})

@EntityScan("com.delivery.domain")

@EnableJpaRepositories("com.delivery.repository")

public class WebServiceApplication extends SpringBootServletInitializer {

以上是 考虑在配置中定义“包”类型的bean [Spring-Boot] 的全部内容, 来源链接: utcz.com/qa/414216.html

回到顶部