본문 바로가기

spring/Annotation

@component : @Service,@Repository,@Controller

스프링 설정 파일에서 아래와 같이 객체를 생성할수 있다.


<bean id="senderProcess" class="anno2_auto.SenderProcess"/>

<bean id="sender" class="anno2_auto.Sender"/>


하지만 위와 같은 방법 보다는 아래와 같이 자바에서 어노테이션을 사용하기도 하며 더 편하다. 실무에서도 더 많이 사용되는 방법이다.


:

@Service()

public class SenderProcess {

:


@Service 대신 @Component 어노테이션을 사용해도 되지만 가독성을 위해서(무슨 행위를 위한 클래스인지 구별하기 위해서) @Service나 @Repository 어노테이션을 사용해줌


물론 @Component 어노테이션을 사용해도 상관없다.


이렇게 생성하게 되면 궁금해지는 점이 하나있다.


설정파일에서 직접 명시해 줬던 id가 어노테이션을 사용하면 어떻게 설정되는가? 이다.


직접 설정하기 위해서 @Service() 의 괄호안에 직접 명시해주는 방법이 있다.


예를 들어


@Service("service")


라면


id가 service가 된다.


id 설정의 또다른 방법은 스프링에게 맡기는 방법이다.


@service() 같이 사용해서 괄호안에 id를 명시하지 않았다면 스프링이 알아서 id를 만들어주는데 그 규칙은 다음과 같다.


class 이름의 첫글자를 소문자로 한 class이름을 id로 사용한다.


예를 들어 아래와 같이


@Service()

public class TestClass{

}


라면 id는 testClass가 된다.


해당 객체를 사용하고자 한다면 testClass로 사용하면 된다.


다른 클래스에서 해당 클래스의 객체를 사용하고자 한다면


@Resource(name="testClass")

TestClass testClass;


라고 하면 스프링이 알아서 property injection을 해줄 것이다.




'spring > Annotation' 카테고리의 다른 글

@Value, Spring EL  (0) 2014.05.07
@Resource  (0) 2014.05.02
어노 테이션을 사용하기 위한 설정  (0) 2014.05.02
@Autowired  (2) 2014.05.02
@Required  (0) 2014.05.02