Spring依賴注入之Spel 2019.11.02

SPEL:Spring Expression Language
1、通過${}可以對對象進行注入
2、格式:#{名稱}
3、使用Spel表達式可以用value的方式進行注入
4、property對類中某個屬性賦值 當利用到另外一個對象中的某個屬性可以使用:#{id.屬性名/方法名

5、依賴注入—自動裝配
語法:
裝配值:內部的屬性是什麼類型在Context中自己尋找類型
例:

<bean name="UserService" class="com.zzxtit.SpringBoot.ioc.di.UserService" autowire="byName">
	<property name="userName" value="123"></property>
</bean>

UserService內部代碼:

	private UserDao uDao;
	private String userName;
	public void setuDao(UserDao ud) {
		this.uDao = ud;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}

根據UserService中的屬性UserDao,自動在Beans中找UserDao的Bean,找到之後自動賦值。

6、在ioc內注入
String與基本數據類型不能自動裝配
7、一個Interface兩個實現類,計算機無法自動選擇,會出現報錯的情況,無法裝配
UserService中的UserDao類型?
8、autoWire:要麼全部裝配要麼不裝配(1、根據類型 2、根據名稱)
9、byType:根據對象內部屬性的類型去匹配各個Bean的class
byName 根據對象內部屬性 名稱 去匹配Bean中的name
基本數據類型可以通過property進行注入
10、這種方式非常雞肋,基本不用
——————————————————————————
11、自動掃描註冊
1、配置提示,引入context
2、通過包自動尋找對應xsd
3、Spring四個註解:
@Controller 控制層,就是action/do層
@Service 業務邏輯層,就是我們的service層
@Repository 持久層,就是我們常說的DAO層
@Component 它在你確定不了事哪一個層的時候使用。

@Autowried
Ioc容器內找到一個實現類,註冊,找到多個,報錯
先通過類型尋找,然後通過Name進行尋找
@Qualifier(“userOracleDao”)
指定尋找的ID
例:

private String userName;
	
	@Autowired
	//@Qualifier("userOracleDao")
	private UserDao userDao;

	
	/**
	 * @return the userDao
	 */
	public UserDao getUserDao() {
		return userDao;
	}

在set方法上進行註解,一樣可以進行獲取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章