ฉันได้รับข้อผิดพลาดต่อไปนี้:
***************************
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;
}
ผู้สมัคร
@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
ลงไป