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