Springside - 3.3.2 - 技术参考手册(7)

2020-02-21 15:32

SQL Builder

SQLBuilder支持Velocity来渲染定义在XML中的SQL. 为什么要用模板好处有二:

1.相比只能用+号换行而且老被Eclipse自动格式化的Java 字符串,XML中可以自由的缩进与换行。 2.可以用Velocity来自由动态的拼装SQL, 这个好处更无需多言了。 为什么不选用Freemarker做模板引擎,原因同样有二:

1. 因为SQL定义在spring的applicationContext-*.xml中,freemarker的变量定义与Spring的 placeholder一样,会引起冲突. 2. Velocity最近居然比Freemarker活跃. 详见Showcase的UserJdbcDao及其测试用例。

1. H2

1.1 选型

H2嵌入式模式是功能测试的首选。测试要求数据库运行要非常快速,而且为免测试间数据的耦合,要能在每个测试间很快速的重建数据,H2刚好满足这个需求。

H2的主要对手是Derby,对比显示H2比Derby更快,而且有着非常好用的Web管理界面(在Web界面里写SQL时居然有表名列名的动态提 示....)

1.2 in Springside 3

在/tools/h2目录里带了启动H2的命令(借助于maven管理的Jar包)。

另外,H2完全兼容hsqldb的语法,一般依赖数据库的开源项目都附带有hsqldb语法的初始化脚本。 SpringSide3中在使用嵌入式H2提供快速功能测试。url为jdbc:h2:mem:mini- service;DB_CLOSE_DELAY=-1 同时运行期的数据库也使用了H2的Server模式,url为jdbc:h2:tcp://localhost/~/mini-service。

2. MySQL 与 Oracle

开发实际项目时,需要将H2更换为实际数据库,Hibernate支持大部分的数据库,其中 Java程序员选用MySQL和Oracle的最多。 更换MySQL与Oracle 主要修改几个地方,SpringSide已在两个mini-example中带了示范配置,取消相应的注释符号即可。

1.pom.xml

一节jar包的groupid与artifactId,version用于下载依赖包。

注意因为版权问题,Oracle的Driver不在maven官网的仓库上,需要自行发布到团队的私服或拷贝到本机的maven仓库目录。

2.src/main/resource/applicationt.properties

用于连接池与hibernate的配置。

3. bin/build.xml

用于导出导入数据到数据库。

4. bin/hibernate/hibernate.cfg.xml

如果需要用hibernate-tools生成代码则修改此文件,否则可忽略。

5.修改entity的ID生成策略。

注意Oracle中一般会为每个主要的表创建一个Sequence,所以继承于IdEntity的子类需要重载getId()方法指定Sequence 名。 当然也可以只修改IdEntity基类,所有entity共用一个sequence。

Overview

数据库连接池可以使用应用服务器自带的实现,也可以使用开源的连接词如DBCP,可怜Tomcat/JBoss/Jetty貌似用的都是它。 使用ApplicationServer级别的连接池, 在ApplicationServer内的几个webapp间共享连接池以节约总的连接数,也可以为每个webapp独立分配以保证关键应用的供应。

DBCP好还是 Hibernate CP30 好,个人没有太深的感觉。因为Tomcat 还有 Spring的示例都是用DBCP的,那就DBCP吧。

配置参数

DBCP的性能配置主要是4个参数 #连接池启动时的初始值. dbcp.initialSize=10 #连接池的最大值. dbcp.maxActive=50

#最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止。 dbcp.maxIdle=20

#最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请。 dbcp.minIdle=5

一般这几个参数应该放在applicationContext.properties里方便部署时快速修改。

?

Web: MVC - Struts2, View - JSP2、Taglib、UrlRewrite, Javascript - JQuery、Dojo Base, CSS - YUI CSS Framework

1. 资料

江南白衣博物馆--Struts2笔记 ? 京山游侠--SpringSide 3 中的 Struts 2 ? 2.选型

Struts的招牌与用户群 + Webwork的较优雅架构 + Convention Plugin实现零配置文件,Struts2已经成为传统MVC里的最安全选择。 当然,GWT,Flex等是另一个潮流了。

3. in SpringSide 3.0

3.1 Convention Plugin实现零配置文件

Convention Plugin是2.1.6最新坐正的零配置Plugin,取代了原来的CodeBehind等插件,详细见详见Struts2笔记。 及其官方文档,Alfa.Shi翻译了中文版。

SpringSide 在struts.xml中重新定义扫描了根package名为web, 即会扫描xxx.xxx.web下所有的子Package。

3.2 CRUDAction的Prepareable与ModelDrivenen接口(涉及CRUD时的可选接口)

CRUD的Action全部使用Prepareable与ModelDriven接口,两个接口都是CRUD界面必备,详见Struts2笔记。 而非CRUD的action是否使用这两个接口就看具体情况了。


Springside - 3.3.2 - 技术参考手册(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1、浅谈加强房地产开发企业财务预算管理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: