jHipster 3.4 创建最流行Java Web应用项目最简单的入门基本教程

本贴最后更新于 2793 天前,其中的信息可能已经沧海桑田

jHipster(J潮客)其亮点:

  1. 风头超劲,席卷欧美,最新全能Java Web开发程式产生器 (java web generator)。
  2. 由Java专家累积的开发经验,配上各类实用的框架技术,去繁取精的运用,全方位的配置,制成出完备的开发应用程式。
  3. 完美Java体系架构,适合各行各业项目,尤其以适用于面向服务的体系结构(SOA)更为胜任。
  4. 不论菜鸟,老牛或专家,极容易上手,只要你可以下载及建立以下要求的工作环境。
  5. 快速建成一个制作就绪的基本项目工作模版,令你可以用有限的精力专注业务上的运作。
  6. 制作例子包括:jHipster3.4+Spring4.2.6+Spring Boot1.3.5+Hibernate4.3.11+MySQL5.7.12+AngularJs1.5.5

开场白

最近两,三年(2013-2016),Java 开发领域内刮起一股热腾腾的潮流风。引起世界各地Java开发者蜂拥跟随。这就是Java潮客者(J潮客),称jHipster。根据专家统计,每月下载量约有12000,每月制成的J潮客应用程式有一万份之多。可惜在国内有关J潮客资料及其应用十分稀少, 故此本文提供一些实用有效的信息。Java爱好者可以一起学习和研究。如果一切顺利,不论你是否菜鸟,只需要按照本文提供的步骤工作20-30分钟(不包括安装工作环境),即等于一个有5至7年的Java 经验程式员工作了6个星期的结果:一个完善又先进,配合了Java web 技术趋势,同时具备了制作就绪的基本工作模版。这就是J潮客(jHipster)闪亮卖点。

早在十多年前在道琼斯总部打工时, 时常接触实体或虚撰的Java网络服务器和应用服务器, 其运作十分复杂费时。 就算现今的有关Java web技术, 各种各类特色繁多。例如Java框架技术有Struts,Spring,Hibernate,iBatis,EJB3.0,JPA,等等;还有不少客户端的技术,Javascript, jQuery, Easyui, AngularJs, Velocity ; 数据库有SQL和NOSQL,本文只例举部份而已。选择多多,令人不容易适从。去年笔者希望找到更详细的Spring Framework 4的应用资讯,走遍香港广州及深圳各书店,仍然空手而返。原因是技术更新太快,有部份资料刚出版已是旧版本。究竟那项技术好,该用什么客户端,什么样的数据库最适用,相信有不少的争论。而本文的主题是不论菜鸟老手,只要好好地把握当今Java web 技术趋势,分配本身有限的精力,创造出精彩的Java项目! 有关J潮客的应用,会由浅入深,分数期和各位共同学习,敬请各位读者留意为要。

简介J潮客

J潮客(jHipster)是什么东西? 是谁开始的?其实J潮客是开源技术, 在2013年由法国Java专家 Julien Dubois (朱利安 杜波尔斯)率先倡导,至今仍是J潮客项目主导者。简易直说它是工具集堆综合技术,意思是由多种技术工具配置而成的Java Web开发程式产生器。好处是由Java专家累积的开发经验,配上各类实用的框架技术,去繁取精的运用,全方位的配置,制成出完备的开发应用程式,绝对适用于面向服务的体系结构 (SOA).

J潮客包括最先进的Java 8,特色是多用注解, 不用XML 配置的组态,配备了全方位的工作环境,从开发,测试,监控到制成,以及云部署。能提供最先进的Java 技术如微服务综合技术 (Microservices)。

主要的技术有以下几种,简单介绍而已。如果想知道更多有关这些资讯,可问百度。

  • Spring Boot: 能建成独立Spring 的应用程式
  • Spring Security: 标准业内的授权和认证
  • AngularJS:  JavaScript的MVC框架客户端
  • Bootstrap: 来自Twitter,是目前最受欢迎的前端框架
  • REST APIs: 基于Http协议实现资源操作
  • Liquid Database: 数据库源代码版本控制
  • CSS3 + 动画
  • HTML5: 移动开发主导(Mobil First)
  • Full internationalization support: 支持完善的国际化文字
  • Web Socket: 允许用户在浏览器中实现双向通信,实现数据的及时推送
  • 嵌入式tomcat ,jetty 及undertow

创立项目工具技术选择多

  1. 自动配置依赖资源:Maven 或 Gradle
  2. 验证类型: Cookie type, JWT 和OAuth2
  3. 数据库: SQL 及 NOSQL (MySQL, Postgres, H2)
  4. 高速缓存: EhCache or Hazelcast
  5. 自动化重复任务:实时编辑: GULP 及 Grunt
  6. 各类工具:Yeoman, npm (nodejs), BrowserSync

安装J潮客 (jHipster)

建立J潮客 (jHipster) 的工作环境是必须的,需要配备有:

  • Java 8 SDK
  • Maven 或 Gradle
  • nodeJs
  • PhantomJS
  • Xcode (ios)
  • Mysql 或 Postgres (Mysql Workbench or pgAdmin3)
  • Git 版本控制
  • STS ide, Eclipse, Intellij IDEA, 其中一个

具体详细安装方法,网上多。必须测试好开发环境,各软件工具以最新版本安全运行。

(有关安装开源工具-J潮客,对于菜乌来说,可能是一个挑战,因为它是比较短暂历史,没有具体处理步骤提供,故此本文特别加入十分具体详细安装步骤显示。以便对应是否安装成功。)

安装 J潮客有多种,本文只推荐本地安装法,基本可分Windows 8 和 10; ios 和 Linux.

  • Windows 8 和 10: 要用有管理员权益的命令提示符 (cmd)
  •  ios 和 Linux 用终端 terminal,用管理员权益安装(sudo)

安装方法:

  安装 Yeoman: npm install -g yo

  安装 Bower: npm install -g bower

  安装 Gulp: npm install -g gulp

  安装 JHipster: npm install -g generator-jhipster

粗体字是输入指令(ios):

sudo npm install -g yo

在终端 terminal出现以下的显示:(你的可能不完全相同,大概相同就可以)

。。。

/usr/local/bin/yo -> /usr/local/lib/node_modules/yo/lib/cli.js 

> yo@1.8.4 postinstall /usr/local/lib/node_modules/yo

> yodoctor

Yeoman Doctor

Running sanity checks on your system

:heavy_check_mark: Global configuration file is valid

:heavy_check_mark: NODE_PATH matches the npm root

:heavy_check_mark: Node.js version

:heavy_check_mark: No .bowerrc file in home directory

:heavy_check_mark: No .yo-rc.json file in home directory

:heavy_check_mark: npm version

  

Everything looks all right!

/usr/local/lib

└── yo@1.8.4

 

sudo npm install -g bower

/usr/local/bin/bower -> /usr/local/lib/node_modules/bower/bin/bower

/usr/local/lib

└── bower@1.7.9

sudo npm install -g gulp

npm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

npm WARN deprecated lodash@1.0.2: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.

npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

/usr/local/bin/gulp -> /usr/local/lib/node_modules/gulp/bin/gulp.js

/usr/local/lib

└─┬ gulp@3.9.1

  └─┬ gulp-util@3.0.7

    └─┬ dateformat@1.0.12

      └─┬ meow@3.7.0

        └─┬ loud-rejection@1.4.1

          └── currently-unhandled@0.4.1

sudo npm install -g generator-jhipster

npm WARN deprecated cross-spawn-async@2.2.4: cross-spawn no longer requires a build toolchain, use it instead!

npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm

/usr/local/lib

└── generator-jhipster@3.4.0

注意: 安装最大的问题是网络通畅,因大部分资源都在外国,你懂的?

ios 和 Linux方面,安装时常常遇到是权益问题,可用管理员权益处理的。

安装上述的软件,各版本如下:

yo@1.8.4

bower@1.7.9

gulp@3.9.1

generator-jhipster@3.4.0

npm@3.9.2

 

下一个步骤当然是要建立J潮客的应用模版。本文例子是要建立一个叫 kenlen 的应用程式模版。

打开一个终端 terminal或 cmd,用管理员权益安装,选取要安装的磁盘,输入以下指令:

mkdir kenlenècd kenlenèyo jhipster

 (以下是萤幕上显示出来的)

Welcome to the JHipster Generator v3.4.0

Application files will be generated in folder: /Users/Emac/kenlen

(1/16) Which *type* of application would you like to create? Monolithic application (recommended for simple projects)

(2/16) What is the base name of your application? kenlen

(3/16) What is your default Java package name? com.emodak.kenlen

(4/16) Which *type* of authentication would you like to use? HTTP Session Authentication (stateful, default Spring Security mechanism)

(5/16) Do you want to use social login (Google, Facebook, Twitter)? Warning, this doesn't work with Cassandra! No

(6/16) Which *type* of database would you like to use? SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle)

(7/16) Which *production* database would you like to use? MySQL

(8/16) Which *development* database would you like to use? MySQL

(9/16) Do you want to use Hibernate 2nd level cache? Yes, with ehcache (local cache, for a single node)

(10/16) Do you want to use a search engine in your application? Yes, with ElasticSearch

(11/16) Do you want to use clustered HTTP sessions? No

(12/16) Do you want to use WebSockets? Yes, with Spring Websocket

(13/16) Would you like to use Maven or Gradle for building the backend? Maven

(14/16) Would you like to use the LibSass stylesheet preprocessor for your CSS? No

(15/16) Would you like to enable internationalization support? Yes

Please choose the native language of the application? English

Please choose additional languages to install Chinese (Simplified), Chinese (Traditional)

(16/16) Which testing frameworks would you like to use? (Press <space> to select)Gatling

Installing languages: en, zh-cn, zh-tw

   。。。

注意:有颜色的是选择了那些建立应用程式的配置。

如果网络通畅,不会出现问题,建立该应用程式不超过30分钟。但是通常会有些不能下载的资源档案(jar),就要耐心应付的。如果有问题,怎么办呢?本文提供了多种方法处理。何况随时可以问候百度娘的!其中可行方法有:

再输入以下指令:

npm install

bower install

gulp install

根据笔者经验,主要是下载POM的依赖资源,可输入Maven 指令:

mvn clean

mvn install –U 或 mvn install –U --debug

(萤幕显示出那个Jar没能下载)

或者转用淘宝的镜像,用以下指令:

npm config set registry https://registry.npm.taobao.org

再输入以上指令。

 

应用程式的测试和运作

当该项目-kenlen应用程式成功创立了,下一步骤就是测试这模版。首先要建立了该程式使用的数据库。打开MySQL Workbench:(有关MySQL的使用步骤,参考网上MySQL资料)

建立数据库要求:

scheme name: kenlen

default collation: utf8-utf8_unicode_ci

连接数据库的用户名称:root; 密码: (无)

在那个刚完成创立kenlen模版的终端 terminal或 cmd里,输入:

    ./mvnw (ios) 或 ./mvnw spring-boot:run

    mvn (Window 8/10) mvn spring-boot:run

以下是Kenlen开发应用模版各网页显示:

源代码输入Eclipse STS)或 Intellij IDEA

成功建立了J潮客的应用模版后,当然可以把源代码输入Eclipse 或 STS, 方便修改和删除。输入前要知道该应用模版用什么工具来配置依赖资源:Maven 或 Gradle。

  1. 配置Eclipse (STS):
  • Maven (推荐使用)
    •  Select File(选择文件)-> Import
    •  Choose (选择)“Existing Maven Projects”
    •  Select your project(选择项目)
    •  Click on “Finish”(点击“完成”)

按下一步 (Next)

  • 安装 m2e connectors
    • 输入项目后,或会出现一个对话视窗选择安装那个“Maven plugin connectors“
    • 如果在输入项目后出现了错误,都是没有安装这个附件。只需选择Quick Fix/按Ctrl+1(Cmd的+1在Mac)上的错误标记,并选择“Discover new m2e connectors”来安装。
    • 排除Node_modules及其他不用验证档案目录,以免产生验证错误
    • 右键单击项目 - >属性 - >资源 - >资源过滤器
    • 选择:全部排除,适用于文件夹,名称相匹配“node_modules“
    • 按“OK”
    • 排除JavaScript及其他不用验证档案目录,以免产生验证错误
    • 右键单击项目 - >属性 - >Javascript - >包含路径
    • 点击“source”选项卡,选择项目/ src/main/webapp
    • 选择“Excluded:(None) - >编辑 - >添加多个(以下全部是)
    • 选择bower_components和scripts,然后单击“确定”
    • 排除包括(.TMP/node_modules/; src/main/webapp/dist )

     注意:其实可以不必理会这些验证错误,干脆把这些错误删除就是,就不用这样烦。

  • Gradle
    • 在 Eclipse Marketplace 下载及安装 “Gradle Integration for Eclipse”
    • 选择输入项目后,单击 “build.gradle”, 然后单击“确定”
    • 参考https://jhipster.github.io/configuring-ide-eclipse-gradle/
    • 建议不在 Eclipse 运行项目,只作修改之用。可在终端 terminal测试及运行。

  2.  配置Intellij IDEA:参考https://jhipster.github.io/configuring-ide-idea/

Kenlen 项目Maven结构体如下:

 

Kenlen 项目client结构体如下:

简单总结一下

       不少成功的秘诀教导:若要在这竞争性越来越强的世界里,需要先人一步; 光做到自强不息是不够的,必须借助比自己能力强而累积来的经验,相信这样一定会事半功倍!或者说现今科学发达,日新月异,资讯繁多,怎么样才容易跟上? 笔者以为: J潮客就是一个好好学习的例子。基本上,祇用半小时的工作就能得出六星期的工作效果。Kenlen项目有140MBs 资料, 4千多个档案。 有人统计过:一个完成的Java项目祇需要编辑1200条代码,其馀91%的全是由J潮客编制而成的。 各位可以亲自经历一下吧! 笔者会分数期与各位分享J潮客的经验。 例如怎么样增添网页;模型实体,业务接口逻辑 ;  Javascript 动画等等。更深入地讨论数据库的应用。不少高大上的项目都是沿J潮客的途径而进行的。光是在法国就有一间公司, 内有数百名专家以J潮客方式来完成项目工作。

 Kenlen 项目采用各技术版本记录:

Spring Boot 1.3.5, Spring 4.2.6, Metric 3.2.1, hibernate 4.3.11, AngularJs 1.5.5, MySQL 5.7.12

怎样使用压缩附件:

下载后,解压在适当磁碟的目录里。安装kenlen.sql到MySQL内,打开一个终端 terminal或 管理员权益cmd,输入指令:

./mvnw (ios) 或 ./mvn spring-boot:run

    mvn (Window 8/10) 或mvn spring-boot:run

最后萤幕出现:

         ----------------------------------------------

         Application 'kenlen' is running! Access URLs:

         Local:                  http://127.0.0.1:8080

         External:    http://192.168.11.5:8080

 ----------------------------------------------

祇需要在常用的浏览器输入:localhost:8080

浏览器上就会出现Kenlen应用模版首页如上面的。

注意: Kenlen压缩附件已经是完成就绪的开发程式模版。上述所描述的步骤是开发一个全新的项目程式。如果不能启动的话,首先考虑是否数据库密码问题。修改数据库用户名称和密码是在该档案内:

   src/main/resources/config/applicationtion-dev.yml

用一般editor打开,在datasource下面(line 23-24)username, password. 请根据本身的规定改正后保存。不然就是本身开发环境不健全吧。该说都全说了!

 

附上随文例子代码,以供学习参考,下载后敬请赞助。如果您觉得本文的内容对您的学习或工作有所帮助,您可以赞助来支持我,您的认同就是我动力!支付微信在顶部。多少不拘,5元,10元,20元。。。心意而已!

http://files.cnblogs.com/files/sam8881-Blogs/kenlen1.zip

原创,如有转载,请注明出处!

转载自:http://www.cnblogs.com/sam8881-Blogs/p/5630976.html

GitHub:https://github.com/jhipster/generator-jhipster

index:http://jhipster.github.io/

  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 424 关注
  • jHipster
    3 引用 • 1 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
virtualpier
大家都是第一次做人,凭什么我要小心翼翼~

推荐标签 标签

  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6542 引用 • 29404 回帖 • 245 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    53 引用 • 85 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 4 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    189 引用 • 1056 回帖 • 3 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    172 引用 • 990 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖 • 1 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖 • 2 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 38 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 85 回帖 • 1 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 125 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 123 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 430 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    15 引用 • 7 回帖 • 11 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 550 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 3 关注
  • 996
    13 引用 • 200 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 23 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 294 回帖
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 545 关注
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 346 关注