专栏首页架构师小秘圈利用顶层框架,秒变微服务专家

利用顶层框架,秒变微服务专家

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 ✔ Global configuration file is valid ✔ NODE_PATH matches the npm root ✔ Node.js version ✔ No .bowerrc file in home directory ✔ No .yo-rc.json file in home directory ✔ 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)

简单总结一下 不少成功的秘诀教导:若要在这竞争性越来越强的世界里,需要先人一步; 光做到自强不息是不够的,必须借助比自己能力强而累积来的经验,相信这样一定会事半功倍!或者说现今科学发达,日新月异,资讯繁多,怎么样才容易跟上? 笔者以为: J潮客就是一个好好学习的例子。 Jhipster 项目,超越了传统的 Web 应用框架的范畴, 为 Java Web 开发提供了多种架构和解决方案 谁在用 Google 埃森哲 Adobe heroku 普华永道 西门子...(官网可查) 清单中不仅有著名的互联网公司,还有传统企业的信息部门,可见其影响力 你为什么不试试 思路 Jhipster 开源项目由全球富有经验的 Java Web 工程师维护, 提供了一整套标准、前沿、高效的 Java Web 开发环境和示例代码 原本我是不用 Java 的,看到了 Spring Boot 还有些犹豫, 看到 Jhipster 之后,我觉得就是它了 后端 Jhipster 提供了两套后端架构示例代码,单机 Monolithic 和集群 Microservices(二选一) 建立在 Spring Boot 和 Spring Cloud 的基础之上,需要开发人员有一些 Spring Boot 基础 Maven、Gradle 构建工具(二选一) 集成了 Swagger 提供了开发环境和产品环境两种 DevOps 模式,支持 Docker、Jenkins 数据库 支持 MySQL 等关系型数据库和 NoSQL数据库(产品模式)(多选一) 支持 H2 嵌入式数据库(开发模式,提供管理工具) 使用 Liquibase 进行数据库版本控制 数据库缓存,单机 Ehcache 和集群 Hazelcast (二选一) 前端 提供了 AngularJS 和 Angular2+ 两套前端单页示例代码 示例代码中也有 Thymeleaf,也可以使用第三方提供的 React 和 vue 代码 (多选一) 前端 CSS 引入了 Bootstrap,支持 SASS 支持 i18n 构建工具 Gulp + Bower 或 Webpack(根据 ng1 ng2+) 集成了 ng 的一些测试框架(三选一) 目前 ng4 坑还很多,建议先用 ng1、react、vue 中你觉得坑最少的那个 脚手架 新项目在创建之时,已经实现了用户登录系统(三选一),和管理工具页面 官方高度推荐的 CURD 工具(JDL)可以让开发者在项目初期, 通过领域模型的定义,快速生成数据库、后端、以及前端页面 最佳实践 许多脚手架代码,都蕴含了最佳实践,比如: 项目 Leader 是 Spring 界大神, ng2 部分一直由 Google 工程师维护, Hazelcast 官方提供了相关的数据库缓存代码 站在巨人的肩膀上 价值 新人:在一整套集成开发环境和前后分离的示例代码中迅速成长 老鸟:体验全栈和运维的各种新组件,新用法 骨灰:可用的 Microservices 架构 欢迎诸位入坑 本文参考出处: 1,http://www.cnblogs.com/libingbin/ 2,https://www.zhihu.com/question/51082079 另外:既懂程序又会画漫画的码农,你见过么?居然可以把算法画的这么清新脱俗,我也是醉了,有兴趣的可以戳下面红色链接! 漫画:什么是布隆算法 分享:2T架构师学习资料干货分享

本文分享自微信公众号 - 架构师小秘圈(seexmq)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实现微服务架构最流行Style,Spring Boot+Spring Cloud

    我的学习是先从Spring boot开始的,然后接触到微服务架构,当然,这一切最大的启迪还是感谢我的一个老师,是他给我指明了新的道路,让我眼前一亮,再次感谢。

    架构师小秘圈
  • 微服务架构下的测试之道

    1.系统架构的演变 伴随着互联网的快速发展,Web应用系统从面向企业内部发展到面向市场用户,业务的日趋复杂以及用户量的上升,那些曾经工作良好的单体应用开始遇到...

    架构师小秘圈
  • 高效sql性能优化极简教程

    一,sql性能优化基础方法论 对于功能,我们可能知道必须改进什么;但对于性能问题,有时我们可能无从下手。其实,任何计算机应用系统最终队可以归结为: cpu消耗 ...

    架构师小秘圈
  • 一些能提高ABAP开发人员日常工作效率的ABAP小工具

    I write some small ABAP tools for my daily work. Some of them might not be so us...

    Jerry Wang
  • SpringCloud组件 & 源码剖析:Eureka服务注册方式流程全面分析

    在SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?文章中我们讲到了服务注册的几种注册方式,那么这几种注册方式的源码是怎么实现的呢?我们...

    恒宇少年
  • [TCP/IP] TCP报文长度是由什么确定的

    MTU:最大传输单元,以太网的MTU为1500Bytes MSS:最大分解大小,为每次TCP数据包每次传输的最大数据的分段大小,由发送端通知接收端,发送大...

    陶士涵
  • 机器人大闹光棍节:直击双11京东全链路军演ForceBot

    用户1682855
  • 【Rust项目推荐】xactor - 基于async-std的actor框架

    Xactor is a rust actors framework based on async-std。

    MikeLoveRust
  • Django的信号机制详解

    Django提供一种信号机制。其实就是观察者模式,又叫发布-订阅(Publish/Subscribe) 。当发生一些动作的时候,发出信号,然后监听了这个信号的函...

    KEVINGUO_CN
  • 生成算法让机器人在真实世界中演化,全程无需人类介入(视频)

    【新智元导读】挪威奥斯陆大学研究者让机器人使用“生成设计”算法和3D打印机,自我设计、发展和制造,全程无需人类输入。在生成设计中,具有创造力并且能够创造的机器设...

    新智元

扫码关注云+社区

领取腾讯云代金券