天天看點

第2章 裝配[email protected]注解---筆記2

概述:

用的廣泛的注解@Autowired

1.可以用于到字段上

2.setter方法上

3.構造方法上

直接上代碼

package learn.chapter2;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class GirlSong {

	//@Autowired
	private CompactDisc compactDisc;
	
	@Autowired
	public GirlSong(CompactDisc compactDisc) {
		this.compactDisc = compactDisc;
	}

	public CompactDisc getCompactDisc() {
		return compactDisc;
	}
	//@Autowired
	public void setCompactDisc(CompactDisc compactDisc) {
		this.compactDisc = compactDisc;
	}
	
}
           

測試代碼

package learn.chapter;

import static org.junit.Assert.assertNotNull;

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;

import learn.chapter2.CDPlayerConfig;
import learn.chapter2.GirlSong;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayerConfig.class)
public class AutowiredTest {

	@Autowired
	private GirlSong girlSong;
	
	@Test
	public void CompactDiscIsNotNull(){
		assertNotNull(girlSong.getCompactDisc());
	}
}
           

總結:你可以依次注釋字段、構造方法,setter的方法上的@Autowired,都可以注入, @ContextConfiguration() 加載java配置檔案

@Autowired(required=false) 有個預設屬性 required 如果為false如果沒有候選者,将會不會注入,也不會報錯,這樣很危險,是以它預設是required=true

繼續閱讀