• [原]spring学习笔记6.补遗


    回到(原)spring学习笔记4.普通属性注入 这个例子中.
    我们在Bean1中的int的setter方法中添加一个打印:
    改成这样:
    1public void setIntValue(int intValue) {
    2    System.out.println("一旦注入就会打印.我是bean1的setInt方法");
    3    this.intValue = intValue;
    4}

    执行testInjection1我们会发现结果是:
     1sdfs2008/03/06
     2一旦注入就会打印.我是bean1的setInt方法
     3strValue依赖注入的值
     4intValue12311
     5listValue[list1, list2, list3]
     6setValue[set1, set2]
     7strArray[Ljava.lang.String;@4e280c
     8mapValue{key1=value1, key2=value2}
     9dateValueThu Mar 06 00:00:00 CST 2008
    10华丽的分割线-=-=-=-=-=-=-=-=-=-
    为什么会这样呢.
    我们看到第一行打印的是      sdfs2008/03/06
    可以知道,1.注入的时候最先执行的是编辑器.
    编辑器代码如下:
     1package com.zyl.spring;
     2
     3import java.beans.PropertyEditorSupport;
     4import java.text.SimpleDateFormat;
     5import java.util.Date;
     6
     7public class UtilDateEdit extends PropertyEditorSupport {
     8    //转换时间的功能
     9    private String format;
    10    public String getFormat() {
    11        return format;
    12    }

    13    public void setFormat(String format) {
    14        this.format = format;
    15    }

    16    //private String format="yyyy-MM-dd" ;
    17    public void setAsText(String text) throws IllegalArgumentException {
    18        //将传入的string 转为java.util.date
    19        System.out.println("sdfs"+text);
    20        SimpleDateFormat sdf= new SimpleDateFormat(format);
    21        
    22        try {
    23            Date date =sdf.parse(text);
    24            this.setValue(date);
    25        }
     catch (Exception e) {
    26            // TODO: handle exception
    27        }

    28        
    29        
    30    }

    31 
    32    
    33}

    34
    testInjection1的代码如下:
     1package test;
     2
     3import junit.framework.TestCase;
     4
     5import org.springframework.beans.factory.BeanFactory;
     6import org.springframework.context.support.ClassPathXmlApplicationContext;
     7
     8import com.zyl.spring.Bean1;
     9import com.zyl.spring.Bean2;
    10
    11
    12public class test extends TestCase {
    13    //
    14    public void testInjection1(){
    15        BeanFactory factory =new ClassPathXmlApplicationContext("gogogo-*.xml");//加上配置文件xml的名字
    16       
    17        Bean1 bean1=(Bean1)factory.getBean("bean11");//bean11为xml中取的id名字
    18        
    19        System.out.println("strValue"+ bean1.getStrValue());
    20        System.out.println("intValue"+ bean1.getIntValue());
    21        System.out.println("listValue"+ bean1.getListValue());
    22        System.out.println("setValue"+ bean1.getSetValue());
    23        System.out.println("strArray"+ bean1.getArrayValue());
    24        System.out.println("mapValue"+ bean1.getMapValue());
    25        System.out.println("dateValue"+ bean1.getDateValue());
    26        System.out.println("华丽的分割线-=-=-=-=-=-=-=-=-=-");
    27        
    28    }

    29/*
    30     public void testInjection2(){
    31        BeanFactory factory =new ClassPathXmlApplicationContext("gogogo-*.xml");//加上配置文件xml的名字
    32           
    33        Bean2 bean2=(Bean2)factory.getBean("bean2");//读取xml中id为bean2的东东
    34        
    35        System.out.println("bean2.bean3.id="+bean2.getBean3().getId());
    36        System.out.println("bean2.bean3.name="+bean2.getBean3().getName());
    37        System.out.println("bean2.bean3.password="+bean2.getBean3().getPassword());
    38        System.out.println("bean2.bean4.id="+bean2.getBean4().getId());
    39        System.out.println("bean2.bean4.name="+bean2.getBean4().getName());
    40        System.out.println("bean2.bean5.age="+bean2.getBean5().getAge());
    41    }
    42 
    43 */

    44}

    45
    2 .而在运行编辑器之后,运行的是Bean1中setter方法.
    3.而这之后,就是在xml中的属性值注入.以此我们可以更加理解spring的注入过程.
     
  • 相关阅读:
    在rhel6上安装Python 2.7和Python 3.3
    RHEL7 -- Linux搭建FTP虚拟用户
    RHCE7 -- IPv6
    RHEL7 -- nmcli的使用
    设置Adobe Reader打开PDF文件保持记忆功能
    iptalbes -F
    服务器IP地址后修改SQL Server配置
    配置SELINUX
    11G新特性 -- 分区表和增量统计信息
    11G新特性 -- Statistics Preferences
  • 原文地址:https://www.cnblogs.com/redcoatjk/p/3562433.html
Copyright © 2020-2023  润新知