Springside技术参考手册
SpringBlade开发手册说明书

Home欢迎使用SpringBlade,以下为快速导航。
1.SpringBlade开发手册2.SpringBlade会员计划3.开源版与商业版功能对比Release V3.7.0JDK 1.8+license Apache 2Spring Cloud2021Spring Boot 2.7Author Small Chill Copyright@BladeX若需要咨询商业版事宜,请添加我们的官方微信咨询哦功能开源版 ->点击前往商业版 ->点击前往1. 适用范围可用于个人学习使用,小微企业免费的架构方案可用于企业商业化架构,从小型到大型系统的完整架构方案2. 生产能力功能较少,需要花费时间与人力进行二开才能作为商业化架构功能完善,经过生产检验,很多功能开箱即用,可以直接进行商业化开发3. 更新频率更新频率低,一到二月更新一次版本,问题响应较慢更新频率高,随时会将新功能、bug修复推送至dev分支,问题响应较快4. 组件封装组件化封装较少,满足基本项目需求,若有新的需求还需自行开发集成组件化封装较多,提供更多demo集成,适应多种场景需求,提高开发效率5. 数据库种类仅支持Mysql 支持Mysql、PostgreSQL、Oracle、SqlServer、达梦、崖山,支持更多场景选择6. 鉴权方案采用自研Token方案,拓展受限采用Oauth2+自研Token方案,拓展集成灵活7. 多租户系统只有最基础的多租户功能对租户插件深度定制,支持多租户背景、域名、账号额度、过期时间等配置8. 多租户数据隔离只支持单数据库字段隔离支持数据库与租户一对一、一对多、多对多等灵活的模式,符合中国式租户需求9. 多租户对象存储只有简易的七牛、阿里云集成,无法动态配置集成七牛、阿里云、腾讯云、minio等对象存储,支持租户在线配置到私有库10. 多租户短信服务暂无短信封装集成七牛、阿里云、腾讯云、云片等短信服务,支持租户在线配置到私有库11. 动态数据权限暂无数据权限高度灵活,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效12. 动态接口权限暂无接口权限高度灵活,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效13. 全能代码生成器暂无全能代码生成器支持自定义模型、模版 、业务建模,在线配置,不再为重复工作发愁14. 钉钉监控告警暂无钉钉监控告警增强监控,微服务上下线集成钉钉告警,提高应对风险能力15. 分布式任务调度暂无分布式任务调度极简集成xxl-job,支持分布式任务调度功能16. 分布式日志模块暂无分布式日志模块集成7.x版本ELK,支持分布式日志追踪功能17. 消息队列暂无消息队列完美集成Kafka、Rabbit、SpringCloud Stream等消息队列18. Dubbo暂无Dubbo集成极简集成Dubbo最新版,给微服务远程调用增加新的解决方案19. 令牌状态可配暂无令牌状态可配增强JWT,Token默认无状态,增加配置可保存至redis实现有状态模式20. API报文加密暂无API报文加密支持API全局报文加密,提高系统的安全等级,大大降低系统损失的风险21. 工作流暂无工作流深度定制SpringCloud分布式场景的Flowable工作流,为复杂流程保驾护航22. Prometheus监控暂无Prometheus监控集成Prometheus全方位监控体系23. 移动端架构暂无移动端架构提供基于UniApp的跨平台移动端架构24. 规则引擎暂无规则引擎集成LiteFlow轻量级规则引擎,业务解耦更轻松25. 应用市场暂无应用市场商业用户可将自己开发的产品上架至应用市场,拓展BladeX生态圈开源版与商业版功能对比BladeX与Avue深度合作,联合版可视化数据大屏解决方案授权:26. 数据大屏暂无数据大屏前往体验。
Springline开发框架手册

1.前言1.1.Web开发技术发展回顾图:动态Web编程技术的发展历史随着Internet技术的广泛使用,Web技术已经广泛应用于Internet上,但早期的Web应用全部是静态的HTML页面,用于将一些文本信息呈现给浏览者,但这些信息是固定写在HTML页面里的,该页面不具备及用户交互的能力,没有动态显示的功能。
很自然地,人们希望Web应用里应该包含一些能动态执行的页面,最早的CGI(通用网关接口)技术满足了该要求,CGI技术使得Web应用可以及客户端浏览器交互,不再需要使用静态的HTML页面。
CGI技术可以从数据库读取信息,将这些信息呈现给用户;还可以获取用户的请求参数,并将这些参数保存到数据库里。
CGI技术开启了动态Web应用的时代,给了这种技术无限的可能性。
但CGI技术存在很多缺点,其中最大的缺点就是开发动态Web应用难度非常大,而且在性能等各方面也存在限制。
到1997年时,随着Java语言的广泛使用,Servlet技术迅速成为动态Web应用的主要开发技术。
Servlet是JAVA平台下CGI技术的代替品。
在Servlet技术规范下,浏览器向Web服务器内指定的Servlet发送请求,Web服务器根据Servlet生成对客户端的响应。
图:Servlet的响应流程图实际上,这是后来所有的动态Web编程技术所使用的模型,这种模型都需要一个动态的程序,或者一个动态页面,当客户端向该动态程序或动态页面发送请求时,Web服务器根据该动态程序来生成对客户端的响应。
Servlet一种在JAVA代码中嵌入HTML的方式,需要在JAVA代码中一行一行的进行HTML代码的生成及输出,在现在的技术条件下,我们简直无法想象当时JAVA WEB开发的复杂度。
到了1998年,微软发布了ASP 2.0。
它是Windows NT 4 Option Pack的一部分,作为IIS 4.0的外接式附件。
它及ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。
spring开发参考手册中文

轻量级容器的目标是避免上面所有这些麻烦ing!
Table 3.1. Examples of properties
表达式
说明
name
表示属性“name”,对应的方法是 getName()或者 isName()或者
setName()
表示属性“ account”的嵌套属性“name”,对应的方法是
getAccount().setName()或者 getAccount().getName()
考虑如下两个类: public class Company {
private String name; private Employee managingDirector; public String getName() {
return ; } public void setName(String name) {
这一章首先介绍了轻量级容器的总体设计,随后将简单介绍 Spring 除 IoC 实现之外的特性。简 单说,这些特性包括:
* 内置 AOP 支持,例如在 EJB 容器之外提供声明式事务管理
/5team/springframework
Spring reference 中文版 1.0
account[2]
表示带索引属性“account”的第三个元素。带索引属性可以是 array
类型、list 类型或者其他普通的 collection
下面你会找到几个使用 BeanWrapper 接口读取和设置属性的例子。
Spring Framework 开发参考手册

第 3 章 Beans, BeanFactory和ApplicationContext3.1. 简介在Spring中,两个最基本最重要的包是 org.springframework.beans 和org.springframework.context. 这两个包中的代码为Spring的反向控制特性(也叫作依赖注射)提供了基础。
BeanFactory提供了一种先进的配置机制来管理任何种类bean(对象),这种配置机制考虑到任何一种可能的存储方式。
ApplicationContext建立在BeanFactory之上,并增加了其他的功能,比如更容易同Spring AOP特性整合,消息资源处理(用于国际化),事件传递,以声明的方式创建ApplicationContext,可选的父上下文和与应用层相关的上下文(比如WebApplicationContext),以及其他方面的增强。
简而言之,BeanFactory提供了配置框架和基本的功能,而ApplicationContext为它增加了更强的功能,这些功能中的一些或许更加接近J2EE并且围绕企业级应用。
一般来说,ApplicationContext是BeanFactory的完全超集,任何BeanFactory功能和行为的描述也同样被认为适用于ApplicationContext用户有时不能确定BeanFactory和ApplicationContext中哪一个在特定场合下更适合。
通常大部分在J2EE环境的应用中,最好选择使用ApplicationContext,因为它不仅提供了BeanFactory所有的特性以及它自己附加的特性,而且还提供以声明的方式使用一些功能,这通常是令人满意的。
BeanFactory主要是在非常关注内存使用的情况下(比如在一个每kb都要计算的applet中)使用,而且你也不需要用到ApplicationContext的所有特性。
这一章粗略地分为两部分,第一部分包括对BeanFactory和ApplicationContext 都适用的一些基本原则。
springside3个人学习笔记整理(2)

目标:对生成的实例项目分析Springside3.3.4 View层权限使用了Spring Security 2.0.5和struts2关于Spring Security请参考springside使用——Spring Security 2和struts2的一些资料整理/peachpi/article/details/6283453SpringSide 3 中的安全框架Spring Security 2.0/shangpusp/article/details/5494563非常优秀的权限管理框架-- Spring Security/wenlin56/article/details/6081022struts2的配置使用了convention plugin,实现struts零配置,请参考struts.xmlStruts使用convention-plugin实现零配置/blog/398263convention plugin1. 默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。
如:<constant name="struts.convention.result.path"value="/WEB-INF/page"/>将路径配置到了WEB-INF/page 下。
2. 默认包路径包含action,actions,struts,struts2的所有包都会被struts 作为含有Action类的路径来搜索。
你可以通过设置struts.convention.package.locators属性来修改这个配置。
如:<constant name="struts.convention.package.locators"value="web,action"/>则定义了在项目中,包路径包含web和action的将被视为Action存在的路径来进行搜索。
Spring Security 5.1 中文 参考手册 中文文档

VPN或IP安全性来确保只有经过授权的系统才能尝试连接。 在企业环境中,您可以部署一个DMZ,将面向公众的服务器与后端数据库和应用程序服务器分开。 您的操作系
统也将扮演重要角色,解决诸如以无特权用户身份运行进程等问题并最大限度提高文件系统安全性。 操作系统通常也会配置自己的防火墙。 希望在这个过程中的某个地方 你会试图阻止对系统的拒绝服务和暴力攻击。 入侵检测系统对于监视和响应攻击也特别有用,因为这些系统能够采取保护措施,例如实时阻止侵入TCP / IP地址。 转移到 更高层,您的Java虚拟机将有望配置为最大限度地减少授予不同Java类型的权限,然后您的应用程序将添加自己的问题特定于域的安全配置。 Spring Security使后面的这个 领域 - 应用程序的安全性更容易。 当然,您需要正确处理上面提到的所有安全层,以及包含每个层的管理因素。 这些管理因素的非详尽清单将包括安全公告监控,修补,人员审查,审计,变更控制,工程 管理系统,数据备份,灾难恢复,性能基准测试,负载监控,集中式日志记录,事件响应程序等。 由于Spring Security专注于帮助企业应用程序安全层,因此您会发现有多少不同的需求与业务问题域相同。 银行应用程序对电子商务应用程序有不同的需求。 电子商务应 用程序对企业销售人员自动化工具有不同的需求。 这些自定义要求使应用程序安全性变得有趣,富有挑战性和有益。 请首先阅读Chapter 1, Getting Started的全部内容。 这将向您介绍框架和基于命名空间的配置系统,您可以使用该系统快速启动和运行。 为了更好地理解Spring Security的 工作原理以及您可能需要使用的一些类,请阅读Part II, “Architecture and Implementation” 。 本指南的其余部分采用更传统的参考样式,旨在根据需要进行阅读。 我们还建 议您尽可能多地阅读应用程序安全问题。 Spring Security不是解决所有安全问题的万能药。 从一开始,应用程序的设计就要考虑到安全性,这一点很重要。 试图改造它并 不是一个好主意。 特别是,如果您正在构建Web应用程序,则应该意识到许多潜在的漏洞,例如跨站脚本,请求伪造和会话劫持,您应该从一开始就考虑这些漏洞。
Spring框架参考文档-5.0.0-中文完整版

Spring框架参考文档-5.0.0-中文完整版AuthorsRod Johnson , Juergen Hoeller , Keith Donald , Colin Sampaleanu , Rob Harrop , Thomas Risberg , Alef Arendsen , Darren Davison , Dmitriy Kopylenko , Mark Pollack , Thierry Templier , Erwin Vervaet , Portia Tung , Ben Hale , Adrian Colyer , John Lewis , Costin Leau , Mark Fisher , Sam Brannen , Ramnivas Laddad , Arjen Poutsma , Chris Beams , Tareq Abedrabbo , Andy Clement , Dave Syer , Oliver Gierke , Rossen Stoyanchev , Phillip Webb , Rob Winch , Brian Clozel , Stephane Nicoll , Sebastien Deleuze版本号:5.0.0.RELEASECopyright ? 2004-2016Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.文档官网:https://docs.spring.io/spring/docs/5.0.0.RELEASE/spring-framework-reference/index.html现在官网的5.0.0已经在2017年9月28日出了release版,为此翻译了5.0.0版本(从4.3.10升级到此版本,如果还在使用4.3.10版本,请看本人的前一个版本),翻译前后历时15天,十多次的修改和校对。
入门手册-SpringSide3.3.4安装和部署

SpringSid e3.3.4部署miniweb应用: 2011-6-17 执行quick-start.bat(mvn install)接下来还会Build 一个什么mini-web Archetype 生成模板..然后分别弹出四个窗口:一个是H2数据库启动,另外三个分别是三个项目.有这个错误也没事,不妨碍我们进行接下来的演示:mini-web:mini-servie:showcase:项目模板(archetype-catal og.xml) 看看.m2除了从中央仓库复制的jar包还还有哪些东东:<?xml version="1.0" encoding="UTF-8"?><archetype-catalogxsi:schemaLocation="/plugins/maven-archetype-plugin/archetype-ca talog/1.0.0 /xsd/archetype-catalog-1.0.0.xsd" xmlns="/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" xmlns:xsi="/2001/XMLSchema-instance"><archetypes><archetype><groupId>org.springside</groupId><artifactId>mini-web-archetype</artifactId><version>3.3.4</version><description>SpringSide's Mini-Web Archetype(xuyuantree)</description></archetype></archetypes></archetype-catalog>这个其实是用来生成项目滴.examples中放的是三个项目的war包.即已经部署好的.可以直接访问.mimi-web-archetype:放的是mini-web-archetype-3.3.4.jar包.是用来可以直接调用或者使用Maven命令行直接生成项目滴.执行generate-project.bat(mvn archetype:generate)1:local->mini-web-archetype这里就是生成的本地模板GroupId: 包名ArtifactId: 项目名使用Maven3:更改.m2\settings.xml的localRepository为:D:\repository到.m2\repository\org\springside下把springside整个目录拷贝到D:\repository现在就可以把.m2下的repository删掉.如果不放心可以改为其他的名字.注意:arhetype-catalog.xml是不能删的.接下来在SpringSide根目录下执行generate-project.bat.能执行成功,说明我们成功把UserHome下的.m2\repository设置到我们自己想要的目录下.但是我们还没有把springside自带的maven转为maven3.那么上面为设么执行generate-project.bat还是可以成功生成项目呢?因为我们设置的M2_HOME还是SpringSide自带的Maven2.@echo offecho [INFO] 确保已用mvn install安裝tools\maven\archetype中的mini-web項目模板set MVN=mvnif exist "tools\maven\apache-maven-2.2.1\"set MVN="%cd%\tools\maven\apache-maven-2.2.1\bin\mvn.bat"echo Maven命令为%MVN%mkdir generated-projectscd generated-projectscall mvn archetype:generate -DarchetypeCatalog=localpause所以如果我们要想执行generated-project.bat来生成项目,需要更改执行的mvn.bat的注意,我们只是执行generate-project.bat采用Maven3,而不是连同执行quick-start.bat也采用Maven3. 如果执行quick-start.bat也用Maven3的话,那quick-start.bat也要更改里面的内容的.更改M2_HOME: D:\SOFT\springside-3.3.4\tools\maven\apache-maven-2.2.1 为:C:\apache-maven-3.0.3此时如果我们执行generate-project.bat:会发现虽然我们改了M2_HOME的配置,但还是能够执行成功.这是为什么呢.而实际上此时执行的还是SpringSide自带的Maven.看打印的Maven命令就知道了:虽然这样子没有问题,但是用的还是Maven2的东西.如果我们想用Maven3的东西.是要修改generate-project.bat让他执行到Maven3的bin\mvn.bat的.而实际上SpringSide官网已经说了:不建议这么做,这样更改了SpringSide发布包里面的内容.环保源码版如果已经是SpringSide的老用户,那就不必每个版本都下载一百多兆的all in one版,下个几百K的源码版就足够了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Springside 3.3.2 技术参考手册1. 总述∙架构风格简述1.概述技术框架选型以工业化大规模软件开发为原则---主流的选型、适宜团队分工的架构,同时照顾轻量级快速开发的需求,Java版的约定大于配置的风格。
)在SpringSide的官方主页上,写着SpringSide 3 中包含的主流组件:Spring 2.5 + Hibernate 3 + Struts 2 + JSP 2.0 + JQuery + JAX-WS 2 (by Apache CXF 2) +SpringSecurity 2.0。
不过,如果你认为和SpringSide 2 相比,升级的只是版本号,那么你就大错特错了。
像我这样从SpringSide 2过来的人,如果能够详细对比SpringSide 2 和SpringSide 3,对于我们理解SpringSide 3肯定更加有帮助。
下面的内容是我自己的一些体会,不正确的地方欢迎大家指正。
从主要的架构来,依然是那么几层,先设计数据库,再写Entity层,再写Dao层,再写Action,然后使用JSP表现出来,其中的Entity和Dao层和Hibernate紧密相关,Action是Struts的主要部分,Spring作为粘合剂,把这些东西连在一起,并提供了一些机制简化编写这些层的工作。
SpringSide就是这样一个大的粘合体,省去了我们自己很多的粘合工作。
从SpringSide 2 到SpringSide 3,这些工作得到进一步的简化,我们开发起来就更爽了。
我认为,我们的开发模式,主要经历了这样的简化过程:第一阶段,代码加一大堆的配置文件第二阶段,代码加少量的配置文件第三阶段,代码加基本上等于零的配置文件这些进步是如何实现的呢?从第一阶段到第二阶段,主要靠的是Annotation,把一些大量的配置工作转移到了Java代码中,那么从第二阶段到第三阶段怎么实现呢?都已经Annotation了,你还有什么办法让配置文件更少?想不到吧!我也想不到,直到我看了SpringSide 3生成的项目,我才知道还有一个好东西叫自动扫描。
下面使用实际的例子进行说明。
作为示例,Hibernate是个不错的选择。
第一阶段,如果单独使用Hibernate,我们每写一个Entity类,就得同时写一个.hbm.xml文件,如果有很多Entity,就得写很多.hbm.xml文件,每修改一次Entity,也要同时记得修改.hbm.xml文件,相当的不方便,其目录结构如下图:第二阶段,使用Annotation,SpringSide 2 中就是这样的方式。
具体内容可以看我的另一篇博文《打通持久层的任督二脉》。
所以我用SpringSide 2 进行开发的时候,写Entity也是两个步骤,但是比第一阶段要简单。
就是先写一个Entity,Entity里面使用Annotation,如下图:然后修改配置文件,SpringSide 2 中专门为Hibernate的定义开辟了一个专门的xml文件dataAccessContext-hibernate.xml,里面关于SessionFactory的定义是我们很熟悉的。
我只需要将我的Entity类加入到里面就可以了,如下图中红笔圈出来的部分:第二阶段和第一阶段相比,配置文件简单多了,不需要维护那么多的.hbm.xml。
但是,每编写一个Entity,依然需要修改一下配置文件。
第三阶段就更了不起了,零配置文件,也就是说我们只管写Entity就行了,不需要管配置文件(当然,项目开始的时候还是要配置一次的)。
打开SpringSide 3生成的项目,果然找不到dataAccessContext-hibernate.xml文件。
那么是如何实现零配置的呢?靠的就是自动扫描,如下图中红笔圈出来的部分:上面讲Hibernate只是为了举例说明我的观点,事实上SpringSide 3 中的零配置可不仅仅只存在这一个地方。
Dao层也可以不用配置了。
在SpringSide 2 中,我们每写一个Dao,都需要在serviceContext.xml中加入这个类,如下图:SpringSide 3 中使用自动扫描了,如下图:以后编写Service后,再也不用修改配置文件了,只要我们在Service中使用如下Annotation:事务也不用配置了,在SpringSide 2 中,事务是这样配置的:SpringSide 3 中,事务配置是这样的:Action也不用配置了,不过使得Action零配置的代码却在web.xml中,如下图:还记得SpringSide 2 中的Struts配置代码吗?编写完Action类的代码后,还需要修改两个配置文件,如下:所以说,SpringSide 3 的一个优点就是让生活变得更加简单了。
在以上的截图中,SpringSide 2 项目用的是Eclipse 3.2,而SpringSide 3项目用的是Eclipse 3.4 For JavaEE Developers。
哪一个IDE更爽,那也是一目了然。
2.主要库栈∙JDK:JDK 6.0、 UTF-8.∙IOC container:Spring 3.∙ORM:Hibernate 3.3.∙Web:Struts 2.1、JSP 2.0、JQuery 1.4/Dojo Base 1.4.∙Web Service:基于Apache CXF 2.2的JAX-WS/JAXB 2.0规范, 基于Jersey的JAX-RS 规范.∙Security: Spring Security 3.0.3.层次说明3.1 entity - 领域模型层使用Sql First的开发模式,先设计数据库,参考DBA的性能意见而不要太片面追求OO 化的表结构。
然后纯手工编写entity与极少量的JPA annotation(约定大于配置), 也可以用hibernate-tools从数据库逆向生成后再作修改。
3.2 access - 资源访问层资源访问层包括对数据库、JMS、外部的WebService等的访问。
每个领域对象对应一个DAO类,继承于通用的HibernateDao<T>,所有以该对象为查询主体的HQL语句统一定义于DAO内并提供查询函数.在性能紧要而Hibernate又无法满足要求时,可混合使用JDBCTemplate。
3.3 service - 业务逻辑层Service层有两类对象,一类是领域对象管理类(Entity Manager),按领域对象划分,每个Manager类负责管理多个紧密关联的Entity的增删改查及其业务逻辑。
一类是业务服务类(Service),按业务脚本划分,可能会访问到多种领域对象与Manager 类。
用Spring的Transcation annotation定义事务。
对于Hibernate Lazy load的关联对象,在性能要求不高时可使用OpenSessionInView Filter,否则在Service层完成对象的初始化操作。
3.4 web - Web MVC层MVC框架使用Struts 2.1 这一老牌传统MVC框架 + Convention Plugin 实现零配置文件,每个Action实现一组页面操作。
View模板用JSP2.0 , 尽量使用纯html+JSP2.0 EL展示页面。
Javascript与Ajax使用JQuery或Dojo Base。
尽量采用CSS框架规范CSS的布局。
3.5 ws - WebService接口使用Java first的开发模式,通过JSR181 annotation标注Web Service接口,用JAXB-2.0 annotation标注Java-XML Mapping。
用DTO类实现Entity与外系统的解耦,用WSResult包裹返回结果与返回码,不使用Exception返回错误。
对于Restful服务,同样采用JAX-RS annotation标注。
3.6 security - 安全控制使用Spring Security的Filter 拦截URL,使用Spirng Security的taglib 拦截页面内容。
采用用户-角色-资源三层控制,角色-资源关系定义于XML的简化模式。
3.7 测试单元测试尽量采用MockObject的方式屏幕所有依赖对象/数据的访问,对于dao层与特别查询与特别数据库操作,采用集成测试连接实际数据库,基于 Spring的集成测试Context。
功能测试使用selenium测试主要用户故事的主流程及Javascript的效果,使用Jetty 嵌入式Web服务器与H2嵌入式数据库,使用DBUnit预备数据,使得整个测试可以快速运行,对测试环境没有太多的依赖。
4.常见问题4.1 什么时候使用基于接口编程?基于接口编程、Fascade层等等抽象封装都是有开发和维护的代价的,是否使用归根结底还是看在团队人员的分工情况,在大家不得不依赖这几项技术来解决相互的接口、契约问题时,自然就用了。
4.2 Package是先分层还是先分模块org.springside.模块A.web 还是 org.springside.web.模块A?同上,还是看团队人员的分工情况。
如果是每人从头到尾负责一个独立模块的可以先分模块。
反之,按层进行分工并鼓励层内重用的,可以考虑先分层。
目录结构描述1.公共目录结构完全采用maven的默认布局。
bin 命令脚本目录,详见后。
src main主源码目录main/java java 源文件main/resources 配置文件、属性文件 main/webapp Web 应用目录test 测试目录,结构与主源码目录相同unit 单元测试functional 功能测试data 测试数据生成器targetmaven 编译目录 2.bin 目录结构文件描述db-export / db-init 将当前数据库数据通过dbunit 导出到export-data.xml 。
执行src/main/sql 中的脚本初始化数据库schema,再通过dbunit 执行default-data.xml 初始化数据。
convert-h2将真正数据库的sql 转换为测试用的H2的sql 。
eclipse生成Eclipse 项目文件。
jetty / Jetty-debug 用jetty 快速运行本项目。
jetty-debug 支持eclipse 以debug 方式连入,端口为8000hibernate/generatecode从数据库逆向生成entity / dao / pojo2. 基础框架∙ Spring : Spring Framework1. 参考资料1.图书参考手册中文版(英文版) ()》 Apress2.文章∙Introduction to the Spring Framework 2.5 (TSS) Rod 老大的Spring介绍 Spring2.5版。