Spring boot 메모 쓰기(2)

목적



업무 효율화

DI(Dependency injection) 컨테이너란?



한마디로 말하면, "프로그램이 아닌 외부에서 인스턴스를 주입하는 것"= "의존성 주입"으로 번역됩니다.

new 연산자를 사용하여 프로그램 내에서 인스턴스를 만드는 대신 외부 기능으로 인스턴스를 만들고 사용할 수 있습니다.

SpringBoot에서는 DI(의존성 주입)를 이용한 설계가 채용되고 있어 코드의 의존성을 줄일 수 있습니다.

클래스의 인스턴스인 bean은 DI 컨테이너에 저장됩니다.

SpringBoot의 클래스간의 호출등은, DI 컨테이너에 등록된 Bean을 취득하는 것으로 실행됩니다.

표준 Bean을 등록하는 방법은 다음과 같습니다.
  • @Bean를 메서드에 부여합니다. 메소드의 반환값으로 지정한 클래스의 싱글톤이, DI 컨테이너에 등록된다
  • Bean 등록하려는 클래스에 @Component를 클래스에 부여합니다. 해당 클래스의 싱글 톤이 DI 컨테이너에 등록됨
  • API 선언인 @RestController나 환경 클래스 선언인 @Configurationt 등, 부여하는 것만으로 그 클래스의 Bean 등록이 된다.

  • SpringBoot를 시작할 때 @ComponentScan에서 지정한 패키지 아래를 DI 컨테이너를 읽을 대상으로 만듭니다.
    @SpringBootApplication
    /* demo.serviceとdemo.domain以下のうち、@componentやDI登録用アノテーションが
    付与されているクラス/メソッドをDIコンテナにBean登録する。 */
    @ComponentScan(
            scopedProxy = ScopedProxyMode.TARGET_CLASS,
            basePackages = {"demo.service","demo.domain"}
            )
    public class SBDataBaseDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SBDataBaseDemoApplication.class, args);
        }
    }
    

    DI 대상이 되는 주요 주석


    @Controller 컨트롤러 계층 클래스에 사용됩니다.@RestController WebAPI의 컨트롤러 계층 클래스에 사용됩니다. @Controller@ResponseBody의 조합입니다.@Service 서비스 계층 클래스에 사용됩니다. 주로 비즈니스 로직을 실행하는 클래스에 사용한다.@Repository 데이터 계층 클래스에 사용됩니다. 주로 DB 액세스하는 클래스에 사용한다.@Component 상기 이외에 DI 대상 클래스에 사용한다.



    참고



    Spring 주요 포인트

    htps // // 아츠우 b. 네 t/201509_sp린 g_f라메를 rk_오오 d_포인 ts/

    Spring Boot로 만드는 RESTful Web Service

    htps //w w. s에서 멋지다. 네 t / 와타루 h의 / sp 린 g fu st-2018-sp rin g
    htps : // 테라소아나오 rg. 기주 b. 이오/구이데네/5.0.1.ぇあせ/じゃ/あrちてcついれたい l/레 ST. HTML

    좋은 웹페이지 즐겨찾기