承接上文

引用其他对象或类型的成员


.net篇(环境为vs2012+Spring.Core.dll v1.31

public class Person {
public string Name { get; set; }
public static int Age { get; set; }
public string sex;
public static int Add(int x, int y){
return x + y;
}
public int Add(int x, int y,int z){
return x + y+z;
}
}
   <object id="person" type="SpringBase.Person,SpringBase">
<property name="Name" value="cnljli" />
<property name="Age" value="1"/>
<property name="sex" value="0"/>
</object>
<object id="theName"
type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
<property name="TargetObject" ref="person"/>
<property name="TargetProperty" value="Name"/>
</object>
<object id="theAge"
type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
<property name="StaticProperty" value="SpringBase.Person.Age"/>
</object>
<object id="thesex"
type="Spring.Objects.Factory.Config.FieldRetrievingFactoryObject, Spring.Core">
<property name="TargetObject" ref="person"/>
<property name="TargetField" value="sex"/>
</object>
<object id="theadd1"
type="Spring.Objects.Factory.Config.MethodInvokingFactoryObject, Spring.Core">
<property name="TargetType" value="SpringBase.Person,SpringBase"/>
<property name="TargetMethod" value="Add"/>
<property name="Arguments">
<list>
<value>1</value>
<value>2</value>
</list>
</property>
</object>
<object id="theadd2"
type="Spring.Objects.Factory.Config.MethodInvokingFactoryObject, Spring.Core">
<property name="TargetObject" ref="person"/>
<property name="TargetMethod" value="Add"/>
<property name="NamedArguments">
<dictionary>
<entry key="x" value="1" />
<entry key="y" value="2" />
<entry key="z" value="3" />
</dictionary>
</property>
</object>
  1. StaticProperty的值必须填完整
  2. Arguments的值的时候是从上往下匹配,NamedArguments是通过键值对匹配

java篇(环境为Maven+Jdk1.7+IntelliJ IDEA 12.1.4

package springdemo;
public class factoryObject {
private String name;
public static Integer age;
public String sex;
public static int Add(int x, int y) {
return x + y;
}
public static Integer getAge() {
return age;
}
public static void setAge(Integer age) {
factoryObject.age = age;
}
public int Add(int x, int y, int z) {
return x + y + z;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
    <bean id="person" class="springdemo.factoryObject">
<property name="name" value="cnljli"/>
<property name="age" value="1"/>
<property name="sex" value="0"/>
</bean>
<bean id="theName"
class="org.springframework.beans.factory.config.PropertyPathFactoryBean">
<property name="targetBeanName" value="person"/>
<property name="propertyPath" value="name"/>
</bean>
<bean id="theAge"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<property name="staticField" value="springdemo.factoryObject.age"/>
</bean>
<bean id="thesex"
class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<property name="TargetObject" ref="person"/>
<property name="targetField" value="sex"/>
</bean>
<bean id="theadd1"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="springdemo.factoryObject"/>
<property name="targetMethod" value="Add"/>
<property name="arguments">
<list>
<value>1</value>
<value>2</value>
</list>
</property>
</bean>
<bean id="theadd2"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="person"/>
<property name="targetMethod" value="Add"/>
<property name="arguments">
<list>
<value>1</value>
<value>2</value>
<value>3</value>
</list>
</property>
</bean>
  1. 字段必须有get和set的方法

javaCsharp的共同点

  1. theadd1是静态方法,theadd2为实例方法
  2. 就是标签的name几乎一样
  3. 分别的效果是获取属性、静态字段(csharp为静态属性)、获取字段、静态方法返回、实例方法返回

Ⅴ.spring的点点滴滴--引用其他对象或类型的成员的更多相关文章

  1. Ⅵ.spring的点点滴滴--自定义类型转换器

    承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...

  2. Ⅳspring的点点滴滴--方法和事件

    承接上文 方法和事件 .net篇(环境为vs2012+Spring.Core.dll v1.31) public abstract class MethodDemo { protected abstr ...

  3. Java 超类引用子类对象的示例代码

    动态方法分配 dynamic method dispatch 一个被重写的方法的调用会在运行时解析,而不是编译时解析 Java 会根据在调用发生时引用的对象的类型来判断所要执行的方法 public c ...

  4. Ⅱ.spring的点点滴滴--对象

    承接上文 对象的各种实例化 .net篇(环境为vs2012+Spring.Core.dll) 修改原来的PersonDao对象为 public class PersonDao : IPersonDao ...

  5. Ⅹ.spring的点点滴滴--IObjectPostProcessor(对象后处理器)

    承接上文 IObjectPostProcessor(对象后处理器) 前提是实现接口的对象注册给当前容器 C#: 通过继承AbstractObjectFactory对象的AddObjectPostPro ...

  6. Ⅶ.spring的点点滴滴--自定义对象行为

    承接上文 自定义对象行为 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class lifeCycle : Spring.Objects.Factory. ...

  7. Ⅷ.spring的点点滴滴--抽象对象和子对象

    承接上文 抽象对象和子对象 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class parent { public string Name { get; ...

  8. Spring根据XML配置文件注入对象类型属性

    这里有dao.service和Servlet三个地方 通过配过文件xml生成对象,并注入对象类型的属性,降低耦合 dao文件代码: package com.swift; public class Da ...

  9. Ⅲ.spring的点点滴滴--赋值

    承接上文 对象的赋值(调用方式都一样不再阐述) .net篇(环境为vs2012+Spring.Core.dll v1.31) public class PropertyDemo{ public Sys ...

随机推荐

  1. Delphi XE5 android 图解为Android应用制作签名

    本文摘自 http://redboy136.blog.163.com/blog/static/107188432201381872820132 要发布android应用,必须做签名的.看一下具体的操作 ...

  2. JavaScript中的Function类型浅析

    1. Function类型是js中引用类型之一,每个函数实际上都是Function类型的实例对象,具有自己的属性和方法.正因为函数式对象,所以函数名实际上也是一个指向函数对象的指针. 2. 常用的函数 ...

  3. sjtu1585 oil

    Description Crystal家的公司最近承包了一个大油田.整块油田为一个矩形区域,被划分为\(n \times m\)个小块. Crystal亲自调查了每个小块的石油储备量.这些数据表示为\ ...

  4. csuoj 1351: Tree Counting

    这是一个动态规划的题: 当初想到要用dp,但是一直想不到状态转移的方程: 题解上的原话: 动态规划,设 g[i]表示总结点数为 i 的方案种数,另设 f[i][j]表示各个孩子的总结点数为i,孩子的个 ...

  5. ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。

    http://blog.csdn.net/fox123871/article/details/8165431 session是工作在你的应用程序进程中的.asp.net进程.iis往往会在20分钟之后 ...

  6. JavaScript 按回车键提交搜索表单 easyui ajax方式

    <!-- 搜索框 --> <form id="bUserSearchForm" style="padding:8px;" onkeydown= ...

  7. MSSql2008打开企业管理器出错,具体显示提示无法识别的配置节 system.serviceModel。

    MSSql2008打开企业管理器出错详细信息: 标题: 已注册的服务器 ------------------------------   无法读取此系统上以前注册的服务器的列表.请在“已注册的服务器” ...

  8. 李洪强iOS开发之-环信05_EaseUI 使用指南

    李洪强iOS开发之-环信05_EaseUI 使用指南 EaseUI 使用指南 简介 EaseUI 封装了 IM 功能常用的控件(如聊天会话.会话列表.联系人列表).旨在帮助开发者快速集成环信 SDK. ...

  9. Android 动态背景的实现以及SurfaceView中添加EditText控件

    首先还是一贯作风,我们先看案例: \ 静态图看不出来效果,如果用过此软件(扎客)的同学们都知道,她的背景会动.怎么样,是不是觉得很时尚,起码比静态的要好(个人观点).其实实现起来并不复杂,这个如果让做 ...

  10. Oracle从11.2.0.2开始,数据库补丁包是一个完整安装包(转)

    从11.2.0.2开始,数据库补丁包是一个完整安装包.也就是说:比如要打11.2.0.2的补丁包,直接用11.2.0.2包来安装就可以了,不需要像10G一样先安装数据库软件再来打补丁包. 如果已经安装 ...