> Java > java지도 시간 > 본문

SpringBoot @Componet 주석 주입 실패를 해결하는 방법

PHPz
풀어 주다: 2023-05-14 11:55:06
앞으로
2463명이 탐색했습니다.

    @Component 어노테이션 주입 실패

    문제 설명

    springboot 프로그램 작성시 @Component 어노테이션이 Person 클래스에 명확하게 추가되었으나 컨테이너에서는 Person 클래스의 Bean 객체를 찾을 수 없다고 표시되었습니다. .

    인터넷에서 많은 기존 솔루션을 검색했지만 그 중 아무것도 작동하지 않는다는 것을 발견했습니다. 당시 주요 프로그램이 같은 이름의 폴더에 있었기 때문에 나중에 패키지 검색에 문제가 있을 수 있다는 것을 깨달았습니다. 기본 패키지 검색 규칙에 따라 기본 프로그램 - 기본 프로그램이 있는 패키지의 클래스와 모든 하위 패키지를 검색하면 도메인 패키지 아래의 Person 클래스는 자연스럽게 검색되지 않으므로 @Component 표시되어 있으면 적용되지 않습니다.

    SpringBoot @Componet注解注入失败如何解决

    솔루션

    메인 프로그램에 Componet 주석 추가

    @ComponentScan("com.example")
    로그인 후 복사

    springboot가 예제의 모든 패키지를 성공적으로 스캔하게 하면 문제가 해결되고 문제가 해결됩니다

    SpringBoot @comComponent의 역할

    구덩이에 들어가면 이 인터페이스의 구현 클래스에 @Autowired 주석을 사용해야 하는 인터페이스가 하나 있습니다. 부주의하여 구현 클래스에 @Component 주석을 추가하지 않아 Spring에서 오류가 보고되었습니다. Spring에 대한 주석이 나타나면 예를 들어 구현 클래스에서 @Autowired 주석을 사용했으며 주석이 달린 클래스는 호출된 구현 클래스도 필요합니다. @Component

    @Controller 컨트롤러(인젝션 서비스)

    는 컨트롤 레이어에 주석을 추가하는 데 사용됩니다. struts의 액션 레이어와 동일합니다.

    @Service 서비스(injection dao)

    는 서비스 레이어를 표시하는 데 사용되며 주로 비즈니스 로직 처리에 사용됩니다.

    @Repository(dao 액세스 구현)

    은 다음 작업에 사용됩니다. 데이터 액세스 구성 요소, 즉 DAO 구성 요소를 표시하는 데 사용된다고 할 수도 있는 데이터 액세스 레이어를 표시합니다.

    @Component(구성 파일과 동일하게 일반 pojo를 스프링 컨테이너로 인스턴스화)일반적으로 다음을 참조합니다. 즉, 클래스가 다양한 분류에 속하지 않는 경우(@Controller, @Services 등에 속하지 않는 경우) @Component를 사용하여 이 클래스에 주석을 달 수 있습니다.

    예제

    applicationcontent 등 구성 파일에 쓰는 형식입니다. 클래스에 @comComponent 주석만 추가하면 됩니다

    다음은 컴포넌트를 소개하는 스캐닝 컴포넌트입니다

    @Component("conversionImpl")
    //其实默认的spring中的Bean id 为 conversionImpl(首字母小写)
    public class ConversionImpl implements Conversion {
        @Autowired
        private RedisClient redisClient;
    }
    로그인 후 복사

    위 예시는 소개하는 예시입니다. 기본 패키지는 스캔해야 하는 모든 하위 패키지를 나타내는 구성 요소 구성 요소입니다.

    공통점:

    @controller, @service, @repository, @comComponent로 주석이 달린 클래스는 모두 스프링 컨테이너에 포함되어 관리됩니다

    위 내용은 SpringBoot @Componet 주석 주입 실패를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:yisu.com
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿