Spring 笔记1

一.部署Spring:

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、拷贝spring配置文件到src下

3、拷贝log4j配置文件到src下

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

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

6、编写客户端


spring Ioc容器的关键点:
    * 必须将被管理的对象定义到spring配置文件中
    * 必须定义构造函数或setter方法,让spring将对象注入过来


二.实例1:自定义属性编辑器

1、spring的普通属性注入   
    参见:spring文档3.3章节
   
什么是属性编辑器,作用?
    * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入
    spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器
   
    * 如何定义属性编辑器?
        * 继承PropertyEditorSupport类,覆写setAsText()方法
        * 将属性编辑器注册到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>
  <!-- 定义属性编辑器 结束-->  
 

依赖对象的注入方式,可以采用:
    * ref属性
    * <ref>标签
    * 内部<bean>来定义
   
如何将公共的注入定义描述出来?
    * 通过<bean>标签定义公共的属性,指定abstract=true

<bean id="beanAbstract" abstract="true">
   		<property name="id" value="1000"/>
   		<property name="name" value="Jack"/>
   </bean>
 

    * 具有相同属性的类在<bean>标签中指定其parent属性

<bean id="bean3" class="com.spring.Bean3" parent="beanAbstract">
              <!--不赋值则为上面的默认值-->
   		<property name="name" value="Tom"/>
   		<property name="password" value="123"/>
</bean>
 

Bean 的作用域

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

<bean id="bean1" class="com.spring.Bean1" scope="prototype"/>
 

根据名称自动装配

<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"
 >
 

根据类型自动装配

<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"
 >
   

 

你可能感兴趣的:(spring,AOP,bean,log4j,配置管理)