저는 Spring으로 시작하여 Thymeleaf 템플릿, JPA 및 Mysql을 사용하여 기본 Spring 부트 웹 앱을 만들었습니다.
자동 연결을 사용하고 모든 클래스에 주석을 달면 모든 것이 작동합니다. 다음은 작업 코드의 예입니다.
@Autowired 주석이있는 기본 컨트롤러를 사용하여 DAO 인스턴스를 가져옵니다.
그래서 get 메소드를 호출하면 제품 목록을 볼 수 있습니다. 2 개의 제품이 표시됩니다.
이제 Java 구성으로 전환하면 작동이 중지됩니다. 주석을 주석 처리하고 새 Java 구성 파일을 추가했습니다.
@Autowiring 주석도 컨트롤러에서 제거되었습니다.
@Configuration이있는 Java 클래스를 추가했습니다. 구성 파일을 참조하십시오.
컨텍스트가 빈을로드했는지 확인하기 위해 run 메서드에서 반환 한 구성 가능한 컨텍스트를 가져와 빈이로드되었는지 확인했습니다.
DAO 빈을 가져오고 메소드를 호출하여 제품 라인 항목을 가져옵니다.
이것은 또한 객체가 null이 아님을 알 수 있듯이 작동합니다. 또한 응용 프로그램이 시작된 직후 출력에서 제품 수를 얻을 수 있습니다.
여기까지 모든 것이 정상이며 응용 프로그램이 시작되었습니다. 하지만 이제 URL에 액세스하면 오류가 발생합니다.
요약 이 예제는 Spring을 이해하기 위해서만 수행되었으며 적절한 DDD 관행을 따르지 않습니다.
단계 요약은 다음과 같습니다. 문제는 4 (b) 단계에 있습니다.
- DAO는 2 개의 Product 인스턴스를 만들고 목록에 넣고 반환합니다.
- DAO는 컨트롤러에 주입됩니다. 컨트롤러는 DAO에서 getproducts ()를 호출하고 제품 목록을 반환합니다.
- 모든 것이 @Autowiring과 결합 된 구성 요소 및 서비스 주석과 함께 작동합니다.
- Java 구성을 사용할 때 문제가 발생합니다. (a) 응용 프로그램 시작 후 컨텍스트를 얻고 빈이로드되었는지 확인합니다. (주 응용 프로그램에서이 작업을 수행하고 있습니다.) (b) URL을 누르고 컨트롤러가 DAO에서 메서드를 호출하려고 할 때만 문제가 발생합니다.