복붙노트

[SPRING] Bean 클래스를 인스턴스화 할 수 없습니다 : 지정된 클래스는 인터페이스입니다.

SPRING

Bean 클래스를 인스턴스화 할 수 없습니다 : 지정된 클래스는 인터페이스입니다.

이 문제와 유사한 스레드가 있다는 것을 알고 있습니다. 아래는 내 수업이며 spring.xml 파일에서 구성하고 있습니다. 실제로 HumanResourceService는 하나의 메소드 만 갖는 인터페이스입니다.

@Endpoint
public class HolidayEndpoint {

    @Autowired
    private HumanResourceService humanResourceService;

    @Autowired
    public HolidayEndpoint(HumanResourceService humanResourceService) throws JDOMException {
        this.humanResourceService = humanResourceService;
    }
}

내 문제는 내 spring.xml 파일에서 HumanResourceService를 bean으로 정의하면 이것이 인터페이스이므로 인스턴스화 할 수 없다는 것입니다. 스프링 구성 파일에서 인터페이스를 어떻게 언급 할 수 있습니까? 내 spring.xml 파일이 아래에 있습니다.

<bean id="holidayEndpoint" class="com.mycompany.hr.ws.HolidayEndpoint" autowire="constructor" >
     <property name="humanResourceService" ref="humanResourceService" />
</bean>
<bean id="humanResourceService" class="com.mycompany.hr.service.HumanResourceService" />

해결법

  1. ==============================

    1.당신은 할 수 없습니다. Spring은 인스턴스를 만들 수있는 뭔가가 필요합니다. 인터페이스는 충분하지 않습니다.

    당신은 할 수 없습니다. Spring은 인스턴스를 만들 수있는 뭔가가 필요합니다. 인터페이스는 충분하지 않습니다.

    Spring.xml에서 id = "humanResourceService"인 bean의 class 속성 값은 인터페이스가 아닌 구현 클래스의 이름이어야합니다. Spring은 당신이 이것을 위해 어떤 구현 클래스를 사용하길 원하는지 알려줄 필요가있다.

  2. from https://stackoverflow.com/questions/26721583/could-not-instantiate-bean-class-specified-class-is-an-interface by cc-by-sa and MIT license