资讯专栏INFORMATION COLUMN

微服务应用架构脚手架

APICloud / 1776人阅读

摘要:微服务应用架构脚手架开源项目地址作为一名码农,经常要为了工作或业余爱好自己搭建项目大公司除外,配环境,找包,很是烦人。可快速创建用于开发环境的基础应用架构。前提是你得有私服的发布账号及密码执行将脚手架发布到私服。

微服务应用架构脚手架

开源项目地址:

http://git.oschina.net/chinax...

作为一名码农,经常要为了工作或业余爱好自己搭建项目(大公司除外),配环境,找Jar包,很是烦人。

Maven支持自定义脚手架,所以自己整了一套多模块的,面向微服务应用的Maven Archetype供大家参考使用。

可快速创建用于开发环境的基础应用架构。

模板生成应用架构组成

生成代码结构

模块是可以自己配置的。

dal: 数据访问层,脚手架中采用的是mybatis, druid.

biz: 逻辑处理层,依赖dal,处理业务逻辑,事物等。

facade: 微服务接口层,对外提供的接口定义,参数定义,数据传输格式定义等。

facade-impl: 微服务接口实现层,具体的微服务逻辑,包括服务的注册发布等,依赖biz层。

integration: 第三方服务层,如果需要调用别的系统发布的服务,可以在这一层订阅具体的服务供内部使用。

web: 视图接口层,处理http请求,响应数据或页面,可以依赖biz和integration.

assembly: 打包处理,将各模块组装成war包。

conf: 配置文件,配合assembly实现不同环境使用不同配置信息的功能。

webdocs: 静态资源文件,模板引擎使用的是freemarker, 当然,你可以自行替换。

安装脚手架

关于 maven 脚手架相关的知识请自行搜索或查阅相关书籍文档。

将本项目克隆或下载到本地目录,执行

mvn clean install

将脚手架发布到本地maven仓库中。

如果需要将其发布到私服中,修改脚手架的pom文件中的 distributionManagement 元素内容为自己的私服地址即可。(前提是你得有私服的发布账号及密码)

执行

mvn clean deploy

将脚手架发布到私服。

查看仓库中会多一个:archetype-catalog.xml 文件。

内容大致如下:

...

  com.quanshi
  sof-archetype
  1.0.0
  sof-archetype

...
使用脚手架

当脚手架发布成功后,就可以使用了。

使用交互的方式:

mvn archetype:generate

出现脚手架列表:

Choose archetype:
...
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
11: local -> com.quanshi:sof-archetype (sof-archetype)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: 

选择 11: local -> com.quanshi:sof-archetype (sof-archetype)

按照提示,输入下面几项内容:

groupId: 你要创建的项目的groupId

artifactId: 你要创建的项目的artifactId

version: 项目版本号

package: 项目基础包路径

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: 11
Define value for property "groupId": com.coder4j
Define value for property "artifactId": demo
Define value for property "version" 1.0-SNAPSHOT: : 1.0.0
Define value for property "package" com.coder4j: : com.coder4j.demo
Confirm properties configuration:
groupId: com.coder4j
artifactId: demo
version: 1.0.0
package: com.coder4j.demo
 Y: : y
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: sof-archetype:1.0.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.coder4j
[INFO] Parameter: artifactId, Value: demo
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: package, Value: com.coder4j.demo
[INFO] Parameter: packageInPathFormat, Value: com/coder4j/demo
[INFO] Parameter: package, Value: com.coder4j.demo
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: groupId, Value: com.coder4j
[INFO] Parameter: artifactId, Value: demo
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoappdalpom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoappizpom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoappfacadepom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoappfacade-implpom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoappintegrationpom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoappwebpom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemoassemblypom.xml
[INFO] Parent element not overwritten in C:Usersyanxiang.huangworkspace	estdemowebdocspom.xml
[INFO] Project created from Archetype in dir: C:Usersyanxiang.huangworkspace	estdemo
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 06:50 min
[INFO] Finished at: 2017-07-27T16:16:00+08:00
[INFO] Final Memory: 13M/243M
[INFO] ------------------------------------------------------------------------

最终得到项目。

或者可以使用一条命令快速生成:

mvn archetype:generate 
-DarchetypeGroupId=com.quanshi 
-DarchetypeArtifactId=sof-archetype 
-DarchetypeVersion=1.0.0 
-DgroupId=com.coder4j 
-DartifactId=bee 
-Dversion=1.0.0 
-Dpackage=com.coder4j.bee

如果是别人发布到私服,你通过私服来创建的话。

将私服地址配置到setting.xml中。

配置mirror或者repository均可。

项目配置

通过脚手架得到的项目需要简单的配置部分内容。

日志路径

项目日志路径的配置文件在:conf/config/logback.xml 中,自行更改一个可以使用的日志路径。

数据库

初始项目的dal层是有初始代码的,需要用到一张表:t_demo

表结构在 dal/src/main/resources/test.sql 中。

数据库的配置文件在 conf/config/application.properties

我这里没有配置到 conf/filter 下,如果你们需要不同环境,请将配置放置到filter目录的不同文件内,assembly打包模块会将filter中的文件填充到config中。

项目启动

配置更改完毕后,下面开始编译启动。

mvn clean package

启动完成,将 target/${artifactId}.war 文件拷贝到 tomcat 的webapps下,启动tomcat即可。

项目默认使用的jdk 1.8编译。

访问:

http://localhost:8080/${artifactId}/

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67493.html

相关文章

  • 适合新手的spring cloud入门教程

    摘要:就和是应用的脚手架一样,是分布式和集群应用的脚手架。是由一个一个的微服务组成,而这些微服务都是在注册中心管理起来的。为了降低维护成本,我们引入了分布式配置服务的概念。 就和 springboot 是 web 应用的脚手架一样, springcloud 是分布式和集群应用的脚手架。 但是并不是所有的同学都有接触过分布式和集群,所以为了让学习曲线变得缓和,站长按照如下顺序展开 spring...

    Pandaaa 评论0 收藏0
  • SpringCloud打造服务平台--概览

    摘要:授权框架使第三方应用程序来获取对服务的有限访问机会。无论是通过编排资源所有者和服务之间的交互批准的资源所有者,或通过允许第三方应用程序来获取自己的访问权限。 SpringCloud打造微服务平台--概览 简述 SpringCloud是什么 Spring Boot和SpringCloud是什么关系 Spring Boot是Spring的一套快速WEB开发的脚手架,可建立独立的Sprin...

    siberiawolf 评论0 收藏0
  • 三分钟学会如何在函数计算中使用 puppeteer

    摘要:为函数计算设置环境变量必填上传到的必填上传到的必填上传到的。另外,按照福布斯杂志的统计,在商业和企业数据中心的典型服务器仅提供的平均最大处理能力的输出。函数计算就是这里的胶水。 摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网页等,实现 U...

    silenceboy 评论0 收藏0
  • weroll - 快速搭建Node.js应用程序手架 (1)- 2分钟Demo

    摘要:是一个能够帮助开发者极速搭建基于微服务架构的应用程序,用最小的代码实现常见的业务的框架。下面我们用分钟时间来体验一下。或全局安装,是一个帮助你快速生成模板项目的命令行工具。 weroll是一个能够帮助开发者极速搭建基于微服务架构的Node.js应用程序,用最小的代码实现常见的web业务的框架。weroll基于MongoDB,Redis,Express 4.x以及APIServer(基于...

    wuyumin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<