源代码地址: Github仓库地址

个人网站:个人网站地址

前言

不知道你是否有过这样的经历。不管你是什么岗位,前端也好,后端也罢,想去了解一下Java开发到底是什么样的,它是不是真的跟传说中的一样。

于是你拿起键盘,用触控板 ? '' : 抄起鼠标',开始了Java淌坑之旅。在一把梭的操作之后,面对你搭建的环境,你陷入了深深的沉思,开始了吾日三省吾身的自我质疑中。这tm到底哪儿错了?到底哪儿在报错?这报错啥意思?

经历了吾日三省吾身的深思之后,你把鼠标移动到了MacOS ? 左上角' : '右上角',然后双手离开了键盘放弃了操作。嗯,刚刚什么都没有发生。

如果你有类似的经历(如果没有请给Java一个面子假装你有过),那么就来认识一下venus-init吧。

venus-init

它是什么

venus-init是一个基于Node.js的命令行工具。使用venus-init,只需要一个命令,然后输入两个参数,就可以创建一个简单的Spring Boot应用。并且初始化的demo项目中还会有一个名叫Hello的模块来帮助你更好的理解这个项目。

在我还没有更新文档的情况下,npm上周下载量就突破了1000,不管是因为什么原因,下错了也好,觉得好用也好。感谢大佬们的支持。

如何使用

怎么做呢?"He can do that with a snap of his fing..." 走错了片场不好意思。首先你需要使用npm install venus-init来安装它。然后只需要在命令行输入如下的命令。

venus init
# you can also do it like this
venus i

只要输入这样一个命令,然后跟随命令行工具的指导,完成创建就ok了。

创建项目之后

完成上述步骤之后,就会发现在键入命令行的目录下,多个一个具有这样结构的目录。(这是我自己创建的demo项目,group和artifact都可以自己指定)

.
├── LICENSE
├── README.md
├── api
│   ├── pom.xml
│   └── src
│   └── main
│   ├── java
│   │   └── com
│   │   └── detectivehlh
│   │   └── demo
│   │   └── api
│   │   ├── Application.java
│   │   ├── config
│   │   │   ├── DbConfig.java
│   │   │   └── SwaggerConfig.java
│   │   ├── controller
│   │   │   └── HelloController.java
│   │   ├── dao
│   │   │   └── HelloMapper.java
│   │   ├── dto
│   │   │   └── HelloDTO.java
│   │   ├── entity
│   │   │   └── Hello.java
│   │   └── service
│   │   ├── HelloService.java
│   │   └── impl
│   │   └── HelloServiceImpl.java
│   └── resources
│   ├── application.yml
│   └── mapper
│   └── HelloMapper.xml
└── pom.xml

其中我内置了一个Hello的模块供大家参考,通过这个模块相信大家可以更加快的熟悉整个项目。整个项目的结构非常的清晰明了。

总共有6个包,config用于存放各种配置,像swagger的配置就放在这个包下面。

controller包是各种模块的控制层,里面包含了项目所有的api。

dao中存放了各个模块和数据库交互的mapper,值得注意的是,dao下只定义了接口,具体的sql则是放在了resources/mapper下。

dto中则是存放了与前端交互的数据结构。简单理解一下,数据库存放的数据并不是前端需要的数据,所以在查到数据之后需要对数据进行一次转换,再把转换好的数据返回给前端。

entity则是存放了与数据库交互的数据结构。通常情况下是与数据库的字段一一对应的。

service包是各个模块的核心代码所处的为主。大量的业务都会在这个包下。

Application则是项目的启动文件。

resources下的application.yml则是整个项目的配置文件。可以在这里配置项目的名称,数据库的配置,以及mybatis的配置,redis的配置等等。

启动项目

建议使用IDEA来打开这个项目,然后右键移动到Application上,选择Run Application即可看到应用运行在8080端口。

接下来,你只需要访问http://localhost:8080/hello,如果看到页面返回了如下信息,那么恭喜你,项目已经成功的启动了。

{
"message": "Hello world",
"createdAt": "current_timestamp"
}

查看项目的接口文档

使用venus-init初始化创建的项目会默认启用swagger文档,这是一个不需要你手写的api文档。swagger基于注解。只要你在对于的controller中写上了对应的注解,swagger就会自动的帮你生成API文档。

在项目成功的启动之后,你只需访问[http://localhost:8080/swagger-ui.html就可以看到自己的项目中有哪些接口,每个接口需要什么参数了以及接口的返回值是什么了。

如何连接数据库

初始化的项目同样也支持mysql的jdbc连接,同时在Hello模块中也实现的例子。

数据库信息

假设你有一个MySQL数据库,名字叫demo,地址是localhost,端口是3306,用户名和密码都是root,那么你需要在application.yml中找到数据库配置,将db_name换成你自己的数据库名也就是demo。然后重新启动项目,就可以直接连上你的数据库了。

如果你需要修改mysql的表名,则需要到HelloMapper.xml中,找到如下段落。

<sql id="tableName">
test
</sql>

test是我们项目初始化时使用的表名,你可以将其换成自己的数据库表名,同理,如果你要换数据库的名字,只需要将上述的db_name换成自己的数据库名即可。

数据库表信息

假设在demo中有一张表叫test,结构如下。

column_name column_value
id 用户id
name 用户名

并且有了数据

column_name column_value
id name
1 detectiveHLH

这个结构也是初始化模块Hello的表结构,所以你只要按照这个结构准备一张同样结构的表即可。

修改HelloServiceImpl

如果你已经成功的连接上了数据库,并且有了相应的表结构和数据。那么你需要把HelloServiceImpl中的注释的两行取消注释即可。然后重启项目,再次访问http://localhost:8080/hello即可看到控制台打印出了从数据查询到的信息。

到此,你就已经成功的打通了数据了。

最后

如果你在使用中遇到了任何的问题,欢迎提Issue

来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具的更多相关文章

  1. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  2. ASP程序写的项目与微信服务号(公众号)完美结合。仅需一个DLL组建WeixinDLL

    因ASP程序开发有很多优点,早年间ASP风靡全球,因此如今还在继续运营的ASP开发的项目仍在运行着,但是随着社交网络不断发达,特别是微信支付.微信通讯.小程序等的出现,导致很多ASP项目对接起来就比较 ...

  3. “焦点图/幻灯片”“Tab标签切换”“图片滚动”“无缝滚动”仅需一个SuperSlidev2.1

    官网:http://www.superslide2.com/index.html 1. 标签切换 / 书签切换 / 默认效果 2. 焦点图 / 幻灯片 3. 图片滚动-左 4. 图片滚动-上 5. 图 ...

  4. Struts2 从一个Action跳至另一个Action

    Struts2  从一个Action跳至另一个Action 一.注解的 @Result(name=SUCCESS,type="chain", params={"actio ...

  5. 显示器 Linux 性能 18 (一个命令行工具传递)

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因. ...

  6. 十分钟通过 NPM 创建一个命令行工具

    大过年的,要不要写点代码压压惊?来花十分钟学一下怎么通过 NPM 构建一个命令行工具. 写了一个小 demo,用于代替 touch 的创建文件命令 touchme ,可以创建自带“佛祖保佑”注释的文件 ...

  7. linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动

    启动一些程序服务的时候,有时候直接去程序的bin目录下去执行命令,有时候利用service启动. 比如启动mysql服务时,大部分喜欢执行service mysqld start.当然也可以去mysq ...

  8. 使用命令行工具npm新创建一个vue项目

    使用vue开发项目的前期工作可以参考前面写的:  Vue环境搭建及node安装过程整理 Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用.该工具提供开箱即用的构建工具配置,带来现代化的 ...

  9. 【Android】 给我一个Path,还你一个酷炫动画

    本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家公布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/53040506 ...

随机推荐

  1. Jenkins学习安装配置和使用

    为了能够频繁地将软件的最新版本,及时.持续地交付给测试团队及质量控制团队,以供评审,所以引入持续集成工具Jenkins,从而实现公司新产品持续集成,自动化部署. 环境准备 ●操作系统:Windows1 ...

  2. PHP实现微信提现功能

    提现必须得用双向证书.所以大家一定要在微信的商户平台找到相应的地方去设置.因为做这个提现已经有一段时间了.所以设置微信商户平台的那几个地方没有图的情况.也说不清楚.下次再做提现的时候.给大家分享如何设 ...

  3. 深蓝词库转换2.6版发布——支持Emoji、颜文字和小鹤双拼

    端午期间,别人在度假,我在家码代码,把深蓝词库转换做了一下版本升级.本次更新主要是2大特性: 1.支持Emoji和颜文字 在源词库中可以选择Emoji. Emoji文件的格式为: Emoji+< ...

  4. 学习强国docker文件用法

    学习强国docker用法 docker文件地址   https://github.com/fuck-xuexiqiangguo/docker 构建  docker  docker build -t D ...

  5. Winform中使用DevExpress的CheckEdit控件实现多选条件搜索

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  6. WM消息大全,windows消息大全

    WM消息大全 消息名 消息值 说明 WM_CREATE 0x0001 应用程序创建一个窗口 WM_DESTROY 0x0002 一个窗口被销毁 WM_MOVE 0x0003 移动一个窗口 WM_SIZ ...

  7. 【前端知识体系-NodeJS相关】对NodeJS模块机制的理解

    1. CommonJS模块规范 1.1 模块引用 var math = require('math'); 1.2 模块定义 [!NOTE] 上下文提供exports对象用于导出当前模块的方法和变量,并 ...

  8. 7.智能快递柜(APP及微信公众号)

    1.智能快递柜(开篇) 2.智能快递柜(终端篇) 3.智能快递柜(通信篇-HTTP) 4.智能快递柜(通信篇-SOCKET) 5.智能快递柜(通信篇-Server程序) 6.智能快递柜(平台篇) 7. ...

  9. Good start is a half success(2019-04-07)

    一. 回顾你过去将近3年的学习经历. (1)当初你报考的时候,是真正喜欢计算机这个专业吗?. (2)你现在后悔选择了这个专业吗?. (3)你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域 ...

  10. Playbook剧本小结

    1.Playbook剧本小结 1.什么是playbook,playbook翻译过来就是"剧本",那playbook组成如下 play: 定义的是主机的角色task: 定义的是具体执 ...