500VIP源码下载
500VIP源码下载搭建:http://fanshubbs.com/thread-229-1-1.html
当使用这个demoService
的时候可以肯定的是一定有个DemoService的具体实现可供使用,DubboNamespaceHandler
中有这样一段代码:
1
|
registerBeanDefinitionParser("reference", new DubboBeanDefinitionParser(ReferenceBean.class,false));
|
解析上面配置在namespace dubbo下的reference。DubboBeanDefinitionParser
相关代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
public DubboBeanDefinitionParser(Class<?> beanClass, boolean required) {
this.beanClass = beanClass;
this.required = required;
}
public BeanDefinition parse(Element element, ParserContext parserContext) {
return parse(element, parserContext, beanClass, required);
}
// 关键部分
private static BeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass, boolean required) {
RootBeanDefinition beanDefinition = new RootBeanDefinition();
// 设置bean class,in this case it is ReferenceBean.class
beanDefinition.setBeanClass(beanClass);
beanDefinition.setLazyInit(false);
String id = element.getAttribute("id");
// some ops...
if (id != null && id.length() > 0) {
if (parserContext.getRegistry().containsBeanDefinition(id)) {
throw new IllegalStateException("Duplicate spring bean id " + id);
}
parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);
beanDefinition.getPropertyValues().addPropertyValue("id", id);
}
// some ops...
// 遍历setter and getter设置属性值
for (Method setter : beanClass.getMethods()) {
String name = setter.getName();
if (name.length() > 3 && name.startsWith("set")
&& Modifier.isPublic(setter.getModifiers())
&& setter.getParameterTypes().length == 1) {
Class<?> type = setter.getParameterTypes()[0];
String property = StringUtils.camelToSplitName(name.substring(3, 4).toLowerCase() + name.substring(4), "-");
if(...){
// some ops...
}else {
String value = element.getAttribute(property);
if (value != null) {
value = value.trim();
if (value.length() > 0) {
// 部分省略...
Object reference;
if (isPrimitive(type)) {
if ("async".equals(property) && "false".equals(value)
|| "timeout".equals(property) && "0".equals(value)
|| "delay".equals(property) && "0".equals(value)
|| "version".equals(property) && "0.0.0".equals(value)
|| "stat".equals(property) && "-1".equals(value)
|| "reliable".equals(property) && "false".equals(value)) {
// 兼容旧版本xsd中的default值
value = null;
}
reference = value;
}
// 大批省略...
// 这里会将interface这个attribute的值设置在ReferenceBean的父类ReferenceConfig的interfaceName上通过method:setInterface(String)
beanDefinition.getPropertyValues().addPropertyValue(property, reference);
}
}
}
}
}
}
// 省略...
return beanDefinition;
}
|
上面两个关键的属性值id,interface都设置在了bean上,后面会用到。ReferenceConfig中的settter:setInterface用来设置interface:
1
2
3
4
5
6
|
public void setInterface(String interfaceName) {
this.interfaceName = interfaceName;
if (id == null || id.length() == 0) {
id = interfaceName;
}
}
|
参考ReferenceBean Hierarchy:
《福运来源码下载》
《2017暴雪完整源码下载》:http://fanshubbs.com/thread-250-1-1.html
《拉菲源码分享下载》
500VIP源码下载相关推荐
- 500vip网全套源码下载 带精美手机版源码
500vip网全套源码下载 带精美手机版源码 源码说明: 今天给大家分享的源码这个源码是"500vip网全套源码下载 带精美手机版源码" ,以下所有截图均为本站源码 ...
- android源码下载方法 批量下载 基于windows os
安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...
- linux 浏览器源码下载,Android开发:图片浏览器源码
Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...
- 模仿Hibernate的逆向工程_java版_源码下载
在这篇blog:"Hibernate逆向工程原理_java版本"中谈到了Hibernate逆向工程原理. 我喜欢理论和实践相结合....so,今天我试着模仿hibernate的逆向 ...
- java验证码源码_Java通用验证码程序及应用示例(提供源码下载)
评论 # re: Java通用验证码程序及应用示例(提供源码下载) 2009-11-27 17:09 零全零美 多谢博主写出这么好的总结,如果能加上汉字验证码,会更完美! 回复 更多评论 # re ...
- spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)...
不多说,直接上干货! 前言 其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...
- I.MX6 android 源码下载
/************************************************************************** I.MX6 android 源码下载* 说明:* ...
- 9款精致HTML5/jQuery日历时钟控件源码下载(源码请见百度云) 链接:http://pan.baidu.com/s/1geIXe75 密码:7m4a...
现在的网页应用越来越丰富,我们在网页中填写日期和时间已经再也不用手动输入了,而是使用各种各样的日期时间选择控件,大部分样式华丽的日期选择和日历控件都是基于jQuery和HTML5的,比如今天要分享的这 ...
- php拼音模糊查询,PHP模糊查询技术实例分析【附源码下载】
本文实例讲述了PHP模糊查询技术.分享给大家供大家参考,具体如下: 简介 从本质上揭密PHP模糊查询技术 功能 根据输入的关键字查找相关用户 PHP用户查询器案例分析 课程目标 掌握PHP模糊技术的应 ...
- 通用社区登陆组件技术分享(开源)下篇:OAuth 源码下载及原理解说
原文http://www.cnblogs.com/cyq1162/archive/2012/11/07/2756848.html 上节内容: 1:通用社区登陆组件技术分享(开源)上篇:OAuth 授权 ...
最新文章
- 论文荐读 | NLP之Attention从入门到精通
- 用python玩转数据测试与作业_用Python玩转数据分析10
- 调试 Dockerfile - 每天5分钟玩转 Docker 容器技术(15)
- 在GridView里使用CheckBox
- window.location.href和window.location.replace
- Codeforces Round #131 (Div. 2) B. Hometask dp
- 红皮书--EOF与BOF
- python立方尾不变
- 【AI语音】九联UNT402A_通刷_纯净精简_免费线刷固件包
- 理工生文言文的致谢——小木虫
- 计算机系统动态库修复,一键修复!动态库文件 mfc100u.dll 修复使用说明
- 【windows】中下载并安装Python(简单明了)
- 压缩包的加密、去除密码、解密
- Android人生整理第二章:Java编程第一节-对象导论
- 微信公众号开发官方定制ui
- 学习OpenCV的学习笔记系列(三)显示图片及视频
- 解决Notepad--在ubuntu16.04无法运行问题
- office 2010安装
- 20151221-精典语录
- 表单手机号 邮箱 qq检验工具类
热门文章
- 容器技术—docker stack
- debian adsl上网
- 路演商业计划书PPT模板
- oracle 工具ODM,oracle ODM 数据挖掘笔记
- Java Web 高性能开发,第 2 部分: 前端的高性能
- CDH5安装过程中cloudera.server.cmf.Main: Server failed.
- 81章 老子1章到_三曜道长解读道德经: 信言不美 第81章
- 存储系统概述——SRAM静态随机存储器
- Character.isAlphabetic()方法判断中文字符时,返回值为true
- Camtasia 2019卸载-无痕强力卸载