@Component 외에 @Service 와 @Controller을 찾아봤더니
@Component가 있다
//////////////////////service///////////////////
package org.springframework.stereotype;
import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({java.lang.annotation.ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Service
{
public abstract String value();
}
//////////////////////controller/////////////////////////////
package org.springframework.stereotype;
import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({java.lang.annotation.ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Controller
{
public abstract String value();
}
//////////////////////////////////////////////////////
@Component 어노테이션을 클래스 적용하면?
<context:component-scan> 태그를 이용해서
스프링이 클래스를 검색할 패키지를 지정함
*스캔의 범위 지정
context:include|exclude type="regex"|"aspectj"|"anotaion"|"assignable"
regex" 클래스이름이 정규표현식에 매칭되는지
expression = kr\.co\.gee.*;
"aspectj" AspectJ의 표현식에 매칭되는지
expression = kr,co..Service.*
"anotaion" 클래스에 지정한 어노테이션이름이 매칭되는지
expression = kr,co.gee.Service.?Annotaion
"assignable" 클래스가 지정한타입이 매칭되는지
expression = kr,co.gee.Service.?Class
<context:component-scan> 태그가
@Component , @Required , @Autowired 이 함께 적용됨
그래서 검색된 클래스를 bean으로 등록할때 클래스의
이름의 첫자를 소문자로 바꾸고 사용한다
Gee->gee
이게 싫다면 @Component("Gee") 라고 써준다
스프링의 빈 범위는 default값은 singleton 이다
@Scope를 이용해 범위 변경가능
출처 : Smile virus .. http://joke00.tistory.com/162
ibatis 에서 mybatis 변경 (0) | 2015.06.23 |
---|---|
웹로직 Unable to obtain lock on *.lok Server may already be running (0) | 2015.06.18 |
오라클 데이터베이스 링크 사용방법 (0) | 2015.06.16 |
오라클 프로시저 사용자 정의 예외 , raise_application_error 프로시저 (0) | 2015.06.12 |
마이플랫폼 자바 연동하는 방법 (0) | 2015.06.11 |