ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9. 스프링 어노테이션
    개발자 수업/Spring 2022. 1. 4. 22:59

    0. Bean 등록 메타정보 구성
        1) XML 단독 사용
            - 모든 Bean을 명시적으로 XML에 등록하는 방법
            - Bean 개수가 많아지면 XML 파일을 관리하기 번거로움
            - 설정파일을 공유해서 개발 -> 동시 수정, 충돌 ..
            - DI에 필요한 적절한 setter 메서드 반드시 존재해야 함   
        2) XML과 빈 스캐닝(Bean Scanning) 혼용
            - Bean으로 사용될 클래스에 특별한 어노테이션을 부여해주면 이런 클래스를 자동으로 찾아서 Bean으로 등록함 

    1. 스프링 어노테이션 (Annotation)
        1) 기존에 XML에서 빈 설정을 어노테이션을 이용해서 자바 코드에서 설정하는 방법
        2) 기능이 복잡해짐에 따라 XML에서 설정하는 것보다 유지보수에 유리함
        3) 현재 애플리케이션 개발 시 XML 설정 방법과 어노테이션 방법을 혼합해서 사용함

    2. 스프링 어노테이션 제공 클래스
        1) 브라우저 URL 요청 처리 어노테이션 클래스
            - DefaultAnnotationHandlerMapping
                : 클래스 레벨에서 @RequestMapping을 처리함
            - AnnotationMethodHandlerAdapter
                : 메서드 레벨에서 @RequestMapping을 처리함
                
        2) <context:component-scan>
            - 패키지 이름을 지정하면 애플리케이션 실행 시 해당 패키지에서 어노테이션으로 지정된 클래스를 빈으로 만들어줌
            - 예) <context:component-scan base-package="kr.co.ezenac">

        3) 여러 가지 스테레오 타입 어노테이션
            - @Controller : 스프링 컨테이너가 component-scan에 의해 지정한 클래스를 컨트롤러 빈으로 자동 변환함
                            <bean> 태그와 동일한 역할을 함
                            프리젠테이션 레이어, 웹 어플리케이션에서 웹 요청과 응답을 처리하는 클래스
            - @Service : 지정한 클래스를 서비스 빈으로 자동 변환함
                         서비스 레이어, 비즈니스 로직을 가진 클래스
            - @Repository : 지정한 클래스를 DAO 빈으로 자동 변환함
                            퍼시스턴스(persistence) 레이어, 영속성을 가지는 속성(파일, DB)을 가진 클래스
            - @component : 지정한 클래스를 빈으로 자동 변환함

    3. 스프링 어노테이션 이용한 로그인 기능
        1) 메서드에 @RequestParam 적용
            - 매개변수의 수가 많아지면 일일이 getParameter() 메서드를 이용하는 방법은 불편함
            - @RequestParam을 메서드에 적용하면 쉽게 값을 얻을 수 있음

        2) @RequestParam의 required 속성
            - @RequestParam 적용 시 required 속성을 생략하면 기본 값은 true임
                -> 메서드 호출 시 반드시 지정한 이름의 매개변수를 전달해야 함
            - @RequestParam 적용 시 required 속성을 false로 설정하면 
                -> 메서드 호출 시 지정한 이름의 매개변수가 전달되면 값을 저장하고 없으면 null을 할당함

        3) @RequestParam 이용해 Map에 매개변수 값 설정
            - 전송되는 매개변수의 수가 많을 경우 Map에 바로 저장해서 사용하면 편리함

        4) @ModelAttribute 이용해 VO에 매개변수 값 설정

        5) Model 클래스 이용해 값 전달
            - 메소드 호출 시 jsp로 값을 바로 바인딩하여 전달 가능함
            - addAttribute()로 데이터 바인딩함
            - Model 클래스는 따로 뷰 정보를 전달할 필요가 없을 때 사용

    4. @Autowired 이용해  빈 주입
        1) XML에서 빈을 설정한 후 애플리케이션이 실행될 때 빈을 주입해서 사용하면 XML 파일이 복잡해짐(관리 불편)
        2) @Autowired 특징
            - 코드에서 어노테이션으로 DI를 자동으로 수행함
            - 별도의 setter나 생성자 없이 속성에 빈 주입 가능함
            - 의존하는 객체를 자동으로 주입해주는 어노테이션임
            - 의존관계 주입(Dependency Injection)

    '개발자 수업 > Spring' 카테고리의 다른 글

    11. 타일즈(tiles)  (0) 2022.01.12
    10. 메이븐과 스프링  (0) 2022.01.07
    8. 스프링 트랜잭션  (0) 2022.01.04
    7. MyBatis Framework 사용 (수정중)  (0) 2021.12.31
    6. Spring MVC  (0) 2021.12.30

    댓글