Spring的Ioc(Inversion of Control)控制反转,优点是把代码的耦合度大大降低。Spring的框架能实现的是:开始代码之间的相互依赖控制权在自代码本身(一个对象需要另一个对象的时,都是在代码中new那个对象),Ioc是把控制权放在了容器里(即不需要代码自己去new那个对象,而是由Spring容器给创建那个对象)。
1,最简单的小例子 在beans.xml中
xmlns:xsi="" xsi:schemaLocation=" ">
|
ApplicationContext act = new ClassPathXmlApplicationContext"beans.xml");
act.getBean("text1"); //这样就可以得到PersonText的实例
|
2、在bean里的基本配置
<bean id="" class="" init-method="init" destroy-method="destroy" lazy-init="true" scope="prototype"></bean>
|
init-method指定在class里的初始化方法
destroy-method指定在class里销毁的方法,一般就是在容器关闭时,才掉此方法
lazy-init为true指延迟实例化,一般在单例模式时,容器加载实例就被创建。true就是在调用该实例是才创建
scope为作用域,不指定时,容器只创建一个该class实例。指定为protoytype时,没调用就创建一个新的class实例,所以当设置为prototype时,该实例为延迟加载
3、基本类型的注入
<bean id="" class=""> <property name="username" value="name"/> <property name="age" value="100" /> </bean>
|
在class类里有String username,Internet age这两个属性,并有set,get方法
4、Object的注入
<bean id="text1" class=""></bean> <bean id="text2" class="text2"> <property name="text1" ref="text1" /> </bean>
|
在text2类中需要一个text1这样的属性 可以用ref去指定bean节点。还可以下面这样
<bean id="text1" class="text1"> <property name="text1"> <bean class="text1"></bean> </property> </bean>
|
5、Map,Set,List,Properties的注入
<bean id="" class="">
aa
aaaaa
dagdf
</bean>
|
6、构造注入
java代码
class TextService{ private User user; //User 为自己定义的类 private String name;
public TextService(String name,User user){
this.name=name;
this.user = user;
}
...... }
|
xml代码:
<bean name="user" class="bean.User"> </bean>
|
阅读(684) | 评论(0) | 转发(0) |