spring

1、spring依赖jar
 * SPRING_HOME/dist/spring.jar
 * SPRING_HOME/lib/jakarta-commons/commons-logging.jar
 * SPRING_HOME/lib/log4j/log4j-1.2.14.jar


2、在UserManagerImpl中提供构造函数或setter方法,spring将实例化好的UserDao实现注入给我们

3、让spring管理我们的对象创建和依赖,必须在spring配置中进行定义

4、编写客户端


spring Ioc容器的关键点:
 * 必须将被管理的对象定义到spring配置文件中
 * 必须定义构造函数或set方法,让spring将对象注入过来
 
5.
  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>
 
 <bean id="bean2" class="com.bjsxt.spring.Bean2">
  <property name="bean3" ref="bean3"/>
  <property name="bean4">
   <ref bean="bean4"/>
  </property> 
  <property name="bean5" ref="bean5"/>
 </bean>
 

 


 
6.
  什么是属性编辑器,作用?
 * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入
 spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器
 
 * 如何定义属性编辑器?
  * 继承PropertyEditorSupport类,覆写setAsText()方法,参见:

                 public void setAsText(String text) throws IllegalArgumentException {
  System.out.println("UtilDatePropertyEditor.saveAsText() -- text=" + text);
  
  SimpleDateFormat sdf = new SimpleDateFormat(format);
  try {
   Date d = sdf.parse(text);
   this.setValue(d);
  } catch (ParseException e) {
   e.printStackTrace();
  }
 }


         
  * 将属性编辑器注册到spring中,参见:

        <!-- 定义属性编辑器 -->     
 <
bean id="customEditorConfigurer" class="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> 

 

7.  
   依赖对象的注入方式,可以采用:
 * 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="bean4" class="com.bjsxt.spring.Bean4" parent="beanAbstract"/>
    
  
8. 

根据名称自动装配default-autowire="byName
根据类型自动装配default-autowire="byType" 

9.
spring Bean的作用域:
 
scope可以取值: 
 * singleton:每次调用getBean的时候返回相同的实例
 * prototype:每次调用getBean的时候返回不同的实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值