l MVC开发框架java
l 工做流技术程序员
l 用户、权限、角色管理spring
下面分别详细介绍。sql
在经常使用开发框架的应用中,经常使用于视图层的有:Jsp ,Jsf,Freemarker,Xslt, Velocity等.JSP:经常使用的一种视图层,没法实现严格的MVC分离,JSP代码几乎等同于Java代码。表现逻辑与代码相混杂,代码重用性,系统维护性比较低。下面分别介绍:数据库
l JSF:基于组件事件驱动,遵循JAVAEE的标准,上手快,有大量可重用组件。对RESET支持很差,没有一个统一的实现,既有SUN的实现,又有apache的实现-myfaces,编写定自定义组件要求高,比较适合作企业应用。apache
l xslt:模板技术之一,有极佳的拓展性和重用性,可实现严格的MVC分离。Xslt缺少强有力的编辑器支持。在性能上,相对于JSP,Freemarker,Velocity,在等同复杂页面度的表现层逻辑,xslt性能比其余几个差距比较大,占用的内存空间也比较多。缓存
l Velocity:经常使用的模板技术之一,可实现严格的MVC分离,简单轻量级,语法简单。vtl语法须要必定上的学习时间,不支持jsp标签。安全
l Freemarker:经常使用的模板技术之一,可实现严格的MVC分离。与Velocity相比,Freemarker功能更增强大,对表现逻辑和业务逻辑的划分更加严格,可自定义macro,Freemarker同时支持JSP的标签。Freemarker对于语法相对比较严格,变量必须赋值,map的key必须为string。服务器
基于以上分析,结合开发效率和运行效率,建议采用Freemarker做为视图层的技术。restful
在经常使用的控制层技术中,有struct1,struct2,springMVC等。
struct1:比较早的一个控制层框架,非线程安全,如今不多使用。
复制代码
struct2:较为成熟并应用很是普遍的框架,即经典的SSH,比较热门
复制代码
springMVC:后起之秀,目前最有前景的技术,如下列出与struct2主要对比项:
复制代码
l 在性能上,springMVC优于struct2。
l springMVC隶属spring团队的产品,学习过spring的人,上手快。
l springMVC可实现配零配置,struct2须要没法作到零配置。
l 对于开发效率来说,springMVC相对struct2,效率高。
l springMVC内置restful,无需第三方插件的支持。
l 标杆对照,在淘宝、拍拍等大型电商网站中,也采用springMVC做为控制层技术,有不少资料可做为参考。
从技术的先进性、复杂性上考虑建议采用springMVC做为控制层。
能够选用两大主流的开源ORM组件:hibernate和MyBatis。
l Hibernate学习门槛比较高,限制对象模型,在多表、复杂查询下,优化难度较高。对于后期的维护或者重构来讲,难度较大。
l MyBatis属于半ORM框架,能够对sql作到精细控制,可是开发效率来说,比hibernate相对慢些,可是利于后期的维护于重构。
从灵活性、可控性、学习成本和本人熟悉程度考虑,配合使用codeSmith代码生器能大幅提升开发效率,建议采用MyBatis,做为项目的ORM框架。
可能被采用的数据库有Oracle、MySQL,使用Mysql的好处有:
l 源免费数据库,使用较新稳定版本5.5
l 功能强大,稳定;
l 经历过有普遍的成熟的应用实践考验;
l 使用经验比较丰富,容易上手,使用简单;
l 视用户量状况考虑,前期小规模的时候采用Master-Slave主从模式备份。后期逐步考虑:实现数据库读写分离。并可考虑分表、分库,还可使用集群提高读性能。
使用Oracle的好处有:
l 目前公司已经使用
l 性能好、安全性高,各类方案完整
l 客户较为承认
基于目前公司已使用,因此建议仍采用oracle,但若是须要下降成本能够采用Mysql。
CAS +LDAP
能够选择的技术主要有:JBPM4,JBPM5,Activiti5
Kettle是一款国外开源的ETL工具,纯java编写,能够在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 但愿把各类数据放到一个壶里,而后以一种指定的格式流出。Kettle采用了LGPL协议,即修改后的程序能够不公开发布,能够放心的使用,而不用考虑版权问题。
l 采用J2EE平台最经常使用的Log4J日志组件
l 前期使用单台应用服务器的时候能够直接使用Mybatis内置缓存机制或者是服务器缓存开发;
l 后期根据实际运营状况,要使用集群部署方式时,使用Memcached组成分布式集群缓存,这样就不存在缓存同步的问题。
l 经过Spring的AOP结合Memchched将缓存功能嵌入到代码中,根据实际的业务场景,制定缓存策略。