Java Spring Boot 服务模块示例

示例内容

基于 Java Runtime 部署运行 Java Spring Boot 应用的 jar。

说明:在示例中提供了两个 Controller:

  • EnvController 用于显示所有的服务运行环境变量,方便大家了解和验证服务部署定义文件中的属性定义和环境变量。
  • DataTestController 用于验证连接数据库,在后面的部署过程中会包括如何配置数据库初始化脚本,以及如何通过环境变量连接数据库。

示例资源

源码解读

源码的 zip 包解开后是一个 Java Spring Boot 的 Maven 工程,如果在本地独立运行需要提供一个 MySQL ,建表和数据初始化语句参见 initdb.data.m,数据库的连接信息自行在 src/main/resources/application.properties 中修改。

src/main/resources/application.properties 中的配置如下:

server.port=${DEMO_SPRINGBOOT_PORT:9090}

spring.datasource.url=${DEMO_SPRINGBOOT_DBURL:jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai}
spring.datasource.username=${DEMO_SPRINGBOOT_DBUSER:root}
spring.datasource.password=${DEMO_SPRINGBOOT_DBPASSWD:x5}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis-plus.configuration.map-underscore-to-camel-case=false

说明:在 application.properties 中服务端口和数据库连接参数都配置了环境变量,在后面的部署过程中我们会通过服务定义文件中的属性定义给出这些环境变量。

部署过程

1. 在架构设计工具中,在 运行架构(POOL) 模式下,将组件面板中 数据库2 组件拖到架构图中, 并将连线指向 MySQL,保存后按提示重启制作台。 说明:一个微服务应用中,通过架构图可以配置多个异构的数据库,多个服务模块是各自使用独立的数据库,还是共用数据库,与在服务定义文件中引用的数据库实例有关,甚至可以在一个服务模块中引用多个数据库实例。

2. 在 /model/service 目录下创建如下的目录和文件:

    |-- /model/service/demo-springboot                   // 服务模块根目录
        |-- deploy                                      // 服务定义目录
            |-- production.def.xml                          // 服务部署定义文件
            |-- start.sh                                    // 自定义服务启动脚本
        |-- dist                                        // 服务资源目录
            |-- com.justep.demo.springboot-1.0.jar          // 服务部署资源文件
        |-- deploy.m                                    // 服务模块标识文件
        |-- app.m                                       // 服务网关定义文件
        |-- initdb.data.m                               // 数据模型文件
        |-- project.xml                                 // 服务工程文件

其中:

  • deploy.m 服务模块标识文件,文件内容为空
  • app.m 服务网关定义文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<service>
    <!-- 网关注册服务名 -->
    <name>demo-springboot</name>
    <!-- 网关注册路径 -->
    <request_path>/demospringboot</request_path>
    <!-- 是否保留主机 -->
    <preserve_host>false</preserve_host>
    <!-- 是否截断URL -->
    <strip_request_path>true</strip_request_path>
    <!-- 服务访问路径 -->
    <upstream_url>http://{{.Env.DEMO_SPRINGBOOT_SERVICEADDRESS}}:{{.Env.DEMO_SPRINGBOOT_PORT}}</upstream_url>
</service>

说明:在 app.m 服务网关定义文件中,声明当前服务的网关访问路径是 /demospringboot,指向的 Java Spring Boot 启动后的地址。upstream_url 的地址来自服务部署定义文件中的属性定义所对应的环境变量。

  • production.def.xml 服务部署定义文件,文件内容如下:
<service>
    <!-- 属性定义 -->
    <properties>
        <property name="serviceAddress" value="${appsvc.serviceAddress}">
            <label label = "服务地址"/>
        </property>
        <property name="port" value="9001">
            <label label = "端口(port)"/>
        </property>

        <property name="dbUser" value="${db.dbUser}" readonly="true">
            <label label = "数据库用户名"/>
        </property>
        <property name="dbPasswd" value="${db.dbPasswd}" readonly="true">
            <label label = "数据库密码"/>
        </property>
        <property name="dbUrl" value="@jdbcUrl('db')@" readonly="true">
            <label label = "dbUrl"/>
        </property>
    </properties>
    <!-- 引用定义 -->
    <uses>
        <use name="db" instance="comp.database2"></use>
    </uses>
    <!-- 容器定义 -->
    <spec platform="app-container">
        <option name="name" value="appsvc" />
        <option name="instance" value="java-runtime" />
        <option name="container" value="java" />
    </spec>
</service>

说明:在 production.def.xml 服务定义文件中,在 spec 部署定义部分声明当前模块的部署运行环境是 java-runtime;在 properties 属性定义中属性 serviceAddress 的值引用来自部署定义中的 java-runtime,属性 port 用于指定 Java Spring Boot 应用的服务端口 - 9001;其他几个属性 dbUserdbPasswddbUrl 的值来自引用定义中的 comp.database2(在第一个步骤中拖到架构图上的 数据库2 组件)。

#!/bin/bash

echo start=====================================
java -jar $DIST_DIR/demo-springboot/com.justep.demo.springboot-1.0.jar

说明start.sh 在服务启动时会被调度引擎自动执行,这里利用环境变量 $DIST_DIR 拼出 jar 的文件路径。

  • initdb.data.m 数据模型文件,用于初始化创建表和初始化数据,文件内容如下:
<data filepath="service/demo-springboot/initdb.data.m">
    <class _version="2.0.27">
    </class>
    <mapping xmlns="http://www.justep.com/model">
        <extsql>
            <default></default>
            <mysql>
                <![CDATA[
                    ===batch(error:continue)===
                    CREATE TABLE IF NOT EXISTS `demo_customers` (
                        `fCustomerID` varchar(100) NOT NULL DEFAULT '',
                        `version` int(11) NOT NULL COMMENT '版本',
                        `fCompanyName` varchar(64) NOT NULL COMMENT '公司名称',
                        `fContactName` varchar(64) DEFAULT NULL COMMENT '联系人名称',
                        `fContactTitle` varchar(64) DEFAULT NULL COMMENT '联系人职位',
                        `fAddress` varchar(256) DEFAULT NULL COMMENT '地址',
                        `fCity` varchar(64) DEFAULT NULL COMMENT '城市',
                        `fRegion` varchar(64) DEFAULT NULL COMMENT '地区',
                        `fPostalCode` varchar(16) DEFAULT NULL COMMENT '邮编',
                        `fCountry` varchar(64) DEFAULT NULL COMMENT '国家',
                        `fPhone` varchar(64) DEFAULT NULL COMMENT '电话',
                        `fFax` varchar(64) DEFAULT NULL COMMENT '传真',
                        PRIMARY KEY (`fCustomerID`),
                        UNIQUE KEY `IDX_DEMO_CUSTOMERS_COMPANYNAME` (`fCompanyName`)
                        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

                    ===data===
                    INSERT IGNORE INTO `demo_customers` (`fCustomerID`, `version`, `fCompanyName`, `fContactName`, `fContactTitle`, `fAddress`, `fCity`, `fRegion`, `fPostalCode`, `fCountry`, `fPhone`, `fFax`) VALUES
                        ('02AA1370D3144BB8A82CEA06FDF52C64', 0, '椅天文化事业', '方先生', '物主', '花园西路 831 号', '常州', '华东', '860954', '中国', '(026) 5554112', NULL),
                        ('04AD434DE6DF4057BE831FD7ADF584CC', 0, '威航货运有限公司', '刘先生', '销售代理', '经七纬二路 13 号', '大连', '东北', '120412', '中国', '(061) 11355555', '(061) 11354892'),
                        ('07FFEB7712E6405797DD56714EF7331B', 0, '立日股份有限公司', '李柏麟', '物主', '惠安大路 38 号', '石家庄', '华北', '502299', '中国', '(031) 4234226', '(031) 4234227'),
                        ('0A7AF92C5629457799BCB3E21EC1C555', 0, '瑞栈工艺', '苏先生', '销售代表', '创业路 361 号', '南京', '华东', '825777', '中国', '(097) 5557584', '(097) 555-2880'),
                        ('10313C1D3E6B480BB366E444EFCE28AB', 0, '广通', '王先生', '结算经理', '平谷嘉石大街 38 号', '重庆', '西南', '808059', '中国', '(078) 95554729', '(078) 95553745'),
                        ('123415FE3261448688C7682F535B329F', 0, '建资', '陈先生', '销售经理', '广惠东路 38 号', '张家口', '华北', '242353', '中国', '(0922) 5558282', NULL),
                        ('167F36B5DBC2475BB8811408AECE8CD7', 0, '德化食品', '王先生', '结算经理', '劝业路 103 号', '天津', '华北', '871108', '中国', '(030) 74546200', '(030) 77456210'),
                        ('1B927017EE954EE5B7D7C2BCE987AD5C', 0, '业兴', '李柏麟', '销售员', '淮河路 348 号', '上海', '华东', '241008', '中国', '(021) 85559482', NULL),
                        ('1BEE00D397A64A359A006AE12D8C2E08', 0, '中硕贸易', '苏先生', '销售经理', '威成路 321 号', '深圳', '华南', '837206', '中国', '(0571) 86213243', '(0571) 86223344'),
                        ('1C14C2CC039E409DA011599B824CA50D', 0, '山泰企业', '黎先生', '结算经理', '舜井街 561 号', '天津', '华北', '575909', '中国', '(030) 26471510', '(030) 26471511'),
                        ('1DD845998E4345EE98E5456BAD70F04C', 0, '高上补习班', '徐先生', '结算经理', '广场路 205 号', '天津', '华北', '787869', '中国', '(030) 72035188', NULL),
                        ('1EB5FEE3B9BB4632B5805920E0FC9965', 0, '凯诚国际顾问公司', '刘先生', '销售经理', '威刚街 481 号', '深圳', '华南', '175600', '中国', '(0571) 35558122', NULL),
                        ('2083B8B2061345098752928905DA2520', 0, '永大企业', '余小姐', '销售经理', '港务口街 29 号', '南京', '华东', '478668', '中国', '(089) 7034214', NULL),
                        ('2113675389704CB7904F6EE254A8CFD1', 0, '悦海', '陈玉美', '销售代理', '八一路 384 号', '青岛', '华东', '054356', '中国', '(0217) 2012467', '(0217) 2012468'),
                        ('24021ABE956D48AB9A35CA3DAE9CB1BD', 0, '霸力建设', '谢小姐', '销售代表', '东岗大路 9 号', '重庆', '西南', '048766', '中国', '(025) 30598410', '(025) 30598511'),
                        ('27A117E2C20345FDA2A27B3A0F319E11', 0, '文成', '唐小姐', '销售代表', '临江街 32 号', '常州', '华东', '820097', '中国', '(056) 34988260', '(056) 34988261'),
                        ('2A73E91DC7554CC4BA368994CC50CE37', 0, '友恒信托', '余小姐', '市场经理', '经二路 9 号', '秦皇岛', '华北', '500798', '中国', '(089) 3877310', '(089) 3877451'),
                        ('2B5DD4A1592C46558E7516F917C6EB96', 0, '实翼', '谢小姐', '结算经理', '永惠西街 392 号', '南昌', '华东', '674674', '中国', '(0211) 5550091', '(0211) 5558765'),
                        ('2C12A7C3D1CB42C68FD4CF67AB745218', 0, '国顶有限公司', '方先生', '销售代表', '天府东街 30 号', '深圳', '华南', '890879', '中国', '(0571) 45557788', '(0571) 45556750'),
                        ('2E71D91C6FED49F9BF885EB72D301757', 0, '昇昕股份有限公司', '谢小姐', '销售经理', '车站南路 721 号', '深圳', '华南', '820077', '中国', '(0571) 35554680', '(0571) 35556525'),
                        ('3129C773E2BB4993B8BBAA741C5DCBEE', 0, '嘉元实业', '刘小姐', '结算经理', '东湖大街 28 号', '天津', '华北', '458965', '中国', '(091) 25559444', '(091) 25555593'),
                        ('3409635693B34B3C8C572B828AE3CBBD', 0, '宇欣实业', '黄雅玲', '助理销售代理', '大峪口街 702 号', '天津', '华北', '101046', '中国', '(030) 45553412', NULL),
                        ('3C627C0C261E43BDB56191F8C0575D90', 0, '留学服务中心', '赵小姐', '市场助理', '定成路 92 号', '北京', '华北', '785878', '中国', '(010) 85551189', NULL),
                        ('3E6C969E105948C1924D34103A8CAA7F', 0, '汉光企管', '王先生', '物主', '成前路 116 号', '重庆', '西南', '027773', '中国', '(071) 98923542', '(071) 98924744'),
                        ('44A87B701C854EBAB00516551B0266BC', 0, '和福建设', '刘先生', '市场助理', '创业西路 238 号', '天津', '华北', '055654', '中国', '(030) 15553392', '(030) 15557293'),
                        ('4672519D16644D2E9534CECB5DC15DB0', 0, '五洲信托', '苏先生', '物主', '沿江北路 942 号', '南京', '华东', '876060', '中国', '(087) 69534671', NULL),
                        ('4B68CF15958D45EC8D8382BB80E88B1E', 0, '康浦', '王先生', '销售经理', '授业路 361 号', '南京', '华东', '964532', '中国', '(087) 43542534', '(087) 43542535'),
                        ('4BF611C0DF4640F48F46A6DACD3AA650', 0, '中通', '林小姐', '销售代理', '光复北路 895 号', '天津', '华北', '809784', '中国', '(030) 35550297', '(030) 35553373'),
                        ('4C66EA4FE4FB4C689EE12293D98B340F', 0, '东帝望', '成先生', '市场经理', '起义路甲 921 号', '青岛', '华东', '474747', '中国', '(0251) 1031259', '(0251) 1035695'),
                        ('4C8920BE1CB441978A6AB0A0F696FC87', 0, '世邦', '黎先生', '采购员', '光明东路 395 号', '海口', '华南', '454748', '中国', '(0241) 10391231', '(0241) 10594282'),
                        ('5369103B305E4E7FB11F46887BD54FC9', 0, '五金机械', '苏先生', '销售代表', '德昌路甲 29 号', '大连', '东北', '564576', '中国', '(053) 5556874', '(053) 5552376'),
                        ('551D276DD1D64BB4A5D0309702CD7072', 0, '师大贸易', '苏先生', '销售员', '黄岗北路 73 号', '天津', '华北', '683045', '中国', '(030) 29672542', '(030) 29673333'),
                        ('57AD4DBEF100446194CCDE0BA3A9CF79', 0, '三川实业有限公司', '刘小姐', '销售代表', '大崇明路 50 号', '天津', '华北', '343567', '中国', '(030) 30074321', '(030) 30765452'),
                        ('5A38956951E44B598B6921D4622DDC49', 0, '三捷实业', '王先生', '市场经理', '英雄山路 84 号', '大连', '东北', '130083', '中国', '(061) 15553392', '(061) 15557293'),
                        ('5B02F34FEB8D4391ACC518CB16EF2C18', 0, '红阳事业', '王先生', '市场助理', '外滩西路 238 号', '深圳', '华南', '687759', '中国', '(0571) 75559857', NULL),
                        ('5DE7FC8431994D0BB139CA7349726D80', 0, '远东开发', '王先生', '销售代表', '崇盛路 82 号', '深圳', '华南', '498045', '中国', '(0571) 75551340', '(0571) 75551948'),
                        ('5EA6956B194D4FD495EB4676E943356F', 0, '上河工业', '谢小姐', '市场经理', '车站路 631 号', '海口', '华南', '013077', '中国', '(053) 5553612', NULL),
                        ('5EF4D4D8A4C946108BB7B3DA05708CED', 0, '国银贸易', '余小姐', '市场经理', '辅城街 42 号', '南京', '华东', '546590', '中国', '(087) 40322121', '(087) 40322120'),
                        ('6C8E426D7A3049DC96B47A94360FCE6A', 0, '春永建设', '王先生', '市场经理', '劳动辅路 395 号', '深圳', '华南', '013056', '中国', '(0571) 35557969', '(0571) 35556221'),
                        ('703B8E38629E4E4998CF5F6FA85962C6', 0, '通恒机械', '黄小姐', '采购员', '东园西甲 30 号', '南京', '华东', '798089', '中国', '(0921) 9123465', '(0921) 55123467'),
                        ('7B850B8B5A19409E88478AD44A29B43E', 0, '东旗', '王先生', '市场经理', '尊石路 238 号', '深圳', '华南', '411012', '中国', '(0571) 20334560', '(0571) 20334561'),
                        ('7D99C55AB00E47A8B5940F5CE0285F96', 0, '建国科技', '陈先生', '销售员', '肥水路 93 号', '天津', '华北', '345256', '中国', '(030) 52256721', '(030) 52256722'),
                        ('7E90626A5A1F46409020011997520A8F', 0, '赐芳股份', '刘先生', '市场经理', '车站东路 831 号', '厦门', '华南', '899453', '中国', '(0177) 4755601', '(1177) 4755602'),
                        ('80B315A7BE6D46EC84EDEF93F9F0CA95', 0, '学仁贸易', '余小姐', '助理销售代表', '辅城路 601 号', '温州', '华东', '837209', '中国', '(055) 5555939', '(055) 5553620'),
                        ('80CB4720BF8143D191E40BF4FF20683C', 0, '森通', '王先生', '销售代表', '常保阁东 80 号', '天津', '华北', '787045', '中国', '(030) 30058460', '(030)  33008924'),
                        ('81BCBD87B74A45E8A2EAE7D00F2A1677', 0, '富同企业', '王先生', '销售员', '广西路 24 号', '石家庄', '华北', '780008', '中国', '(031) 5557733', '(031) 555-2530'),
                        ('8276F50D4DED46E09729A0CE25DDA2FE', 0, '艾德高科技', '谢小姐', '销售经理', '起义路 231 号', '天津', '华北', '013072', '中国', '(030) 55657717', '(030) 55655646'),
                        ('8BDC0901E12B4200B5C7BBA2F9E3B757', 0, '幸义房屋', '刘先生', '销售代表', '七一路 89 号', '南京', '华东', '167556', '中国', '(069) 20245984', '(069) 20245874'),
                        ('8F8AA2F2FE3046988C7A7836724AC7F3', 0, '兴中保险', '方先生', '物主', '豪威西路 238 号', '厦门', '华南', '750165', '中国', '(0415) 5555938', NULL),
                        ('92AC401F045640EE8991828C82FBFCF6', 0, '华科', '吴小姐', '市场助理', '和光北路 952 号', '大连', '东北', '280235', '中国', '(0514) 5558054', '(0514) 5558055'),
                        ('9571793F8D8C4E6E98B6438A47BF9149', 0, '正太实业', '林慧音', '销售经理', '花园西街 28 号', '天津', '华北', '440875', '中国', '(030) 25559573', '(030) 25559646'),
                        ('96B598EBFE68474AA55580B0F7BC569E', 0, '大钰贸易', '胡继尧', '销售代表', '冠成园路 321 号', '重庆', '西南', '801023', '中国', '(071) 85558097', NULL),
                        ('96C86CE29C3C465B8730FFE0595E859E', 0, '志远有限公司', '王小姐', '物主/市场助理', '光明北路 211 号', '张家口', '华北', '411019', '中国', '(023) 9022458', '(023) 9022458'),
                        ('994DE3484225415AB546B5B0B47319C2', 0, '万海', '林小姐', '销售代表', '劳动路 23 号', '厦门', '华南', '353467', '中国', '(071) 45552282', '(071) 45559199'),
                        ('997C36EA59CF473A93E5B0E5B1C8F32A', 0, '百达电子', '徐文彬', '物主', '黄口江路 521 号', '天津', '华北', '972077', '中国', '(030) 31123456', '(030) 31133557'),
                        ('9F1DF6D7A3E140B4BD9D89E1DF2C2E58', 0, '东南实业', '王先生', '物主', '承德西路 80 号', '天津', '华北', '234575', '中国', '(030) 35554729', '(030) 35553744'),
                        ('A07805A43F2742F78155D1FEB93AB13A', 0, '富泰人寿', '陈先生', '结算经理', '光伦东路 381 号', '天津', '华北', '995085', '中国', '(030) 33116954', '(030) 33117256'),
                        ('A73A3D1C30AB47DD98D573A9A473F392', 0, '迈多贸易', '陈先生', '物主', '临翠大街 80 号', '西安', '西北', '907987', '中国', '(091) 85552282', '(091) 85559199'),
                        ('A77CC30964AC42D3863C9C98A5048990', 0, '亚太公司', '陈先生', '销售代表', '石碑路丁 211 号', '石家庄', '华北', '871102', '中国', '(031) 55562167', '(031) 55562168'),
                        ('ADC36A1B082347D6A25C75317C0C6019', 0, '兰格英语', '王先生', '结算经理', '广安南街 82 号', '北京', '华北', '785678', '中国', '(010) 65554252', '(010) 65554545'),
                        ('ADED7CF285E04132B936D8A84AB5D1E4', 0, '正人资源', '谢小姐', '销售经理', '临江东街 62 号', '深圳', '华南', '906853', '中国', '(0571) 76753425', '(0571) 76753426'),
                        ('AF09E068832A42E3B49C46309080E2B5', 0, '迈策船舶', '王俊元', '物主', '沉香街 329 号', '常州', '华东', '565474', '中国', '(056) 40678888', '(056) 40678989'),
                        ('B2320EDE40244A6C9A4ADEC45C027EB9', 0, '凯旋科技', '方先生', '销售代表', '使馆路 371 号', '天津', '华北', '212400', '中国', '(030) 71100361', '(030) 07115428'),
                        ('B2AD86F1B5B9446095546F76C0270D06', 0, '鑫增贸易', '周先生', '市场经理', '东府大街 31 号', '西安', '西北', '502255', '中国', '(091) 65558888', NULL),
                        ('B43262C83A6842EFB9F1A813D07155DD', 0, '大东补习班', '陈小姐', '销售代表', '创业东路 38 号', '深圳', '华南', '837207', '中国', '(0571) 51235555', '(0571) 51235556'),
                        ('BA1AAB6833FF45C28896BF125D27E9CF', 0, '保信人寿', '方先生', '物主', '创业北路 32 号', '海口', '华南', '301256', '中国', '(0899) 3345612', '(0899) 3349393'),
                        ('C077A9CA920742A7A5946161449F314D', 0, '就业广兑', '唐小姐', '销售代表', '淮水路 348 号', '天津', '华北', '786785', '中国', '(030) 55223745', '(030) 55453745'),
                        ('C1DEA31387B543D7AFA2847CECB3F066', 0, '新巨企业', '成先生', '市场助理', '车站西路 391 号', '成都', '西南', '350894', '中国', '(046) 55565834', '(046) 55568083'),
                        ('C360A264D07B413581CFAE59EF5470AF', 0, '光明杂志', '谢丽秋', '销售代表', '黄石路 50 号', '深圳', '华南', '760908', '中国', '(0571) 45551212', NULL),
                        ('C5A839E3E5E54760AF023A0B0BF9A62C', 0, '国皓', '黄雅玲', '市场经理', '广发北路 10 号', '大连', '东北', '565479', '中国', '(0671) 88601531', '(0671) 88601532'),
                        ('CD9B991A82044CEE936F2FCE270C03C4', 0, '祥通', '刘先生', '物主', '花园东街 90 号', '重庆', '西南', '567690', '中国', '(078) 91244540', '(078) 91244541'),
                        ('CDA552B492AA49ADB80AACB9D2000EA1', 0, '坦森行贸易', '王炫皓', '物主', '黄台北路 780 号', '石家庄', '华北', '985060', '中国', '(0321) 5553932', NULL),
                        ('CE0578978EE34F45BA3B59B339BB863B', 0, '光远商贸', '陈先生', '物主', '成川东街 951 号', '天津', '华北', '122096', '中国', '(030) 32832951', '(030) 32833397'),
                        ('D14E079FBCED446B8EB65C955CC04177', 0, '协昌妮绒有限公司', '王先生', '物主', '长春路 371 号', '天津', '华北', '507392', '中国', '(030) 45552933', NULL),
                        ('D521554BAD87403387B8AAA7A56F2DC3', 0, '升格企业', '王俊元', '结算经理', '黄池路 931 号', '石家庄', '华北', '974030', '中国', '(031) 9814655', '(031) 9813655'),
                        ('D77EFD1803B04679A3B3775A9832F831', 0, '浩天旅行社', '方先生', '物主', '白广路 314 号', '天津', '华北', '234254', '中国', '(030) 30076545', NULL),
                        ('D99D1857A7514A3EBA9D6AB45F8ECB57', 0, '仪和贸易', '王先生', '市场经理', '经三纬四路 18 号', '北京', '华北', '120475', '中国', '(010) 65557555', NULL),
                        ('DA8CF2A1AFA64FD6B61D6826F43280BD', 0, '嘉业', '刘先生', '助理销售代理', '经三纬二路 8 号', '石家庄', '华北', '576906', '中国', '(0321) 20161016', '(0321) 20161017'),
                        ('E3224D14F1A240498886CE90B93D72D7', 0, '利合材料', '陈先生', '销售代理', '东临大街 32 号', '秦皇岛', '华北', '780005', '中国', '(0117) 1355333', '(0117) 1355535'),
                        ('E6D0F9142BC94C5689BA2A7E378FEDE6', 0, '池春建设', '王先生', '销售经理', '青年南街 291 号', '天津', '华北', '502564', '中国', '(030) 61776110', '(030) 61776111'),
                        ('E9467B02A16B4C138EC5936A956C8536', 0, '仲堂企业', '徐文彬', '市场助理', '创业街 57 号', '天津', '华北', '440007', '中国', '(030) 34202376', NULL),
                        ('E96121CF33B14649AA452057FBA51948', 0, '阳林', '刘先生', '市场经理', '城东大街 47 号', '深圳', '华南', '801056', '中国', '(0571) 36402300', '(0571) 36402311'),
                        ('EC16EC62D35E4555BA7F09345BC1960D', 0, '康毅系统', '林彩瑜', '销售代表', '成东大街 951 号', '张家口', '华北', '801070', '中国', '(019) 3565634', NULL),
                        ('EE37C7145F4C4C9589606A9D98323864', 0, '永业房屋', '谢丽秋', '销售员', '东园大路 78 号', '重庆', '西南', '101057', '中国', '(025) 55509876', NULL),
                        ('F2B17A7B124F416E87CEB90402BF8F36', 0, '伸格公司', '林小姐', '销售员', '石碑路甲 141 号', '深圳', '华南', '342356', '中国', '(0571) 55518257', '(0571) 55512174'),
                        ('F5E58844BE7447D4933842C79ED17FA7', 0, '顶上系统', '方先生', '销售经理', '纬四路 523 号', '常州', '华东', '907077', '中国', '(056) 6562722', '(056) 6562723'),
                        ('F83FF0DF8574403BA90DCC63B9C38E3C', 0, '汉典电机', '刘先生', '物主', '潼关路 41 号', '天津', '华北', '421008', '中国', '(030) 56427012', '(030) 56427012'),
                        ('FBA2ACD80068465483F8ABC1C1EE9348', 0, '同恒', '刘先生', '销售员', '七一路 37 号', '天津', '华北', '453466', '中国', '(030) 35557647', NULL),
                        ('FCCFFEA783B94EE48ED92A1B8DAF8AE0', 0, '千固', '苏先生', '销售代理', '明成西街 471 号', '秦皇岛', '华北', '598018', '中国', '(071) 8325486', '(071) 8325487'),
                        ('FDB4E14C0FA648CD82FB76B03559860F', 0, '一诠精密工业', '刘先生', '物主', '基石路 238 号', '深圳', '华南', '687578', '中国', '(0571) 10644327', '(0571) 10765721'),
                        ('FF3A756283A143C69E4DD674ACFE08F5', 0, '福星制衣厂股份有限公司', '徐先生', '结算经理', '机场东路 951 号', '天津', '华北', '050337', '中国', '(030) 23672220', '(030) 23672221');
                ]]>  
            </mysql>
        </extsql>
    </mapping>
</data>
  • project.xml 服务模块的工程定义文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<app revision="20170501">
    <!-- 服务信息 -->
    <name>demospringboot</name>
    <version>1.0.1</version>
    <framework>maven</framework>
    <dataframe>mybatis</dataframe>
    <!-- 服务协议 -->
    <rpc>
        <protocol switch="enable">REST</protocol>
        <protocol switch="disable">GRPC</protocol>
        <protocol switch="disable">THRIFT</protocol>
    </rpc>
    <!-- 数据源配置 -->
    <datasource>
    </datasource>
    <!-- 编译插件配置 -->
    <configuration>
        <component>
        <compile>disable</compile>
        </component>
        <swagger>
        <compile>disable</compile>
        </swagger>
    </configuration>
</app>

说明:如果服务模块中定义了 *.data.m*.service.m,则必须有这个 project.xml 文件。

3. 应用发布。

4. 测试运行: //{entry}/{serviceName}/demospringboot,运行效果如下: 说明:在这个页面中可以找到在 production.def.xml 服务定义文件中属性定义所对应生成的环境变量。

//{entry}/{serviceName}/demospringboot/datatest,运行效果如下: 说明:这个页面运行成功,表明 Java Spring Boot 服务已经通过环境变量正常连接到了数据库。

运行剖析

在上面的示例已经部署运行就绪后,我们接下来通过监控工具对实际运行环境和运行机制给大家做剖析。

1. 从 应用/服务管理 进入服务的 监控 面板,进入 java-runtime 的容器日志。

说明:在日志中可以看到 start.sh 已被执行,Java Spring Boot 的启动端口与属性定义中的 9001 一致。

3. 在 运行监控 页进入 java-runtime 的终端。

4. 用以下命令进入 /dist/java-runtime/dist 目录:

cd /dist/java-runtime/dist

说明:可以看到已经将 demo-springboot/dist/com.justep.demo.springboot-1.0.jar 复制到 /dist/java-runtime/dist/demo-springboot 目录下。结合在第一个测试运行页 //{entry}/{serviceName}/demospringboot 中可以找到的环境变量 DIST_DIR 的值 /dist/java-runtime/dist。再对照 start.sh 中的服务启动脚本 java -jar $DIST_DIR/demo-springboot/com.justep.demo.springboot-1.0.jar,服务启动的执行过程已经很清楚了。

5. 从以上内容可以看出,内部的访问地址为 localhost:9001。

6. 接下来我们进入 监控 面板的 网关监控 页,从左侧菜单选择进入 服务管理,查找 demo-springboot (通过 app.m 注册的网关服务名),点击进入。

说明:可以看到网关上已经配置了服务的路由路径为 /demospringboot,指向 localhost:9001/

7. 最终的访问路由过程如下:

graph TB;
//entry/service/demospringboot/ --> entry的服务网关 --> service的代理网关 --> localhost:9001/

results matching ""

    No results matching ""