ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring Annotation
    Spring 2020. 1. 22. 18:02

    key=value 형태의 데이터를 등록하고 사용할 때는 java.util.Properties 라는 컬렉션을 사용하며,<props> 엘리먼트 사용

     

    <property name="">

    <props>

    <prop key="고길동"> 서울시  </prop>

    </props>

    </property>

     

    어노테이션 설정을 추가하기 위해선 네임스페이스에서 Context 추가 후 .

     

    <context:component-scan base-package = ""> 엘리먼트를 정의해야 한다.

     

    그렇게하면 스프링 컨테이너는 클래스 패스에 있는 클래스들을 스캔 @Component가 설정된 클래스 들을 자동으로 객체 생성. 

     

     

    어노테이션 또한 기본 생성자가 당연히 필요하고, bean id = "" 처럼 @Component(id)를 해야 클라이언트가 스프링 컨테이너에게 요청할수 있겠지.

     

    만약 id나 name 속성을 지정하지 않았다면? 스프링 컨테이너가 자동으로 이름을 설정.

    이름은 클래스 이름의 첫글자를 소문자로 변경하기만 하면 된다. 

     

    @Autowired : 대부분 메머변수 위에 선언하여 사용. 스프링 컨테이너가 Autowired를 확인하는 순간 해당 변수의 타입을 체크 , 그타입의 객체가 메모리에 존재하는지 확인 후에 , 그 객체를 변수에 주입한다.

     

    @Qualifier :  같은 타입의 객체가 두 개 이상일때, 지정자로 사용. 

     

    @Autowired

     @Qualifier("객체의 이름") 이런식으로 객체의 이름을 넣어준다. 여기서 객체의 이름이란 @Component("여기 이름")  

     

    @Resource : 변수의 타입을 기준으로 의존성 주입처리를 한 Autowired와 다르게, 객체의 이름을 이용하여 의존성 주입을 처리.

        @Resource(name="apple") 식으로 Component 안에 있는 이름을 사용해서 해줌. 

    @Inject또한 이름을 기반으로 의존성 주입 처리.

     

    @Component 를 상속하여 세 개의 어노테이션을 추가로 제공

     

    @Service :비즈니스 로직을 처리하는 클래스

    @Controller : 사용자 요청을 제어하는 클래스

    @Repository : DB 연동을 처리하는DAO 클래스

     

    'Spring' 카테고리의 다른 글

    AOP(execution)  (0) 2020.01.27
    AOP  (0) 2020.01.27
    Spring Setter  (0) 2020.01.22
    Spring Bean  (0) 2020.01.22
    Spring Container  (0) 2020.01.21
Designed by Tistory.