zheng项目新建一个module学习学习

原创 2017年10月20日 14:15:28

看一个框架看太多也不如直接操作来的实际,顺便在做的过程中记录一下,接下来谁碰到类似的问题可以快速解决,zheng的项目下面很多的模块,其实对于我来说,很多是用不到的,我删除了很多,留下的只是作为一个基本的参考,毕竟一个新手主要是学,言归正传

新建一个maven模块
<groupId>cn.ts</groupId>
<artifactId>test</artifactId>
建立对应的子模块
  • 有一些子模块你是必须要建立的,可以参考zheng-demo建立,主要是为了使用代码生成快速的构建代码,毕竟手动效率相对来说比较低。
    1. test-dao pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>test</artifactId>
        <groupId>cn.ts</groupId>
        <version>1.0.0</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.ts</groupId>
    <artifactId>test-dao</artifactId>
    <version>1.0.0</version>

    <name>test-dao</name>

    <dependencies>
        <dependency>
            <groupId>com.zheng</groupId>
            <artifactId>zheng-common</artifactId>
            <version>1.0.0</version>
            <type>jar</type>
        </dependency>
    </dependencies>

    <build>
        <finalName>test-dao</finalName>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>generatorConfig.xml</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <dependencies>
                    <dependency>
                        <groupId>com.zheng</groupId>
                        <artifactId>zheng-common</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
  1. test-rpc-api pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>test</artifactId>
        <groupId>cn.ts</groupId>
        <version>1.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.ts</groupId>
    <artifactId>test-rpc-api</artifactId>
    <version>1.0.0</version>


</project>
  1. test-rpc-service pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>test</artifactId>
        <groupId>cn.ts</groupId>
        <version>1.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.ts</groupId>
    <artifactId>test-rpc-service</artifactId>
    <version>1.0.0</version>


</project>

4.代码

// 根据命名规范,只修改此常量值即可
    /**
     * 根据模板生成generatorConfig.xml文件
     * @param jdbc_driver   驱动路径
     * @param jdbc_url      链接
     * @param jdbc_username 帐号
     * @param jdbc_password 密码
     * @param module        项目模块
     * @param database      数据库
     * @param table_prefix  表前缀
     * @param package_name  包名
     */
    private static String MODULE = "test";  //这个地方千万注意源代码里面写的什么东西,有个小点的东西不需要
    private static String DATABASE = "zheng";
    private static String TABLE_PREFIX = "t_"; //我新建的表名没有去用模块的名字作为前缀
    private static String PACKAGE_NAME = "cn.ts.test";
    private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
    private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
    private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
    private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.password");
    // 需要insert后返回主键的表配置,key:表名,value:主键名
    private static Map<String, String> LAST_INSERT_ID_TABLES = new HashMap<>();
    static {
        //LAST_INSERT_ID_TABLES.put("upms_user", "user_id");//不需要的我就直接注释了
    }

    /**
     * 自动代码生成
     * @param args
     */
    public static void main(String[] args) throws Exception {
        MybatisGeneratorUtil.generator(JDBC_DRIVER, JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD, MODULE, DATABASE, TABLE_PREFIX, PACKAGE_NAME, LAST_INSERT_ID_TABLES);
    }
添加相关的package
三层的package都最好自己添加,不然在自动生成代码的时候会爆出缺少文件路径的问题
  • test-dao
    1. 添加cn.ts.dao包,再继续在这个下面添加mapper和mdoel的package
    2. 复制粘贴别的模块的Generator.java和generator.properties
    3. java文件缺少的包,自己在dao的pom文件里面添加下面的依赖就ok了
    <dependency>
        <groupId>com.zheng</groupId>
        <artifactId>zheng-common</artifactId>
        <version>1.0.0</version>
        <type>jar</type>
    </dependency>
  • test-rpc-api
    1.添加cn.ts.test.api的package

  • test-rpc-service

    1. cn.ts.test.dao.mapper
    2. cn.ts.test.rpc.mapper
    3. cn.ts.test.rpc.service.impl

完成以上的操作基本上就可以用代码自动生成进行基础代码的构建,log打印结果如下:

========== 开始生成generatorConfig.xml文件 ==========
数据库连接成功
t_company
t_product
释放数据库连接
========== 结束生成generatorConfig.xml文件 ==========
========== 开始运行MybatisGenerator ==========
log4j:WARN No appenders could be found for logger (org.mybatis.generator.internal.db.DatabaseIntrospector).
log4j:WARN Please initialize the log4j system properly.
========== 结束运行MybatisGenerator ==========
========== 开始生成Service ==========
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TCompanyService.java
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TCompanyServiceMock.java
F:/work/zheng/test/test-rpc-service/src/main/java/cn/ts/test/rpc/service/impl/TCompanyServiceImpl.java
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TProductService.java
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TProductServiceMock.java
F:/work/zheng/test/test-rpc-service/src/main/java/cn/ts/test/rpc/service/impl/TProductServiceImpl.java
========== 结束生成Service ==========
========== 开始生成Controller ==========
========== 结束生成Controller ==========

当然,也可以把common的模块先建立起来,再在“test-dao”的模块中引用“test-common”的depedence,”test-common”中去引用“zheng-common”的depedence


附上一张结构图吧,不然说个XX
这里写图片描述


接下来就是参考zheng-umps的功能,也去试着写一个基本的crud的操作,配合提供的页面。当然,为什么swagger-ui用了,没在readme里面提到?为什么没配图?脑补吧。

原项目链接附上:
https://github.com/shuzheng/zheng

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014449653/article/details/78294862

两种Delphi实现Singleton模式方法

两种Delphi实现Singleton模式方法haozi摘  要 本文描述了两种Singleton模式的Delphi实现方式,并做了对比分析。关键字 设计模式,SingletonSingleton(单...
  • haozi
  • haozi
  • 2002-11-05 11:57:00
  • 776

开源项目学习之(一)------zheng环境搭建

一、项目简介 17年初就接触了zheng这个项目,感觉挺牛的,看他的架构图就知道了 现在都已经18年了,时间好快,特此记录下zheng的环境搭建,虽然,先看下码...
  • bobo0915
  • bobo0915
  • 2018-01-11 15:45:08
  • 1298

zheng项目系统简单的分析记录

接下来是对整体分层的分析,这样才知道每次的调用顺序和每个模块之间做了什么,要承担什么任务。尽管给了一些说明,但是看得不习惯,还是自己上手操作比较的实际,印象深刻。每个不同的任何机构都有自己一套的内部代...
  • u014449653
  • u014449653
  • 2017-10-23 15:15:46
  • 4037

码云zheng项目介绍

zheng 交流QQ群:133107819��、284280411��、305155242��、528049386��、157869467��、570766789��、601147566��、3099...
  • qq_34531925
  • qq_34531925
  • 2017-08-30 17:03:29
  • 1457

大型网站构建:二、服务化框架

SOA概述当我们的网站系统越来越复杂,多个应用并存,业务之间互相依赖,越来越臃肿的时候,我们就要想办法把这些应用拆小了,一些共用的功能可以独立成服务供大家使用。这时候就需要采用服务化的架构,将底层的功...
  • janekeyzheng
  • janekeyzheng
  • 2016-12-19 16:21:13
  • 745

基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构---权限管理系统

原文链接:https://github.com/shuzheng/zheng 安利一个GitHub上的项目,见原文链接。 基于Spring+SpringMVC+My...
  • gaiyindexingqiu
  • gaiyindexingqiu
  • 2017-05-27 21:14:47
  • 6114

zheng项目-从rpc-service开始!

为什么要从rpc-service开始?简单的来说,因为一般我先启动的是这个这个模块,它是作为一个provider方的,现将其服务注册到zookeeper服务中心上面去,再由server端的consme...
  • u014449653
  • u014449653
  • 2017-10-25 14:31:38
  • 3139

进击zheng项目zheng-umps-server

打了几盘农药后,就升一颗心,赛季初水真深,心累。继续上一篇说的内容,进去server的模块,server模块的里面有个admin的模块,这部分基本是前端的内容,不做解释。按照工程上结构从上到下进行梳理...
  • u014449653
  • u014449653
  • 2017-10-26 16:52:42
  • 2593

开源项目几点心得,Java架构必会几大技术点

Java架构必会几大技术点关于学习架构,必须会的几点技术 1. java反射技术 2. xml文件处理 3. properties属性文件处理 4. 线程安全机制 5. annocation注解 6....
  • zhangdaiscott
  • zhangdaiscott
  • 2014-01-15 16:50:23
  • 18998

高效稳定的大型网站系统架构分析(转)

作者:zhen-liang 链接:https://www.zhihu.com/question/29774509/answer/105214270 来源:知乎 著作权归作者所有,转载请联系作者获...
  • tianxingjian111222
  • tianxingjian111222
  • 2016-12-27 17:12:05
  • 884
收藏助手
不良信息举报
您举报文章:zheng项目新建一个module学习学习
举报原因:
原因补充:

(最多只允许输入30个字)