Spring Ioc

一 环境搭建:

1、spring依赖库


 * SPRING_HOME/dist/spring.jar
 * SPRING_HOME/lib/jakarta-commons/commons-logging.jar
 * SPRING_HOME/lib/log4j/log4j-1.2.14.jar

 

2 配置文件:

 

applicationContext.xml log4j.properties

3 spring Ioc容器的关键点:


 * 必须将被管理的对象定义到spring配置文件中,让spring管理我们的对象创建和依赖,必须在spring配置中进行定义
 * 必须定义构造函数或setter方法,让spring将对象注入过来

 

二 普通属性注入和依赖对象注入:

 

<bean id="bean1" class="com.bjsxt.spring.Bean1">

 <property name="strValue" value="Hello"/>

<!-- <property name="intValue" value="123"/> -->

<property name="intValue"> <value>123</value> </property>

 <property name="listValue">

<list>

<value>list1</value>

<value>list2</value>

</list>

</property>

<property name="setValue">

<set>

 <value>set1</value>

<value>set2</value>

</set>

</property>

<property name="arrayValue">

<list>

<value>array1</value>

<value>array2</value>

</list>

</property>

<property name="mapValue">

<map>

<entry key="k1" value="v1"/>

<entry key="k2" value="v2"/>

</map>

</property>

<property name="dateValue">

<value>2008-08-15</value>

</property>

</bean>

 

依赖对象的注入方式,可以采用:

 


* ref属性
 * <ref>标签
 * 内部<bean>来定义

  

 

如何将公共的注入定义描述出来?


 * 通过<bean>标签定义公共的属性,指定abstract=true
 * 具有相同属性的类在<bean>标签中指定其parent属性

 

<bean id="beanAbstract" abstract="true">

<property name="id" value="1000"/>

<property name="name" value="Jack"/>

</bean>

<bean id="bean3" class="com.bjsxt.spring.Bean3" parent="beanAbstract">

<property name="name" value="Tom"/>

<property name="password" value="123"/>

</bean>

 

 

 

可以将 applicationContext.xml 分解为多个文件,采用 CalssPathXmlApplicationContext(String[] configLocations);  同时configlocations 也可以采用*context.xml 类似格式。

 

三 什么是属性编辑器,作用?


 * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入
 spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器
 
 如何定义属性编辑器?


  * 继承PropertyEditorSupport类,覆写setAsText()方法,参见:UtilDatePropertyEditor.java
  * 将属性编辑器注册到spring中,参见:applicationContext-editor.xml
  

<!-- 定义属性编辑器 -->

<bean id="customEditorConfigurer" lass="org.springframework.beans.factory.config.CustomEditorConfigurer">

 

<property name="customEditors">

<map>

<entry key="java.util.Date">

<bean class="com.bjsxt.spring.UtilDatePropertyEditor">

<property name="format" value="yyyy-MM-dd"/>

</bean>

</entry>

</map>

</property>

</bean>

 

四  scope可以取值:

 
 * singleton:每次调用getBean的时候返回相同的实例
 * prototype:每次调用getBean的时候返回不同的实例
 
五 自动装配:

    

1 根据名字自动装配

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           default-autowire="byName"
           >

 

2 根据类型自动装配(快速开发阶段采用)

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           default-autowire="byType"
           >

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值