2021年5月

1. 下载JeecgBoot全套源码

下载地址:https://github.com/zhangdaiscott。

将源码解压到本地目录,我的本地目录是:E:\Jeecg。




2. 基本环境搭建

安装JDK,Maven,Redis,Mysql,Node.js,npm,yarn,Lombok Plugin,JRebel,Babel,Vue.js Plugin。


3. 搭建Jeecg-Boot

用IDEA打开E:\Jeecg\jeecg-boot-master\jeecg-boot,在MySQL中(用户名:root,密码:root)执行E:\Jeecg\jeecg-boot-master\jeecg-boot\db\jeecgboot-mysql-5.7.sql脚本,新建数据库jeecg-boot,启动Redis,Ctrl+Alt+F10启动项目,swagger接口地址:http://localhost:8080。




4. 搭建Ant-Design-Vue-Jeecg

用WebStorm打开E:\Jeecg\jeecg-boot-master\ant-design-vue-jeecg,npm install安装依赖,npm run serve启动PC前端项目,浏览器访问地址:http://localhost:3000。





5. 搭建Jeecg-Uniapp

用WebStorm打开E:\Jeecg\jeecg-uniapp-master,先启动E:\Jeecg\jeecg-boot-master\jeecg-boot\下的jeecg-boot项目,本地访问地址:http://localhost:8080/jeecg-boot/。


>> npm init

>> npm install

1

2

报错如下:




报错原因:需要指定npm仓库是私有还是有远程npm托管库,有两种解决方案

(1)将项目设置为私有,在package.json中添加:


"private": true,

1

(2)将项目的仓库地址在package.json中添加:


"repository": {

    "type": "git",

    "url": "http://baidu.com"

}

1

2

3

4

这还需要结合Uni-app官网的搭建方式来看。


6. 搭建Jeewx-Boot

用IDEA打开Jeewx-Boot(免费微信管家平台),本机地址:E:\Jeecg\jeewx-boot-master,在MySQL中执行E:\Jeecg\jeewx-boot-master\db\目录下的schema_mysql5.7.sql和jeewx-boot-mysql5.7.sql脚本,新建数据库jeewx-boot-os,Ctrl+Alt+F10启动项目,浏览器访问http://localhost:80,进入捷微微信管家平台。





7. 搭建Jeecg(旧版本SpringMVC)

用IDEA打开E:\Jeecg\jeecg-master,在MySQL数据库中执行脚本:E:\Jeecg\jeecg-master\docs\jeecg_4.0_mysql.sql,Ctrl+Alt+F10启动项目。这是SpringMVC的项目,后续还需要好好看。


8. 搭建Autopoi

用IDEA打开E:\Jeecg\autopoi-master,这是Word和Excel的导入导出模块。


9. 使用积木报表

浏览器打开http://jimureport.com/login,注册后登录,免费使用积木报表功能。





————————————————

版权声明:本文为CSDN博主「魏晓蕾」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/gongxifacai_believe/article/details/109176618


一、OPSLI 快速开发平台

OPSLI 快速开发平台基于springboot、vue、element-ui 、vue-admin-beautiful,项目采用前后端分离架构,热插拔式业务模块与插件扩展性高 ,代码简洁,功能丰富,开箱即用


官网: https://opsli.com

开源地址: https://github.com/hiparker/opsli-boot












二、Jfinal

Jfinal 不忘初心,在提升开发效率、降低学习成本两个方向已迭代近 10 年, 后端开发所需要的时间越来越少,已趋近极致。用上 jfinal 以后 90% 以上的时间都在折腾前端,有很多同学强烈希望官方能出一个像 jfinal 一样开发效率高、学习成本低的前端框架。

私活神器 !!


官网: https://jfinal.com







三、Jeecg 快速开发平台

Jeecg-Boot低代码开发平台,可以应用在任何J2EE项目的开发中,尤其适合SAAS项目、企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等,其半智能手工Merge的开发方式,可以显著提高开发效率70%以上,极大降低开发成本。项目整合了layui的layim聊天项目


官网: http://www.jeecg.com

开源地址: https://github.com/zhangdaiscott/jeecg-boot









四、RuoYi 低代码开发平台

RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。


官网: http://www.ruoyi.vip

开源地址: https://gitee.com/y_project/RuoYi-Vue







欢迎进群项目分享交流QQ群:724850675

————————————————

版权声明:本文为CSDN博主「hi Edwin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/u013416283/article/details/111595433


目前国内主流的低代码开发平台有:宜搭、简道云、明道云、云程、氚云、伙伴云、道一云、JEPaaS、华炎魔方、搭搭云、JeecgBoot 、RuoYi等。这些平台各有优劣势,定位也不同,用户可以根据自己需求选择。


一、宜搭

宜搭是阿里巴巴集团在2019年3月公测的面向业务开发者的零代码业务应用搭建平台。开发者可以通过可视化开发单据页面、流程页面、报表页面、展示页面、外部链接页面,将这些页面组合在一起形成轻应用,一键发布到PC和手机端。宜搭在2018年在阿里巴巴集团内部发布,阿里作为首个种子用户,到目前为止已有上万个应用在上面使用。 在2019年9月宜搭也发布了升级版宜搭Plus,在单据、流程、报表等方面都进行了全面升级,成为一款面向ISV开发者的低代码开发平台,能够满足企业复杂业务管理系统开发所需的数据建模、逻辑&服务编排、专业UI页面设计等需求。

优势:大厂产品,用户体验较好,开发简单应用较为便捷,定位阿里生态,发展较快。

劣势:只能线上用,不能私有化部署,不交付源代码,价格较高。


二、简道云

简道云发布至今快五年了,已经算是市面上发展比较久的产品了,它由国内专业的大数据BI和分析平台厂商——南京帆软软件有限公司(以下简称“帆软”)孵化而来,在数据分析方面具有天然的优势。 简道云与帆软旗下报表、BI等其他产品定位有所不同,简道云致力于帮助非技术人员快速搭建企业应用,无需使用编码,即可搭建销售、OA办公、生产等管理应用,帮助企业规范业务流程、促进团队协作、实现数据追踪!

简道云的核心功能包括表单、流程表单、仪表盘以及其他一些高级功能,通过这些功能的组合,搭建出各种不同的应用。

优势:强大数据分析功能、快速移动化、界面交互体验优。

劣势:缺乏低代码开发功能,模型无法代码化扩展,复杂应用无法支撑;仅支持云端部署,无法私有化部署,费用较高。


三、明道云

明道云的发展历史很长,从最开始的梅花网到协作SaaS产品明道,最后在2018年转型成为零代码业务应用构建平台。在行业中,还属于比较新的产品,明道云给自己的定位是一个APaaS平台,让企业用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用。从整体功能上看,明道云对标的是国外应用搭建平台Airtable,主要通过搭建数据管理以及流程管理应用,帮助企业高效管理业务。

优势:移动化能力强,支持与钉钉和企业微信集成,视图功能较为强大,可扩展性好。

劣势:报表功能较弱,审批流偏弱,有一定上手门槛,费用高。


四、云程

云程平台是一款基于SpringBoot+VUE的低代码开发框架。采用微服务、前后端分离架构,基于可视化流程建模、表单建模、报表建模工具,零代码快速构建云端业务应用 ,平台即可本地化部署,也可基于K8S云原生部署。云程平台也是一款专业的BPM软件,即可独立部署,支撑企业级端到端流程落地,也可嵌入到您的OA、ERP等系统中,作为流程引擎组件使用。云程平台主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量,为企业信息化建设降本增效。

云程研发团队核心成员有10年以上的软件研发经验,聚焦于低代码平台、流程引擎等中间件产品研发,我们即可输出云程平台源代码,也可提供专业咨询和定制服务。

官方网站: http://www.yunchengxc.com/

在线演示:http://www.yunbangong100.com:31110/

官方文档:http://www.yunchengxc.com/category/help/doc

优势:云原生架构,流程引擎功能强大,对复杂应用支撑较好,云化和私有化均可,可交付源码,商业模式灵活。

劣势:缺乏市场宣传,缺乏生态化发展,用户界面美观方面稍有欠缺。


五、氚云

氚云是深圳奥哲网络科技有限公司(奥哲网络)三大主推产品之一,跟简道云是同时期的选手,已经发展近5年,是一款面向管理者或业务人员的以场景为中心的零(低)代码平台。2018年成为阿里战略投资的低代码应用搭建工具,与钉钉实现了深度融合。 氚云的定位与以流程为中心的H3 BPM和以业务为中心的云枢不同,氚云是以明确的场景为中心,通过可视化表单、流程设计、智能报表和模板化应用,帮助管理者或业务人员快速搭建流程与应用,透明呈现业务进度,实时展现精准数据,完整沉淀管理信息。

优势:表单流程配置灵活,应用模板丰富,交互设计体验较好,对钉钉支持较好。

劣势:功能较基础,复杂功能需使用低代码,需绑定钉钉提供服务,对于非钉钉类应用,局限性较大。


六、JEPaaS

JEPaaS是一款优秀的软件平台产品,可视化开发环境,低代码拖拽式配置开发,操作极其简单,可以帮助解决Java项目80%的重复工作,让开发更多关注业务逻辑,大大提高开发效率,能帮助公司大幅节省人力成本和时间成本,同时又不失灵活性。适用于搭建 OA、ERP、CRM、HR、HIS等所有的企业信息管理系统。


七、伙伴云

伙伴云,是由有着10年以上论坛软件开发及中小企业服务经验的前Discuz!团队打造的,历经“伙伴云表格”、“伙伴办公”,逐步升级为一个为企业经营服务的数据可视化平台,为企业的全流程运营管理与经营核算提供整体解决方案。通过强大的数据库引擎及权限架构,搭配可灵活定制的流程引擎与大数据分析引擎,配合专家级经营顾问与服务,打造全流程、实时可视化的经营核算体系,为企业构建起上下同心的经营伙伴关系,实现员工持续成长、组织持续变革、业绩持续提高。


八、道一云

道一云|七巧Plus(下面简称“七巧Plus”)是道一云旗下的一款低代码开发平台,去年7月左右上线,算是一款比较新的产品了。七巧Plus给自己的定位是一个高生产力的aPaaS平台,帮助企业快速搭建个性化应用,规范流程管理、数据追踪,提高团队协作效率。 道一云从2004年成立至今,近几年已经陆续发布了基于企业微信的协同应用套件——OA、HR、CRM等应用,在应用平台方面还发布了中台、七巧Plus,从布局上来看,是典型的“PaaS+SaaS”发展模式。


九、JeecgBoot

JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发!采用前后端分离架构:SpringBoot2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! JeecgBoot引领新的开发模式(Online Coding模式-> 代码生成器模式-> 手工MERGE智能开发), 帮助解决Java项目70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性!JeecgBoot还独创在线开发模式(No代码概念):在线表单配置(表单设计器)、移动配置能力、工作流配置(在线设计流程)、报表配置能力、在线图表配置、插件能力(可插拔)等等!

JeecgBoot开源版本功能有限,只有系统管理功能,低代码开发和流程引擎均需要购买商业版本。


十、RuoYi

RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。

RuoYi开源版本功能有限,只有系统管理功能,流程引擎等高级组件均需要购买商业版本。

————————————————

版权声明:本文为CSDN博主「大龄码农有梦想」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/wxz258/article/details/114488658


学习springcloud之前可以参考本文回顾基础知识,需要有Maven+springmvc+mybatis+mysql基础

1.Maven的分包分模块架构

一个Project带着多个Module子模块

ServiceCloud父工程(Project)管理依赖

包含3个子模块(Module)


cloud-api:封装的整体Entity/接口/公共配置等

cloud-provider-dept-8001:微服务落地的服务提供者

cloud-consumer-dept-80:微服务调用的客户端使用

2.创建servicecloud父工程

idea创建一个maven项目,创建好后之后一个src文件和一个pom.xml文件

pom文件内容如下:


<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">

<modelVersion>4.0.0</modelVersion>


<groupId>com.shawn</groupId>

<artifactId>service-cloud</artifactId>

<version>1.0-SNAPSHOT</version>

<packaging>pom</packaging>



<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<maven.compiler.source>1.8</maven.compiler.source>

<maven.compiler.target>1.8</maven.compiler.target>

<junit.version>4.12</junit.version>

<log4j.version>1.2.17</log4j.version>

<lombok.version>1.16.18</lombok.version>

</properties>


<!--父工程依赖管理-->

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Dalston.SR1</version>

<type>pom</type>

<scope>import</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-dependencies</artifactId>

<version>1.5.9.RELEASE</version>

<type>pom</type>

<scope>import</scope>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.0.4</version>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.31</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.3.0</version>

</dependency>

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-core</artifactId>

<version>1.2.3</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>${junit.version}</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>${log4j.version}</version>

</dependency>

</dependencies>

</dependencyManagement>


<build>

<finalName>service-cloud</finalName>

<resources>

<resource>

<directory>src/main/resources</directory>

<filtering>true</filtering>

</resource>

</resources>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<configuration>

<delimiters>

<delimit>$</delimit>

</delimiters>

</configuration>

</plugin>

</plugins>

</build>


<!--以下是和其他模块依赖,报错可以先注释掉-->

<modules>

<module>cloud-api</module>

<module>cloud-provider-dept-8001</module>

        <module>cloud-consume-dept-80</module>

    </modules>


</project>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

servicecloud父工程主要是定义POM文件,将后续各个子模块公用的jar包等统一提出来,类似一个抽象父类


3.创建cloud-api 封装的整体Entity/接口/公共配置等


直接在父工程上点击右键创建新的Module



next下一步 再Finish

目录结构:



修改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>service-cloud</artifactId>

        <groupId>com.shawn</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

    <modelVersion>4.0.0</modelVersion>


    <dependencies><!-- 当前Module需要用到的jar包,按自己需求添加,如果父类已经包含了,可以不用写版本号 -->

        <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

        </dependency>

       

    </dependencies>


    <artifactId>cloud-api</artifactId>

</project>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

lombok

在项目中使用Lombok可以减少很多重复代码。比如说getter/setter/toString等方法的编写。

插件安装方法:打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA

如果安装不了可以选择去官网下载jar包,然后本地安装。



配合lombok创建部门Entity:


package com.shawn.springcloud.entites;

import java.io.Serializable;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.experimental.Accessors;


@NoArgsConstructor //无参构造

@AllArgsConstructor//全餐构造

@Data//get/set方法

@Accessors(chain=true)//链式调用

public class Dept implements Serializable// entity --orm--- db_table

{

private Long deptno; // 主键

private String dname; // 部门名称

private String db_source;// 来自那个数据库,因为微服务架构可以一个服务对应一个数据库,同一个信息被存储到不同数据库

public Dept(String dname)

{

super();

this.dname = dname;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

4.创建cloud-provider-dept-8001 服务提供者

参照cloud-api创建cloud-provider-dept-8001工程

修改pom.xml文件

<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">

    <modelVersion>4.0.0</modelVersion>


    <parent>

        <artifactId>service-cloud</artifactId>

        <groupId>com.shawn</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>


    <artifactId>cloud-provider-dept-8001</artifactId>


    <dependencies>

        <dependency><!-- 引入自己定义的api通用包,可以使用Dept部门Entity -->

            <groupId>com.shawn</groupId>

            <artifactId>cloud-api</artifactId>

            <version>${project.version}</version>

        </dependency>

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

        </dependency>

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

        </dependency>

        <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>druid</artifactId>

        </dependency>

        <dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-core</artifactId>

        </dependency>

        <dependency>

            <groupId>org.mybatis.spring.boot</groupId>

            <artifactId>mybatis-spring-boot-starter</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-jetty</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

        </dependency>

        <!-- 修改后立即生效,热部署 -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>springloaded</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

        </dependency>

    </dependencies>

</project>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

新建yml文件,并配置信息


server:

  port: 8001


mybatis:

  config-location: classpath:mybatis/mybatis.cfg.xml        # mybatis配置文件所在路径

  type-aliases-package: com.shawn.springcloud.entites  # 所有Entity别名类所在包

  mapper-locations:

  - classpath:mybatis/mapper/**/*.xml                       # mapper映射文件


spring:

   application:

    name: cloud-dept

   datasource:

    type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型

    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包

    url: jdbc:mysql://localhost:3306/clouddb01              # 数据库名称

    username: root

    password: 123456

    dbcp2:

      min-idle: 5                                           # 数据库连接池的最小维持连接数

      initial-size: 5                                       # 初始化连接数

      max-total: 5                                          # 最大连接数

      max-wait-millis: 200                                  # 等待连接获取的最大超时时间

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

工程src/main/resources目录下新建mybatis文件夹后新建mybatis.cfg.xml文件

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration

        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <settings>

        <setting name="cacheEnabled" value="true"/><!-- 二级缓存开启 -->

    </settings>

</configuration>

1

2

3

4

5

6

7

8

9

MySQL创建部门数据库脚本

新建数据库直接执行就可以了

DROP DATABASE IF EXISTS cloudDB01;

CREATE DATABASE cloudDB01 CHARACTER SET UTF8;

USE cloudDB01;

CREATE TABLE dept

(

  deptno BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,

  dname VARCHAR(60),

  db_source   VARCHAR(60)

);

INSERT INTO dept(dname,db_source) VALUES('开发部',DATABASE());

INSERT INTO dept(dname,db_source) VALUES('人事部',DATABASE());

INSERT INTO dept(dname,db_source) VALUES('财务部',DATABASE());

INSERT INTO dept(dname,db_source) VALUES('市场部',DATABASE());

INSERT INTO dept(dname,db_source) VALUES('运维部',DATABASE());

 

SELECT * FROM dept;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

DeptDao部门接口

@Mapper

public interface DeptDao

{

  public boolean addDept(Dept dept);

 

  public Dept findById(Long id);

 

  public List<Dept> findAll();

}

1

2

3

4

5

6

7

8

9

工程src/main/resources/mybatis目录下新建mapper文件夹后再建DeptMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="com.shawn.springcloud.dao.DeptDao">


    <select id="findById" resultType="Dept" parameterType="Long">

   select deptno,dname,db_source from dept where deptno=#{deptno};

  </select>

    <select id="findAll" resultType="Dept">

   select deptno,dname,db_source from dept;

  </select>

    <insert id="addDept" parameterType="Dept">

   INSERT INTO dept(dname,db_source) VALUES(#{dname},DATABASE());

  </insert>

</mapper>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

DeptService部门服务接口

public interface DeptService

{

    public boolean add(Dept dept);

    public Dept    get(Long id);

    public List<Dept> list();

}

1

2

3

4

5

6

DeptServiceImpl部门服务接口实现类

@Service

public class DeptServiceImpl implements DeptService {

    @Autowired

    private DeptDao dao ;

    @Override

    public boolean add(Dept dept)

    {

        return dao.addDept(dept);

    }

    @Override

    public Dept get(Long id)

    {

        return dao.findById(id);

    }

    @Override

    public List<Dept> list()

    {

        return dao.findAll();

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

DeptController部门微服务提供者REST

@RestController

public class DeptController {

    @Autowired

    private DeptService service;


    @RequestMapping(value="/dept/add",method=RequestMethod.POST)

    public boolean add(@RequestBody Dept dept)

    {

        return service.add(dept);

    }


    @RequestMapping(value="/dept/get/{id}",method=RequestMethod.GET)

    public Dept get(@PathVariable("id") Long id)

    {

        return service.get(id);

    }


    @RequestMapping(value="/dept/list",method=RequestMethod.GET)

    public List<Dept> list()

    {

        return service.list();

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

DeptProvider8001_App主启动类DeptProvider8001_App

@SpringBootApplication

public class DeptProvider8001_App {

    public static void main(String[] args) {

        SpringApplication.run(DeptProvider8001_App.class,args);

    }

}

1

2

3

4

5

6

构建完成,打开浏览器测试

http://localhost:8001/dept/get/2


http://localhost:8001/dept/list


补充一下项目结构:


5.创建cloud-consumer-dept-80 消费者

参照上文创建出maven工程cloud-consumer-dept-80

修改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>service-cloud</artifactId>

        <groupId>com.shawn</groupId>

        <version>1.0-SNAPSHOT</version>

    </parent>

    <modelVersion>4.0.0</modelVersion>

    <dependencies>

        <dependency><!-- 引入自己定义的api通用包,可以使用Dept部门Entity -->

            <groupId>com.shawn</groupId>

            <artifactId>cloud-api</artifactId>

            <version>${project.version}</version>

        </dependency>

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

        </dependency>

        <dependency>

            <groupId>ch.qos.logback</groupId>

            <artifactId>logback-core</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-jetty</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

        </dependency>

        <!-- 修改后立即生效,热部署 -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>springloaded</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

        </dependency>

    </dependencies>

    <artifactId>cloud-consume-dept-80</artifactId>

</project>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

新增yml文件application.yml

server:

  port: 80

1

2

编写配置文件configbean(类似spring里面的applicationContext.xml写入的注入Bean)

package com.shawn.springcloud.cfgbeans;

@Configuration

public class ConfigBean {


    @Bean

    public RestTemplate restTemplate(){

        return new RestTemplate();

    }

}


1

2

3

4

5

6

7

8

9

10

新建DeptController_Consumer部门微服务消费者REST

package com.shawn.springcloud.controller;

@RestController

public class DeptController_Consumer {


    private static final String REST_URL_PREFIX = "http://localhost:8001";


    @Autowired

    private RestTemplate restTemplate;


    @RequestMapping("/consumer/dept/add")

    public boolean add(Dept dept){

        return restTemplate.postForObject(REST_URL_PREFIX+"/dept/add",dept,Boolean.class);

    }


    @RequestMapping("/consumer/dept/get/{id}")

    public Dept get(@PathVariable("id") Long id ){

        return restTemplate.getForObject(REST_URL_PREFIX+"/dept/get/"+id,Dept.class);

    }


    @RequestMapping("/consumer/dept/list")

    public List<Dept> list(){

        return restTemplate.getForObject(REST_URL_PREFIX+"/dept/list",List.class);

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

注:RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集

使用:

restTemplate访问restful接口非常的简单粗暴无脑。(url, requestMap, ResponseBean.class)这三个参数分别代表

REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。


最后主启动类编写

package com.shawn.springcloud;

@SpringBootApplication

public class DeptConsumer80_App

{

  public static void main(String[] args)

  {

   SpringApplication.run(DeptConsumer80_App.class, args);

  }

}

1

2

3

4

5

6

7

8

9



6. 编写完成,最后进行测试

访问消费者接口(注意,是访问消费者的!80端口)

http://localhost/consumer/dept/get/2


http://localhost/consumer/dept/list


END

————————————————

版权声明:本文为CSDN博主「LuckyShawn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_40037053/article/details/85051405


JPAAS平台是基于SpringCloud的一套企业级的低代码微服务架构敏捷开发平台,它具有以下特点:

  1. 基于Spring Boot 2.0.X、Spring Cloud Finchley和Spring Cloud Alibaba

  2. 主要针对解决微服务和业务开发时常见的非功能性需求

  3. 提供了基础的企业级的应用开发,如流程、表单、组织架构、安全认证、门户等

  4. 提供应用管理,方便第三方系统接入,支持多租户(应用隔离)

  5. 前后端分离的企业级微服务架构

  6. 引入组件化的思想实现高内聚低耦合并且高度可配置化

  7. 注重代码规范,严格控制包依赖,每个工程基本都是最小依赖

  8. 适合企业级的应用功能扩展与开发

  9. 适合企业往技术中台、数据中台、业务中台进行模块与业务的规划扩展

平台架构模块:

平台架构图

分层的架构: