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方法上进行注解,一样可以进行获取

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