zoukankan      html  css  js  c++  java
  • 来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具

    源代码地址: 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

  • 相关阅读:
    627. Swap Salary
    176. Second Highest Salary
    596. Classes More Than 5 Students
    183. Customers Who Never Order
    181. Employees Earning More Than Their Managers
    182. Duplicate Emails
    175. Combine Two Tables
    620. Not Boring Movies
    595. Big Countries
    HDU 6034 Balala Power! (贪心+坑题)
  • 原文地址:https://www.cnblogs.com/detectiveHLH/p/10855585.html
Copyright © 2011-2022 走看看