Annotation 사용시 Bean.xml에 Context Namespace 필요하다. 따라서 bean -> xmls:context ~ 를 추가해주면된다. 또한 표준 어노테이션을 사용하려면 해당 어노테이션이 정의되어 있는 JAR파일을 불러와야하는데 이 같은 경우 pom.xml ( Maven 기준 ), 에 아래 Dependency를 추가해주면된다.
컴포넌트를 제외한 어노테이션만 쓸 경우 : <context:annotation-config />
컴포넌트를 포함한 어노테이션을 쓸 경우 : <context:component-scan base-package="com.sds.order" />
JSR-330
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
JSR-250
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
Annotation
의존성 주입
@Autowired : Spring
@Inject : JSR-330
@Resource : JSR-250
해당 빈이 없으면 Null처리
@Autowired(required = false)
해당 옵션은 Spring에서만 존재
의존성 주입시 주입 대상 지정
@Qualifier("customerRepository") : Spring
@Named("customerRepository") : JSR-330
@Resource(name = "custoemrRepository") : JSR-250, 어노테이션은 존재하지않고 주입시 옵션으로 지정
빈 생성시 및 제거시 호출 메서드 지정 (JSR-250 에서만 ^^)
@PostConstruct
@PreDestroy
필드 값 주입
@Value("testValue") : JSR-330
Util 주입
@Resource
private Properties properties;
방법 1
<util:properties id="properties">
<prop key="driverClassName">com.mysql.jdbc.Driver</prop>
<prop key="url">jdbc:mysql://localhost:3306/order_system</prop>
<prop key="username">root</prop>
<prop key="password">1234</prop>
</util:properties>
방법 2
<util:properties id="properties" location="classpath:props.properties"></util:properties>
따로 properties를 따로 만들어 주면 된다.
Component Annotation
1. @Component
2. @Service
3. @Repository
4. @Controller
'웹 프로그래밍 > Spring Framework' 카테고리의 다른 글
Spring Project Defualt POM.XML (Dependency) (0) | 2015.07.22 |
---|---|
[Spring] 왜 LAS에 Biz패키지가 있는 걸까? (0) | 2015.07.09 |
[Spring Framework] Repository DI Solution (0) | 2015.07.07 |
[Spring]스프링 3.1 라이브러리 다운로드 [Maven을 사용하지 않고!] (0) | 2015.06.26 |
[Java] 이름 붙은 반복문 (0) | 2014.09.24 |