zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_PropertyPathFactoryBean

    <?xml version="1.0" encoding="GBK"?>
    <project name="spring" basedir="." default="">
        <property name="src" value="src"/>
        <property name="dest" value="classes"/>
    
        <path id="classpath">
            <fileset dir="../../lib">
                <include name="**/*.jar"/>
            </fileset>
            <pathelement path="${dest}"/>
        </path>
    
        <target name="compile" description="Compile all source code">
            <delete dir="${dest}"/>
            <mkdir dir="${dest}"/>
            <copy todir="${dest}">
                <fileset dir="${src}">
                    <exclude name="**/*.java"/>
                </fileset>        
            </copy>
            <javac destdir="${dest}" debug="true" includeantruntime="yes"
                deprecation="false" optimize="false" failonerror="true">
                <src path="${src}"/>
                <classpath refid="classpath"/>
                <compilerarg value="-Xlint:deprecation"/>
            </javac>
        </target>
    
        <target name="run" description="Run the main class" depends="compile">
            <java classname="lee.SpringTest" fork="yes" failonerror="true">
                <classpath refid="classpath"/>
            </java>
        </target>
    
    </project>
    <?xml version="1.0" encoding="GBK"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:util="http://www.springframework.org/schema/util"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util-4.0.xsd">
        <!--下面配置定义一个将要被引用的目标bean-->
        <bean id="person" class="org.crazyit.app.service.Person">
            <property name="age" value="30"/>
            <property name="son">
                <!-- 使用嵌套Bean定义setSon()方法的参数值 -->
                <bean class="org.crazyit.app.service.Son">
                    <property name="age" value="11" />
                </bean>
            </property>
        </bean>
    
        <!-- 将指定Bean实例的getter方法返回值定义成son1 Bean -->
        <bean id="son1" class=
            "org.springframework.beans.factory.config.PropertyPathFactoryBean">
            <!-- 确定目标Bean,指定son1 Bean来自哪个Bean的getter方法 -->
            <property name="targetBeanName" value="person"/>
            <!-- 指定son1 Bean来自目标bean的哪个getter方法,son代表getSon() -->
            <property name="propertyPath" value="son"/>
        </bean>
    
        <!-- 简化配置
        <util:property-path id="son1" path="person.son"/> -->
    
        <!-- 下面定义son2 Bean -->
        <bean id="son2" class="org.crazyit.app.service.Son">
            <property name="age">
                <!-- 使用嵌套Bean为调用setAge()方法指定参数值 -->
                <!-- 以下是访问指定Bean的getter方法的简单方式, 
                person.son.age代表获取person.getSon().getAge()-->
                <bean id="person.son.age" class=
                    "org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
            </property>
        </bean>
    
        <!-- 简化配置
        <bean id="son2" class="org.crazyit.app.service.Son">
            <property name="age">
                <util:property-path path="person.son.age"/>
            </property>
        </bean> -->
    
        <!-- 将基本数据类型的属性值定义成Bean实例 -->
        <bean id="theAge" class=
            "org.springframework.beans.factory.config.PropertyPathFactoryBean">
            <!-- 确定目标Bean,表明theAge Bean来自哪个Bean的getter方法的返回值 -->
            <property name="targetBeanName" value="person"/>
            <!-- 使用复合属性来指定getter方法。son.age代表getSon().getAge() -->
            <property name="propertyPath" value="son.age"/>
        </bean>
    
        <!-- 简化配置
        <util:property-path id="theAge" path="person.son.age"/> -->
    
        <!-- 将基本数据类型的属性值定义成Bean实例 -->
        <bean id="theAge2" class=
            "org.springframework.beans.factory.config.PropertyPathFactoryBean">
            <!-- 确定目标Bean,表明theAge2 Bean来自哪个Bean的属性。
                此处采用嵌套Bean定义目标Bean -->
            <property name="targetObject">
                <!-- 目标Bean不是容器中已经存在的Bean, 而是如下的嵌套Bean-->
                <bean class="org.crazyit.app.service.Person">
                    <property name="age" value="30"/>
                </bean>
            </property>
            <!-- 指定theAge2 Bean来自目标bean的哪个getter方法,age代表getAge() -->
            <property name="propertyPath" value="age"/>
        </bean>
    </beans>
    package lee;
    
    import org.springframework.context.*;
    import org.springframework.context.support.*;
    
    import org.crazyit.app.service.*;
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class SpringTest
    {
        public static void main(String[] args)
        {
            ApplicationContext ctx = new
                ClassPathXmlApplicationContext("beans.xml");
            System.out.println("系统获取的son1:"
                + ctx.getBean("son1"));
            System.out.println("系统获取son2:"
                + ctx.getBean("son2"));
            System.out.println("系统获取theAge的值:"
                + ctx.getBean("theAge"));
            System.out.println("系统获取theAge2的值:"
                + ctx.getBean("theAge2"));
        }
    }
    package org.crazyit.app.service;
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class Person
    {
        private int age;
        private Son son;
    
        // age的setter和getter方法
        public void setAge(int age)
        {
            this.age = age;
        }
        public int getAge()
        {
            return this.age;
        }
    
        // son的setter和getter方法
        public void setSon(Son son)
        {
            this.son = son;
        }
        public Son getSon()
        {
            return this.son;
        }
    
    }
    package org.crazyit.app.service;
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class Son
    {
        private int age;
    
        // age的setter和getter方法
        public void setAge(int age)
        {
            this.age = age;
        }
        public int getAge()
        {
            return this.age;
        }
    
        public String toString()
        {
            return "Son[age=" + age + "]";
        }
    }
  • 相关阅读:
    jQuery
    jquery操作滚动条滚动到指定元素位置 scrollTop
    javascript的offset、client、scroll使用方法
    js javascript:void(0) 真正含义
    Js中数组Array的用法
    javascript中typeof、undefined 和 null
    函数的参数是函数,函数中Ajax返回的回调函数中的函数运行
    xampp中php手动升级
    jQuery Mobile里xxx怎么用呀? (事件篇)
    eval解析JSON中的注意点
  • 原文地址:https://www.cnblogs.com/tszr/p/12371936.html
Copyright © 2011-2022 走看看