다음과 같은 오류가 발생합니다.
***************************
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 -----------------------
나는 추가했다
@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);
}
}
오류가 사라졌지 만 아무 일도 일어나지 않았습니다. 그러나 추가하기 전에 Applicant
에서 처리하는 모든 것을 주석으로 처리했을 때 문자열을 반환 할 수 있었 으므로, 따라서 작동 중임 을 의미하므로 이제 건너 뛰고 있습니다. 나는 지금 못 생겼다 .RestController
@ComponentScan()
UI
RestController
Whitelabel Error Page
--------------------- 업데이트 2 --------------------------- ---
불평하는 빈의 기본 패키지를 추가했습니다. 오류는 다음과 같습니다.
***************************
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
내의 repo TApplicantRepository
그것으로.