spring 주석 기반 자동 조립

5455 단어 spring 학습 총화
자동 조립 에 사용 되 는 주 해 는 주로 세 가지 가 있 습 니 다. @ AutoWired, @ Qualifier, @ Resource.
세 가지 주해 의 사용 을 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();
    }
}

좋은 웹페이지 즐겨찾기