Spring框架02 IOC和AOP

依赖注入DI:

1. IOCDI的概念

* IOC -- Inverse of Control,控制反转,将对象的创建权反转给Spring!!

* DI -- Dependency Injection,依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中!!

2.  DI(依赖注入)

* 例如:如果UserServiceImpl的实现类中有一个属性,那么使用Spring框架的IOC功能时,可以通过依赖注入把该属性的值传入进来!!

* 具体的配置如下

<bean id="us" class="com.itheima.demo1.UserServiceImpl">

<property name="uname" value="小风"/>

</bean>

Spring框架的属性注入:

    

1. 对于类成员变量,常用的注入方式有两种

* 构造函数注入

* 属性setter方法注入

2. Spring框架中提供了前两种的属性注入的方式

1. 构造方法的注入方式,两步

* 编写Java的类,提供构造方法

public class Car {

private String name;

private double money;

public Car(String name, double money) {

this.name = name;

this.money = money;

}

@Override

public String toString() {

return "Car [name=" + name + ", money=" + money + "]";

}

}

* 编写配置文件

<bean id="car" class="com.itheima.demo4.Car">

<constructor-arg name="name" value="大奔"/>

<constructor-arg name="money" value="100"/>

</bean>

2. 属性的setter方法的注入方式

* 编写Java的类,提供属性和对应的set方法即可

* 编写配置文件

3. 如果Java类的属性是另一个Java的类,那么需要怎么来注入值呢?

* <property name="name" rel="具体的BeanID或者name的值"/>

* 例如:

<bean id="person" class="com.itheima.demo4.Person">

<property name="pname" value="美美"/>

<property name="car2" ref="car2"/>

</bean>

 

 

Spring3.0提供了一种:SpEL注入方式(了解):

1. SpELSpring Expression LanguageSpring的表达式语言,有一些自己的语法

2. 语法

* #{SpEL}

3. 例如如下的代码

<!-- SpEL的方式 -->

<bean id="person" class="com.itheima.demo4.Person">

<property name="pname" value="#{'小风'}"/>

<property name="car2" value="#{car2}"/>

</bean>

4. 还支持调用类中的属性或者方法

* 定义类和方法,例如

public class CarInfo {

public String getCarname(){

return "奇瑞QQ";

}

}

数组,集合(List,Set,Map)Properties等的注入:

1. 如果是数组或者List集合,注入配置文件的方式是一样的

<bean id="collectionBean" class="com.itheima.demo5.CollectionBean">

<property name="arrs">

<list>

<value>美美</value>

<value>小风</value>

</list>

</property>

</bean>

2. 如果是Set集合,注入的配置文件方式如下:

<property name="sets">

<set>

<value>哈哈</value>

<value>呵呵</value>

</set>

</property>

3. 如果是Map集合,注入的配置方式如下:

<property name="map">

<map>

<entry key="老王2" value="38"/>

<entry key="凤姐" value="38"/>

<entry key="如花" value="29"/>

</map>

</property>

4. 如果是properties属性文件的方式,注入的配置如下:

<property name="pro">

<props>

<prop key="uname">root</prop>

<prop key="pass">123</prop>

</props>

</property>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值