Ⅴ.spring的点点滴滴--引用其他对象或类型的成员
承接上文
引用其他对象或类型的成员
.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>
- StaticProperty的值必须填完整
- 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>
- 字段必须有get和set的方法
java和Csharp的共同点
- theadd1是静态方法,theadd2为实例方法
- 就是标签的name几乎一样
- 分别的效果是获取属性、静态字段(csharp为静态属性)、获取字段、静态方法返回、实例方法返回
Ⅴ.spring的点点滴滴--引用其他对象或类型的成员的更多相关文章
- Ⅵ.spring的点点滴滴--自定义类型转换器
承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...
- Ⅳspring的点点滴滴--方法和事件
承接上文 方法和事件 .net篇(环境为vs2012+Spring.Core.dll v1.31) public abstract class MethodDemo { protected abstr ...
- Java 超类引用子类对象的示例代码
动态方法分配 dynamic method dispatch 一个被重写的方法的调用会在运行时解析,而不是编译时解析 Java 会根据在调用发生时引用的对象的类型来判断所要执行的方法 public c ...
- Ⅱ.spring的点点滴滴--对象
承接上文 对象的各种实例化 .net篇(环境为vs2012+Spring.Core.dll) 修改原来的PersonDao对象为 public class PersonDao : IPersonDao ...
- Ⅹ.spring的点点滴滴--IObjectPostProcessor(对象后处理器)
承接上文 IObjectPostProcessor(对象后处理器) 前提是实现接口的对象注册给当前容器 C#: 通过继承AbstractObjectFactory对象的AddObjectPostPro ...
- Ⅶ.spring的点点滴滴--自定义对象行为
承接上文 自定义对象行为 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class lifeCycle : Spring.Objects.Factory. ...
- Ⅷ.spring的点点滴滴--抽象对象和子对象
承接上文 抽象对象和子对象 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class parent { public string Name { get; ...
- Spring根据XML配置文件注入对象类型属性
这里有dao.service和Servlet三个地方 通过配过文件xml生成对象,并注入对象类型的属性,降低耦合 dao文件代码: package com.swift; public class Da ...
- Ⅲ.spring的点点滴滴--赋值
承接上文 对象的赋值(调用方式都一样不再阐述) .net篇(环境为vs2012+Spring.Core.dll v1.31) public class PropertyDemo{ public Sys ...
随机推荐
- 微软Hololens学院教程-Hologram 212-Voice(语音)【微软教程已经更新,本文是老版本】
这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...
- JSP页面之${fn:}内置函数
函数列表: 函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchStrin ...
- 备忘·添加SublimeText3右键菜单
因为用的sublimeText3是免安装版,打开未关联文件,略有麻烦,所以搜了一下,发现几种解决办法,其中INF文件的方法很喜欢,备份下 [Version] Signature="$Wind ...
- Java Portlet 规范概述
首先,解释几个基本的术语. 1)Portal Portal 是一种 web 应用,通常具有个性化.单点登录.来自不同源的内容聚合(aggregation)并提供信息系统表现层等特点.所谓聚合,是指将不 ...
- PHP漏洞全解(八)-HTTP响应拆分
本文主要介绍针对PHP网站HTTP响应拆分,站在攻击者的角度,为你演示HTTP响应拆分. HTTP请求的格式 1)请求信息:例如“Get /index.php HTTP/1.1”,请求index.ph ...
- Firefly是什么?有什么特点?
原地址:http://bbs.gameres.com/forum.php?mod=viewthread&tid=219285 Firefly是免费.开源.稳定.快速扩展.能 “热更新”的分布式 ...
- AHB总线和APB总线
AHB主要用于高性能模块(如CPU.DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作:非三态的实现方式:支持突发传输:支持分段传输:支持多个主控制器:可配置 ...
- unity博文搜集
一.综合篇 1. 脚本 unity3d脚本编程基础 2.Mecanim 使用Mecanim实现连击 3. 数学图形学 U3D需要用到的数学基础 2 4. shader 猫都能学会的Unity3D S ...
- Altium快捷键
M快捷键 PCB快捷键 编辑 视图
- Linux内存初始化
start_kernel -> setup_arch 在这个函数中我们主要看这几个函数. machine_specific_memory_setup max_low_pfn = setup_me ...