Traveller,翻译为旅行家,是我用来实践最佳web技术的项目,主题是一个给旅行爱好者提供旅行信息的网站。

目标是组合现最流行的web技术,实现符合中国用户使用习惯的网站。

相关网址

Git:https://github.com/mingziday/Traveller_Spring-Data-Rest_Angularjs
Blog:http://www.cnblogs.com/mingziday/category/712097.html

技术规划要点

1、数据库:
Mysql5
Navicat11:一款可视化操作Mysql的工具

2、编辑工具:
STS:Spring基于Eclipse封装的Spring集成开发工具
SubLime:一款非常酷的文本编辑工具

3、服务容器:
Tomcat:动态服务器

Nginx:静态文件服务器

4、后端框架
MVC:Spring MVC
持久层:Hibernate/Spring Data JPA
后端校验:Hibernate JSR303
安全:Spring Security
配置方法:全Java无xml配置
后端Restful转换:Spring Data REST(转换为json格式的数据对象)
数据库链接池:c3p0

5、前端MVC框架
(1)Angularjs:2009年出生的前端MVC神器
(2)restangular,用于处理Restful服务的第三方插件
(3)angular-ui-router,用于处理导航路由的插件
(4)ueditor,在线文本编辑器

6、前端样式框架

bootstrap

7、工程管理
Maven
webjar: 一种将前端资源文件进行打包整体发布的方法;采用nginx后,webjar应该作为静态资源被访问才对,但是jar文件无法被nginx解析,于是将webjar包解压缩,部署到单独的static目录

8、版本发布工具
git

9、缓存

spring cache/spring ehcache对象缓存

spring ehcache页面缓存

后续计划

hibernate+coherence缓存
静态文件缓存varnish
动态内容静态化(Node.js)
测试框架SpirngTest+JUnit

安装手册

1、下载工程代码

2、安装Eclipse或者STS

3、安装Maven

4、安装Tomcat

5、安装Nginx,并配置静态文件目录

6、安装Mysql5,并导入输入看脚本sql/traveller.sql

7、更改数据库连接字串

com.huawei.traveller.config.AppConfig
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl(
"jdbc:mysql://localhost:3306/happycardata?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull");
ds.setUser("root");
ds.setPassword("123456");

8、编译运行发布到本地Tomcat

9、访问http://localhost/index.html

Traveller项目介绍的更多相关文章

  1. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...

  2. 10年C#历程的MVP之路与MVP项目介绍

            本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html  1.意外的惊喜 10月份收到微软总部寄来的荣誉证书,非常激动, ...

  3. Openlayers+Geoserver(一):项目介绍以及地图加载

           项目验收完,趁着事情不是很多,对这个项目进行梳理.我主要负责地图模块,网站其他模块主要有两个,一个是报表,主要是100多张报表,技术没有难度,主要是工作量的问题.另一个是数据的校验,就是 ...

  4. CoinPunk项目介绍

           CoinPunk是一个bitcoin比特币钱夹服务web应用程序,你可以自己构建钱夹服务.开源,免费. 轻量级,高效 响应式设计 轻易创建新账户 详细的交易记录 构建于Node.js与H ...

  5. Android Hotpatch系列之-项目介绍

    给现实Android apk打补丁,不用强迫客户升级客户端,悄悄的就把bug修复了,程序猿再也不用被老大骂娘了. 客户端例子实现:https://github.com/fengcunhan/Hotpa ...

  6. xcode新建项目介绍

    xcode新建项目介绍 1.打开xcode选择“create a new xcode project 2.product name 工程名称 campany identifter 公司id 一般都写公 ...

  7. 斗地主算法的设计与实现--项目介绍&如何定义和构造一张牌

    本篇主要讲解斗地主中如何比较两手牌的大小. 友情提示:本篇是接着以下两篇文章就讲解的,建议先看看下面这2篇. 斗地主算法的设计与实现--如何判断一手牌的类型(单,对子,三不带,三带一,四代二等) 斗地 ...

  8. Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区

    Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区 Oschat IM 开源即时通讯项目介绍    255人收藏此文章, 我要收藏 发表于5天前(2013-08-28 ...

  9. NiftyNet项目介绍

    NiftyNet项目介绍  简述  NiftyNet是一款开源的卷积神经网络平台,旨在通过实现医学图像分析的深度学习方法和模块,支持快速原型和再现性,由WEISS (Wellcome EPSRC Ce ...

随机推荐

  1. 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token

    GCC编译C源程序时出现:错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token,通常是因为在函数声明(包括包含的头文 ...

  2. VS2012新建项目出错:未找到与约束

    VS2012中,选择新建linq to sql 类,结果出错: 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryS ...

  3. php对象当参数传递 && php深复制和浅复制

    把对象当参数传递给方法,在方法里改过对象后,影响到外面的对象  因为对象是引用传递过去的 class Book { public $name; public function __construct( ...

  4. debian root用户在shell下如何能够使用颜色

    转载:http://hi.baidu.com/aivera/item/f31c4a590ef72609e6c4a596 编辑 /root/.bashrc 这个文件, 把里面这几行前面的#号去掉就可以了 ...

  5. HBase-java api 基本操作

    使用的是完全分布式,详细信息为: 操作的Java 代码(抄的别人的) package org.admln.hbase; import java.util.ArrayList; import java. ...

  6. A - Robot Bicorn Attack

    Description Vasya plays Robot Bicorn Attack. The game consists of three rounds. For each one a non-n ...

  7. Java基础知识强化之网络编程笔记24:Android网络通信之 AndroidAsync(基于nio的异步通信库)

    1. AndroidAsync   AndroidAsync 是一个基于nio的异步socket ,http(客户端服务器端),websocket,socket.io库,AndroidAsync 是一 ...

  8. Python 2.x and 3.x String VS Bytes

    In Python 3 unicode strings are the 'regular strings' (str) and byte strings are separate objects. L ...

  9. 管理Activity

     开源中国摘取的代码,这个可以管理activity 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 ...

  10. python(5)-os模块

    os.getcwd() 获取当前工作目录 os.chdir('dirname') 改变当前脚本的工作目录 os.curdir 返回当前目录名,即"." os.pardir 返回当前 ...