首先先得确定整体架构,一老同事这样跟我说
如果是应用类系统采用hibernate+spring,前台用extjs
如果是网站,可以直接用jsp+jquery,mvc直接自己写一个url mapping
我因为项目紧急,加上业务比较简单,仅采用spring
搭建好spring架构后,以下简单说一下花时间较多的地方。
一、持久层
其中涉及2个问题
第1个为选用连接池
我分别看了dbcp,proxool的源代码以及他们机制
dbcp是spring推荐使用,可能因为和spring无缝对接吧,但是网上评价不高,
而且依赖appache common-pool
proxool 有重连功能,且稳定性较高
因为赶进度,直接采用spring推荐的dbcp,因为没大规模测试,暂时还没发现有什么问题
第2个就是多数据库源,网上有很多例子,spring自带DynamicDataSource
二:日志记录
这个问题花了蛮多时间研究,因为之前对log4j一直停留在会用,
但是具体原理和配置一直没弄明白,这次研究还是收获蛮大,原来我以前接触的项目
其中用的log4j都没用到它的核心,而且使用也不是按作者本意进行。
log4j有2个概念,logger和appender,一个logger可以指定多个appender,一个appender可以服务多个logger的核心理念就是根据包名来控制日志级别,如我能控制到某个包如(org.springframework)下显示级别,这对我们调试问题提供了很大的灵活度
appender 主要控制输出,包括输出文件,格式等
关于日志还有一个概念,在appache下有2个子项目
一个是appache.common.logger类似hibernate的stf 日志门面,
一个是appache.logger
第一个是日志通用接口,日志门面,提供简单的控制台日志输出
第二可以说是第一个的实现,我们面向第一个进行编程,具体实现看个人喜好,可以采用
appache.logger或者logback
三:单元测试
说到单元测试,得说一些项目目录结构,我是采用src/main和sr/test
然后单元测试类的包名和被测试类一致
采用spring进行单元测试主要就是考虑如何加载applicationcontext
我抽想一个顶层测试类,该类继承AbstractJUnit4SpringContextTests,然后@ContextConfiguration进行置文件,且静态调用环境初始化方法(因为我想把db配置文件和日志配置文件统一到工程外,这就需要项目里引用的路径都是采用绝对路径,因为相对路径引用配置文件只能在工程内)
四:接口服务
因为我做的是一个支付中心,需要对外提供接口,研究了一下spring,几种主流方式(
soap,http,hessian,rmi等)都支持,为了简单起见,采用http,spring对http协议进行了封装(HttpInvokerServiceExporter),可以面向对象进行操作,底层通信交给spring。
五:编译环境
坚持web-inf\lib下不留jar,全部采用user_libray的方式。主要基于以下2个考虑
1、对jar进行分类管理,这样能清楚每一个jar的用途,而不会想以前不管有用没用都向lib里放
2、为以后改成maven项目做基础,因为项目紧迫,暂时没时间研究maven
六:spring
基本采用spring提供的注解 用到@service,@autowired
其中遇到一个问题就是servlet和filter中注入问题
因为servet和filter不属于spring容器管理,
不过这个问题spring都考虑到了,例如filer提供DelegatingFilterProxy
另外说一下spring自带的jdbcTemplate不怎么好用,调用存储过程的方法更是让我苦恼不少,最后研究了半天还是采用jdbc的connection.prepareCall方法
而且加载对象得写RowMapper感觉很麻烦,有时间还是想改成hibernate,感觉jdbcTemplate有点四不像,没有jdbc灵活,又没有hibernate那么丰满
分享到:
相关推荐
maven 环境搭建总结 maven心得
* 项目体系分层: cn.itcast.elec.containner:自定义的spring容器,用于在控制层调用操作业务层 cn.itcast.elec.dao:项目的dao层,负责连接数据库的操作 cn.itcast.elec.daomain:封装实体对象(PO对象),对应...
对于前端vue框架中JavasScript应用程序的模块打包器webpack搭建vue项目的具体步骤和详细的介绍
Java后端常用环境本地搭建(当前包括dubbo注册中心、zookeeper客户端、node前端服务器、前端常用框架vue)
主要为大家介绍了Vue项目环境搭建总结篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
官方UAP开发环境搭建视频,另外加一份总结的心得,含uapserver安装文件地址,闪退的问题处理等
包含solr的环境搭建及配置文件详解,和solrJ项目
主要介绍了vue3.0 搭建项目总结(详细步骤),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
有关用myeclipse搭建项目及协同开发的例子介绍总结
我自己总结的超详细hibernate项目环境搭建文档
微商城,有项目搭建指南。1 克隆代码 见附件 2 配置nginx 将wemall/nginx/dev.wemall.com.conf文件拷贝到nginx的虚拟主机目录下 3 配置hosts 127.0.0.1 dev.wemall.com 4 创建数据库 先创建数据库如wemall,再...
SV小项目—异步fifo的简单验证环境搭建(全)_Verification_White的博客-CSDN博客_fifo验证.mht
这是用Hibernate+spring+springmvc搭建的项目,功能比较全
在Centos下搭建自己的web应用总结的实用链接
30.项目2-省份销售排行-Top N展示优化和项目开发思路总结 31.项目2-效果展示及项目3需求分析梳理 32.项目3-非跳出UV-Storm topology开发一 33.项目3-非跳出UV-Storm topology开发二 34.项目3-非跳出UV-Web端Servlet...
30.项目2-省份销售排行-Top N展示优化和项目开发思路总结 31.项目2-效果展示及项目3需求分析梳理 32.项目3-非跳出UV-Storm topology开发一 33.项目3-非跳出UV-Storm topology开发二 34.项目3-非跳出UV-Web端Servlet...
lamp架构的搭建 linux apache mysql php lamp
本篇文章主要介绍了浅谈angular4实际项目搭建总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2,手把手从零开始搭建项目并进行代码实现 3,综合运用HttpClient+Jsoup+Kafka+SparkStreaming+StructuredStreaming+SpringBoot+Echarts等多种实用技术 适用人群 1、对大数据感兴趣的在校生及应届毕业生。 2、对...
淮海工学院计算机工程学院 开放实验... " ----------------------- 《Android应用开发》开放实验项目总结报告-模板全文共2页,当前为第1页。 《Android应用开发》开放实验项目总结报告-模板全文共2页,当前为第2页。