- Spring教程_编程入门自学教程_菜鸟教程-免费教程分享
菜鸟一记
笔记
教程简介Spring框架是一个开放源代码的J2EE应用程序框架,由RodJohnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweightcontainer)。Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及WebMVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web
- P2P中四大算法之Chord算法原理
宋雾代
Chrod算法是P2P中的四大算法之一,是有MIT(麻省理工学院)于2001年提出,其他三大算法分别是:CANPastryTapestryChord的目的是提供一种能在P2P网络快速定位资源的的算法,Cord并不关心资源是如何存储的,只是从算法层面研究资源的取得,因此Chord的API就简单到只有一个set、get。Chord是什么?Chord是一个算法,也是一个协议。作为一个算法,Chord可以
- Tapestry框架概述
Meiracle
tapestry
Tapestry带来了真正的Javaweb应用程序OOP编程,摘自《深入浅出Tapestry》中的一句话。这本书也是我学习Tapestry的参考之一,其他参考资料如《Tapestryinaction》《enjoywebdevwithtapestry》《Tapestry开发指南》等等也非常不错。在此,把在学习Tapestry过程当中当中的一些经验和大家分享。Tapestry与其他诸如strutssp
- 第八章 Spring MVC源码分析笔记
Hankin晚风
Spring框架源码解读SpringMVC源码分析
一、基础概念SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。Spring
- Spring3 MVC - 3到Spring MVC框架简介
zyg603196214
Spring
Spring3MVC框架简介SpringMVC是Spring的框架的Web组件。它提供了丰富的功能,为建设强大的Web应用程序。SpringMVC框架的架构,并在这样的高度可配置的方式,每一块的逻辑和功能设计。此外Spring可以毫不费力地与其他流行的Web框架,如Struts,WebWork的,的JavaServerFaces和Tapestry集成。这意味着,你甚至可以告诉Spring使用Web
- 2020-04-15 spring mvc流程图
小白白程序猿
SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。与之相反的是基于组件的、事件驱动的Web框架,如Tapestry、JSF等。SpringWebMVC也是服务到工作
- 如何选择Web开发框架
WenGuoLiang
如何选择Web开发框架开发框架的选择,始终是个仁者见仁、智者见智的事情。尤其是Web层的开发框架,数量非常多,而且各有特色,如:Struts、WebWork、SpringMVC、Tapestry、JSF、WebPage3.0……等等。下面先来看看为什么要使用Web开发框架一:使用框架的必然性框架,即framework。其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成
- Android 图表库收藏
geaosu
https://github.com/Nightonke/CoCoinhttps://github.com/xcltapestry/XCL-Chartshttps://github.com/PhilJay/MPAndroidChart很多人都用这个库https://github.com/lecho/hellocharts-androidhttps://github.com/diogobernard
- Coach母公司净亏2.9亿美元,中国人为啥都不买奢侈品了?
慕容随风
近日,旗下拥Coach、KateSpade等知名品牌的美国奢侈品集团Tapestry,发布了第四季度财报(截至2020年6月27日的3个月内),报告显示在截至2020年6月27日的三个月内,集团销售额较上年同期的15.1亿美元下降至7.15亿美元,净亏损2.94亿美元。新冠疫情影响下,奢侈品公司均受到猛烈冲击,显露出不同程度的下滑。被视为Tapestry集团最大竞争对手的MichaelKors(以
- tapestry5.3 框架中使用系统环境变量配置hibernate 数据库连接参数
问题描述写了个tapestry+spring+hibernate+mysql的demo应用,代码放在coding想部署在daocloud和tenxcloud两个docker云服务平台上但是数据库服务参数各不相同。官方给出的网上搜到的hibernate配置都是默认的那种即使用hibernate.cfg.xml文件,系统自动加载。我想要的是默认加载hibernate.cfg.xml同时判断环境变量中是
- Spring Modules
黄瓜和土豆
Springspringfreemarkertapestry领域模型模板引擎velocity
SpringModules包含一组用于扩展Spring框架的工具,附件和模块。SpringModules的核心目标是促进Spring与其它项目相集成而不需要打乱或扩大SpringCore。当前包括的模块有:Ant集成Flux产品套件集成HiveMind集成Lucene集成ApacheOJB集成O/RBroker集成OSWorkflow集成Tapestry集成支持声明式缓存服务包括EHCache,J
- 2019-07-25
铭信手工地毯
Gobelin挂毯的历史与现代GobelinTapestry挂毯是一种装饰性厚织物,用于装饰墙壁,家具和地板。使用更狭窄的定义,术语“挂毯”通常指用作墙壁装饰的手织纺织品。Gobelin挂毯是法国装饰艺术所能提供的最好的象征。该挂毯以法国制造商Gobelins制造,以一系列布料制造商和染色者的名字命名,他们在15世纪的巴黎创立了染料业务。该制表厂生产出具有卓越美感和品质的地毯,使其成为17世纪路易
- android studio webview js交互,Android Studio第三十七期 - webview与js交互
weixin_39849930
androidstudiowebviewjs交互
代码已经整理好,效果如下如图:地址:http://down.51cto.com/data/2048012//#include//intmain()//{//inta=1,n=1,s=1,sum=0;//while(n>>/****/packagecorner.app.pages.ajax;importjava.util.Date;importorg.apache.tapestry5.annotat
- Spring是什么意思?
Spring框架是一个开放源代码的J2EE应用程序框架,由RodJohnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweightcontainer)。Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及WebMVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合
- 测试左移 使用Find Security Bugs检查代码安全问题
测试开发Kevin
Devops开发安全测试测试开发安全架构安全性测试web安全
FindSecurityBugs是SpotsBug的插件,他主要用来做web和android应用的代码安全测试。目前可以检测出141种不同类型的安全漏洞。它支持大量的使用主流的框架和库的代码检测,如包括Spring-MVC,Struts,Tapestry等,并可以与IDE集成,可用于Eclipse,IntelliJ,AndroidStudio和NetBeans中的findbug并提供命令行接口以便
- Java Web Framework综述
Anson__Hu
Struts专题webjavainterceptorservletactiontapestry
Writtenby王海龙
[email protected].简介本文介绍JavaWebFramework的基本工作原理,和一些常用的开源WebMVCFramework(Struts,WebWork,Tapestry,Echo,JSF,Maverick,SpringMVC,Turbine,Cocoon,Barracuda)。Web开发的最重要的基本功是HTTP;JavaWeb开发的最重要的基本功是S
- find-sec-bugs
drawing818
简介find-sec-bugs即FindSecurityBugs,是SpotBugs的一款插件,用于JavaWeb应用程序的安全审核。特性1)135种bug模型可以检测超过816个独特的API签名的135种类型的漏洞。2)支持多种框架和库涵盖流行的框架,包括Spring-MVC、Struts和Tapestry等。3)IDE集成插件适用于Eclipse、IntelliJ、AndroidStudio和
- 夜听
大概在后天
Lifeisaneverevolvingtapestryoflessons,growthandexpansion,人生就是一系列各种各样不断变化的学习、成长和发展,andwhenyouaretrulytunedintothemessagesalongtheway,youfindyourlifetransformsinwaysyouneverthoughtpossible.当你仔细聆听人生路上的信息
- 人类历史上第一个推荐系统
chansonzhang
AIRecommenderSystemsAlgorithm推荐系统
让我们把时间推回到28年前那个风雨交加的夜晚,在一个小破屋里,几个老男人捣鼓出了人类历史上第一个推荐系统——Tapestry[1]这个成立于1970年的小破屋并不简单,在这里诞生了很多有趣的玩意,比如激光打印机、图形用户界面、以太网、数字视频、文字处理等等。今天要介绍的推荐系统,也许是他们觉得最微不足道的发明之一。这个小破屋的全名是XeroxPaloAltoResearchCenter,简称PAR
- 如何选择Web开发框架
bzwlq
java/jsp/asp开发
如何选择Web开发框架开发框架的选择,始终是个仁者见仁、智者见智的事情。尤其是Web层的开发框架,数量非常多,而且各有特色,如:Struts、WebWork、SpringMVC、Tapestry、JSF、WebPage3.0……等等。下面先来看看为什么要使用Web开发框架一:使用框架的必然性框架,即framework。其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成
- T5的两个demo
markyearhnet
Screencast#1HowarddemonstrateshowtosetupanewTapestry5projectinsideEclipse(usingtheMavenplugin).Healsodemonstratesliveclassreloading.Tapestry5TechnologyPreview--17Oct20065:04Screencast#2Howarddemonstra
- 验证框架jsValidation的使用
iteye_9841
JSValidation是强大灵活的客户端验证框架。在应用服务器或者开发框架不提供验证的情况下,例如,普通的JSP,ASP,PHP等开发,以及一些不提供验证支持的开发框架,如Tapestry,Velocity等,JSValidation提供了一种灵活的解决方案。与其他验证方式相比,它最大的优点在于独立与易于集成。纯JavaScript结构,可以很容易的集成到现有的应用中而不论现有的应用是基于什么语
- SpringMVC的运行流程+常用注解总结
Java架构师公社
Spring框架springspringbootjavavueSpringMVC
一、SpringMVC简介SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。与之相反的是基于组件的、事件驱动的Web框架,如Tapestry、JSF等。前端控制器是
- 《推荐系统实践》笔记
qq_1191691379
推荐系统机器学习数据挖掘人工智能
推荐类型:社会化推荐(根据好友推荐电影)、基于内容的推荐(根据演员找电影)、基于协同过滤的推荐(根据兴趣相似的人找电影);推荐应用:电商(如亚马逊)、电影和视频(如Netflix、YouTube)、音乐(如Pandora、Last.fm)、社交网络(如Facebook、Twitter)、阅读(如GoogleReader、Digg)、位置服务(如Foursquare)、邮件(如Tapestry)、广
- 如何选择Web开发框架
sanjtu
如何选择Web开发框架开发框架的选择,始终是个仁者见仁、智者见智的事情。尤其是Web层的开发框架,数量非常多,而且各有特色,如:Struts、WebWork、SpringMVC、Tapestry、JSF、WebPage3.0……等等。下面先来看看为什么要使用Web开发框架一:使用框架的必然性框架,即framework。其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成
- 几个开关于JAVA开源框架的选择链接
jinghui_cn
JAVA
1、在下面这个连接中,有常用的J2EE框架的介绍,包括jdon等。http://java-source.net/open-source/j2ee-frameworks2、在下面这个连接中有Struts、Turbine、Tapestry、WebWork、Cocoon、Spring、Maverick、SwingWeb等的介绍。收藏下来,供以后查阅。
- 款款服装设计平台 | 服装日报 | 2018-08-17
蓝天丶流云
本条讯息来源于“款款原创服装设计”公众号,查看更多资讯可微信搜索。1.Coach年底将在中国首次办秀母公司去年销售额大涨31%在买下手袋品牌KateSpade并更名为Tapestry后,Coach母公司开始加速奔跑。作为集团的核心品牌,Coach的业绩正随着重组战略的生效而加速复苏。期内,得益于北美市场低失业率和消费者购物欲望增强,Coach品牌在该地区的可比店铺增长率更是跑赢大市。其中,Coac
- SpringMVC框架和流程说明
danforn
WEB开发SpringMVC
SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。与之相反的是基于组件的、事件驱动的Web框架,如Tapestry、JSF等。SpringWebMVC也是服务到工作
- (A17)Tapestry Core :Aliases
chinajavawolf
Tapestry
本文翻译出处http://tapestry.apache.org/tapestry5/tapestry-core/guide/appstate.html本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。chinajavawolf导言Tapestry用尽一切手段以便你可以使用Inject标注在一个字段域上而无需提供额外数据,但仍然能正确提供对象和服务。在很多情况里,
- tapestry5.3 框架中使用系统环境变量配置hibernate 数据库连接参数
kevinzheng
tapestry5.3环境变量hibernate配置
问题描述写了个tapestry+spring+hibernate+mysql的demo应用,代码放在coding想部署在daocloud和tenxcloud两个docker云服务平台上但是数据库服务参数各不相同。官方给出的网上搜到的hibernate配置都是默认的那种即使用hibernate.cfg.xml文件,系统自动加载。我想要的是默认加载hibernate.cfg.xml同时判断环境变量中是
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 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
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。