spring 주석 기반 자동 조립
5455 단어 spring 학습 총화
세 가지 주해 의 사용 을 Hello World 의 예 로 보 여 드 리 겠 습 니 다. 먼저 테스트 에 사용 할 hello World 클래스 를 준비 하고 Spring 프로필 에 설정 합 니 다.
package com.autowired;
/**
* Created by PLEI on 7/6/2017.
*/
public class HelloWorld {
public HelloWorld(){
System.out.println("HelloWorld init.........");
}
public void sayHello(){
System.out.println("hellowWorld!....");
}
}
spring 프로필 에 설정
1.@AutoWired:
@ AutoWired 주 해 는 속성 적 으로 도 사용 할 수 있 고 방법 적 으로 도 사용 할 수 있 습 니 다.
속성 상 사용
package com.test;
import com.autowired.HelloWorld;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Created by PLEI on 7/6/2017.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
public class AutowiredTest {
@Autowired
private HelloWorld helloWorld;
@Test
public void test() throws Exception{
helloWorld.sayHello();
}
}
방법 적 으로 사용 하 다
package com.test;
import com.autowired.HelloWorld;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Created by PLEI on 7/6/2017.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
public class AutowiredTest {
private HelloWorld helloWorld;
@Autowired
public void reyfangfa(HelloWorld helloWorld){
this.helloWorld=helloWorld;
}
@Test
public void test() throws Exception{
helloWorld.sayHello();
}
}
주의사항:
@ Autowired 는 클래스 에 따라 spring 용기 에서 인 스 턴 스 를 찾 아 자동 으로 조립 합 니 다. spring 에 같은 종류의 인 스 턴 스 가 여러 개 있 으 면 오 류 를 보고 합 니 다. @ Autowired 는 기본 적 인 상황 에서 조립 해 야 합 니 다. 조립 에 성공 하지 않 으 면 오 류 를 보고 할 수 있 습 니 다. 설정 을 통 해
@Autowired(required = false)
2.@Qualifier
@ Qualifier 는 일반적으로 @ AutoWired 와 조합 하여 사용 되 며, spring 용기 에서 클래스 를 통 해 찾 는 동시에 spring 에 설 정 된 bean 의 id 를 통 해 찾 습 니 다.
package com.test;
import com.autowired.HelloWorld;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Created by PLEI on 7/6/2017.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
public class AutowiredTest {
@Autowired
@Qualifier("helloWorld1")
private HelloWorld helloWorld;
@Test
public void test() throws Exception{
helloWorld.sayHello();
}
}
3.@Resource
@ Resource 가 sun 회사 에 제공 하 는 주 해 는 속성 과 방법 을 사용 할 수도 있 습 니 다. 자동 으로 조립 할 때 기본적으로 조립 류 의 이니셜 소문 자 문자열 을 사용 하여 용기 에서 인 스 턴 스 를 찾 아 조립 할 수 있 습 니 다.
package com.test;
import com.autowired.HelloWorld;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
/**
* Created by PLEI on 7/6/2017.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
public class AutowiredTest {
@Resource
private HelloWorld helloWorld;
@Test
public void test() throws Exception{
helloWorld.sayHello();
}
}
spring 프로필 의 id 를 지정 하여 인 스 턴 스 를 찾 아 조립 할 수도 있 습 니 다.
package com.test;
import com.autowired.HelloWorld;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
/**
* Created by PLEI on 7/6/2017.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:ApplicationContext.xml")
public class AutowiredTest {
@Resource(name="abc")
private HelloWorld helloWorld;
@Test
public void test() throws Exception{
helloWorld.sayHello();
}
}