当前位置:   article > 正文

GitHub开源项目 - Jeecg-Boot开始开发平台介绍_gecg-boot

gecg-boot

GitHub开源项目 - Jeecg-Boot开始开发平台介绍

 

Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台!采用前后端分离架构:SpringBoot,Mybatis,Shiro,JWT,Vue&Ant Design。强大的代码生成器让前端和后台代码一键生成,不需要写任何代码,保持jeecg一贯的强大,绝对是全栈开发福音!!
JeecgBoot在提高UI能力的同时,降低了前后分离的开发成本,JeecgBoot还独创在线开发模式(No代码概念),一系列在线智能开发:在线配置表单、在线配置报表、在线图表设计、在线设计流程等等。

JEECG宗旨是: 简单功能由Online Coding配置实现(在线配置表单、在线配置报表、在线图表设计、在线设计流程、在线设计表单),复杂功能由代码生成器生成进行手工Merge,既保证了智能又兼顾了灵活;
业务流程采用工作流来实现、扩展出任务接口,供开发编写业务逻辑,表单提供多种解决方案: 表单设计器、online配置表单、编码表单。同时实现了流程与表单的分离设计(松耦合)、并支持任务节点灵活配置,既保证了公司流程的保密性,又减少了开发人员的工作量。

技术交流QQ群:①284271917、②769925425
在线演示: http://boot.jeecg.com
源码下载:https://github.com/zhangdaiscott/jeecg-boot
入门教程:http://doc.jeecg.com/1273753
常见问题: 常见问题大全
视频教程: https://space.bilibili.com/454617261/channel/detail?cid=84186
反馈问题: https://github.com/zhangdaiscott/jeecg-boot/issues
版本日志: http://www.jeecg.com/#/doc/changelog

技术架构:

  1. 后端技术: SpringBoot_2.1.3.RELEASE + Mybatis-plus_3.1.2 + Shiro_1.4.0 + Jwt_3.7.0
  2. + Swagger-ui + Redis
  3. 前端技术: Ant-design-vue + Vue + Webpack
  4. 其他技术: Druid(数据库连接池)、Logback(日志工具) 、poi(Excel工具)、
  5. Quartz(定时任务)、lombok(简化代码)
  6. 项目构建: Maven、Jdk8

前端开发必读文档:

前端UI组件: Ant Design of Vue
https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn
报表UI组件:viser-vue
https://viserjs.github.io/demo.html#/viser/bar/basic-bar
VUE基础知识:
https://cn.vuejs.org/v2/guide

 

Jeecg-Boot入门教程

我们精心制作本教程,方便开源用户和新入职成员快速掌握Jeecg-Boot开发。根据我们的实际经验,通过此教程学习,刚入行的毕业生也可以顺利的进行开发,所以请耐心完成本套教程的学习(有一定工作经验的,可以忽略自己熟悉的章节)。

  1. 开发环境搭建 http://doc.jeecg.com/1273969

    开发工具 : https://pan.baidu.com/s/1kFIJcn5GSlSJWAQKeCowrg 提取码:ilmc

  2. 项目如何启动 http://doc.jeecg.com/1273967

  3. JeecgBoot学习视频 https://space.bilibili.com/454617261/channel/detail?cid=84186

  4. 代码生成器使用 http://doc.jeecg.com/1273926

  5. 常见问题贴:http://t.cn/EITSuH8

  6. 必看学习资料
    ES6 | http://es6.ruanyifeng.com
    Vue | https://cn.vuejs.org/v2/guide
    Ant Design of Vue | https://vue.ant.design/docs/vue/introduce-cn
    Jeecg-Boot文档 | http://doc.jeecg.com

  7. 基础知识学习(Vue全家桶、Springboot) 参考下面《基础知识学习视频》

  8. 如果你发现bug,请点击这里反馈 https://github.com/zhangdaiscott/jeecg-boot/issues

《基础知识学习视频》

  1. 两套Springboot视频(建议第一套)
  2. 链接:https://pan.baidu.com/s/1KlfH96wGNRN8waPIurQ6yg 提取码:tu6m
  3. 链接:https://pan.baidu.com/s/11Z0iLW9o-W4-4tYHXlDO9A 提取码:7kz2
  4. 两套vue视频,前后端分离
  5. 1.Vue基础知识视频
  6. 链接:https://pan.baidu.com/s/1r69bFZ0_N2-g4XNxEqDtfg 提取码:gt81
  7. 2.Vue高级视频教程
  8. 链接:https://pan.baidu.com/s/1uJY0oIIa4wD65L2hH_L93g 提取码:desn
  9. 链接:https://pan.baidu.com/s/1IjzUkEeVpjqf2KKY2Xj6rA 提取码:829j

 

Maven私服设置

JEECG存在自定义JAR包,放在自己的Maven私服上面,所以有的时候会遇到下载失败。
一般遇到下载失败的情况,是因为用户设置了本地镜像,导致无法从JEECG私服下载资源,参考下面的方式进行镜像排除配置即可。

找到 maven老家 conf/settings.xml,
在标签内增加下面方式的阿里云maven镜像(删除自己的镜像配置), 最终结果见下面:

  1. <mirrors>
  2. <mirror>
  3. <id>nexus-aliyun</id>
  4. <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
  5. <name>Nexus aliyun</name>
  6. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  7. </mirror>
  8. </mirrors>

然后执行maven命令,依赖就会顺利下载;此配置重点在这句话<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
如果不加这句话,默认所有的依赖都会去阿里云仓库下载,加上后jeecg的依赖包就可以从jeecg私服下载了。

 

如何启动项目

目录索引:

  • 后端项目启动

    1. 初始化数据库
    2. 修改项目配置文件(数据库配置、redis配置)
    3. 启动redis服务
    4. 启动项目
  • 前台项目启动

    1. 安装依赖包
    2. 配置后台接口服务地址
    3. 启动项目

一、后端项目启动

  1. jeecg-boot 从v2.0版本,重构成maven多模块项目,启动项目:jeecg-boot-module-system
  2. 项目结构说明:
  3. ├─jeecg-boot-parent(父POM: 项目依赖、modules组织)
  4. │ ├─jeecg-boot-base-common(共通Common模块: 底层工具类、注解、接口)
  5. │ ├─jeecg-boot-module-system (系统管理模块: 系统管理、权限等功能) -- 默认作为启动项目
  6. │ ├─jeecg-boot-module-{?} (自己扩展新模块项目,启动的时候,在system里面引用即可)

(1)执行数据库初始化sql
sql文件地址:jeecg-boot/db/jeecg-boot-mysql.sql

(2)开发模式配置(/src/main/resources/application-dev.yml)
项目名称、端口号配置(请默认即可不需要修改)

  1. server:
  2. port: 8080
  3. servlet:
  4. context-path: /jeecg-boot

端口号是8080,项目名称是jeecg-boot
本地后台接口地址:http://localhost:8080/jeecg-boot
注意: 不能直接访问后台,会提示TOEKN无效错误。

数据库配置 :

  1. spring:
  2. datasource:
  3. dynamic:
  4. datasource:
  5. #主数据源
  6. master:
  7. url: jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
  8. username: root
  9. password: root
  10. driver-class-name: com.mysql.jdbc.Driver

redis配置:(配置redis的host和port)

  1. #redis 配置
  2. redis:
  3. database: 0
  4. host: 127.0.0.1
  5. lettuce:
  6. pool:
  7. max-active: 8 #最大连接数据库连接数,设 0 为没有限制
  8. max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
  9. max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
  10. min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
  11. shutdown-timeout: 100ms
  12. password: ''
  13. port: 6379

(3)启动redis服务

(4)以上配置完成后,即可启动后台项目

本地启动:
找到类/src/main/java/org/jeecg/JeecgApplication.java,右键执行

 

二、前台项目启动

(1)使用命令yarn install 下载项目依赖

(2)配置后台接口地址


[1]. public/index.html (开发环境、正式发布)

  1. window._CONFIG['domianURL'] = 'http://localhost:8080/jeecg-boot';
  2. window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view';

[2]. vue.config.js(仅开发环境配置)
输入图片说明

 

(3)启动项目
注意:(如果启动报错的话,请升级node版本,把依赖node_modules删了,重新yarn install)
调出Show npm Scripts 功能
找到项目目录下文件package.json文件,鼠标右键选择Show npm Scripts

点击命令:serve 即可启动项目 或者 在命令行界面输入 yarn run serve 启动项目即可

看到如下日志 则启动成功

通过 http://localhost:3000 访问项目即可进入系统,默认账号密码: admin/123456

 

注意:启动后端项目后,再启动前端项目,访问前端项目可能出现 405 504 502 等问题 ,具体提示信息是nginx上静态文件不接受POST请求,此时修改nginx的配置文件

nginx.conf

  1. server {
  2. listen 80;
  3. server_name 你的域名;
  4. #后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问
  5. location ^~ /jeecg-boot {
  6. proxy_pass http://127.0.0.1:8080/jeecg-boot/;
  7. proxy_set_header Host 127.0.0.1;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. }
  11. #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
  12. location / {
  13. root html;
  14. index index.html index.htm;
  15. if (!-e $request_filename) {
  16. rewrite ^(.*)$ /index.html?s=$1 last;
  17. break;
  18. }
  19. }
  20. }

 

数据库切换Oracle/SqlServer/Postgresql

Oracle数据

1.添加oracle驱动,修改pom.xml

  1. <!-- oracle驱动 -->
  2. <dependency>
  3. <groupId>com.oracle</groupId>
  4. <artifactId>ojdbc6</artifactId>
  5. <version>11.2.0.3</version>
  6. </dependency>

2.修改数据库连接

  1. 修改druid配置
  2. validationQuery: SELECT 1 FROM DUAL
  3. driver-class-name: oracle.jdbc.OracleDriver
  4. url: jdbc:oracle:thin:@192.168.1.200:1521:ORCL
  5. username: jeecgboot
  6. password: jeecgboot

SQL server数据

1.添加SQL server驱动,修改pom.xml

  1. <!-- sqlserver-->
  2. <dependency>
  3. <groupId>com.microsoft.sqlserver</groupId>
  4. <artifactId>sqljdbc4</artifactId>
  5. <version>4.0</version>
  6. <scope>runtime</scope>
  7. </dependency>

2.修改数据库连接

  1. 修改druid配置
  2. validationQuery: SELECT 1
  3. filters: stat,slf4j
  4. driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
  5. url: jdbc:sqlserver://192.168.1.200:1433;SelectMethod=cursor;DatabaseName=jeecg-boot
  6. username: sa
  7. password: SA

postgresql数据库

1.添加postgresql驱动,修改pom.xml

(根据不同版本的数据库引入对应版本的驱动,下载地址:https://jdbc.postgresql.org/download.html)

  1. <!-- postgresql-->
  2. <dependency>
  3. <groupId>postgresql</groupId>
  4. <artifactId>postgresql</artifactId>
  5. <version>42.2.5</version>
  6. </dependency>

2.修改数据库连接

  1. 增加spring下的配置
  2. spring:
  3. #postgresql 报错问题
  4. jpa:
  5. properties:
  6. hibernate:
  7. temp:
  8. use_jdbc_metadata_defaults: false
  9. 修改druid配置
  10. validationQuery: SELECT 1
  11. url: jdbc:postgresql://localhost:5432/postgres
  12. username: postgres
  13. password: root
  14. driver-class-name: org.postgresql.Driver

 

快速示例

Hello World示例教程

前后端分离框如何快速进入开发,请参照下面hello world实现demo
###一、后台请求实现

  1. @RestController
  2. @RequestMapping("/test/jeecgDemo")
  3. @Slf4j
  4. public class JeecgDemoController {
  5. /**
  6. * hello world
  7. *
  8. * @param id
  9. * @return
  10. */
  11. @GetMapping(value = "/hello")
  12. public Result<String> hello() {
  13. Result<String> result = new Result<String>();
  14. result.setResult("Hello World!");
  15. result.setSuccess(true);
  16. return result;
  17. }
  18. }

直接访问请求http://localhost:8080/jeecg-boot/test/jeecgDemo/hello 会提示token无效,
所以需要配置下拦截器ShiroConfig排除。

  1. 配置文件: jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java
  2. 加入配置:filterChainDefinitionMap.put("/test/jeecgDemo/hello", "anon");

输入图片说明

再访问请求http://localhost:8080/jeect-boot/test/jeecgDemo/hello,会返回结果如下:

  1. {
  2. "success": true,
  3. "message": null,
  4. "code": null,
  5. "result": "Hello World!",
  6. "timestamp": 1548833208562
  7. }

###二、前台vue页面实现
(1)创建vue页面src/views/jeecg/helloworld.vue
调用后台请求,获取返回的Hello World! 输出到页面,页面代码如下:

  1. <template>
  2. <div>
  3. {{ msg }}
  4. </div>
  5. </template>
  6. <script>
  7. import {getAction} from '@/api/manage'
  8. export default {
  9. data () {
  10. return {
  11. msg: ""
  12. }
  13. },
  14. methods: {
  15. hello () {
  16. var url = "/test/jeecgDemo/hello"
  17. getAction(url).then((res) => {
  18. if (res.success) {
  19. this.msg = res.result;
  20. }
  21. })
  22. }
  23. },
  24. created() {
  25. this.hello();
  26. }
  27. }
  28. </script>

####代码说明:
1、data() 方法中定义数据对象msg
2、数据对象msg输出到页面,表达式如下:

{{ msg }}

3、定义一个方法,发起请求获取后台响应 后台实现的是get方法,引入getAction方法 import {getAction} from '@/api/manage' 定义方法调用: ``` hello () { var url = "/test/jeecgDemo/hello" getAction(url).then((res) => { if (res.success) { this.msg = res.result; } }) } ``` 4、Vue生命周期 created 中调用方法 created() { this.hello(); } hello方法中 this.msg = res.result; 把请求返回的Hello World! 赋值给msg数据对象,msg值改变则页面显示也改变。

###三、配置菜单
配置helloword菜单【系统管理】-【菜单管理】
输入图片说明

  • 其中前端组件配置相对src/views/目录下的 目录名+文件名
  • 例如页面src/views/jeecg/helloworld.vue 前端组件配置 jeecg/helloworld

输入图片说明
用户角色授权【系统管理】-【角色管理】-授权
输入图片说明
输入图片说明
点击菜单访问页面展示Hello World!

 

JAR部署方案

正式环境部署

部署方案采用nginx+tomcat部署方案
后端服务通过JAR方式运行
前端项目build后的静态资源,部署到nginx中

一、后台项目jeecg-boot打jar包

目前 jeecg-boot-module-system 作为启动和打包项目。

1、修改数据库连接 application-prod.yml
2、修改缓存redis配置 application-prod.yml
3、修改上传附件配置 application-prod.yml
输入图片说明
4、切换配置为线上配置 application.yml
输入图片说明
5、修改pom.xml加上打包插件(如果已经有了,就不需要加了)

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. </plugin>
  7. </plugins>
  8. </build>

然后 maven package 打jar包

二、后台项目jeecg-boot启动

通过命令启动项目

  1. Window启动命令:
  2. java -jar D:\jeecg-boot-module-system-2.0.0.jar
  3. Linux下后台进程启动命令:
  4. nohup java -jar jeecg-boot-module-system-2.0.0.jar >catalina.out 2>&1 &
  5. 关掉项目:
  6. ps -ef|grep java
  7. kill 进程号

三、前台项目build

1、修改后台接口服务地址 public/index.html

  1. window._CONFIG['domianURL'] = 'http://localhost:8080/jeecg-boot';
  2. window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view';
  3. window._CONFIG['pdfDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/pdf/pdfPreviewIframe';

重要提示:
1. 后台服务接口地址,一定要配置外网的IP或者域名,配置内网域名后台访问不到的。
2. 后台启动默认名字jeecg-boot,不建议修改。如果需要修改,请自行替换此文中所有提到项目名jeecg-boot的地方;
同时修改前端代码 src/utils/request.js,里面的项目名字。

  1. const service = axios.create({
  2. baseURL: '/jeecg-boot', // api base_url
  3. timeout: 6000 // 请求超时时间
  4. })

2、build项目
使用build命令打包项目
输入图片说明
build完成后台会生成一个dist的目录该目录下即为build后的文件。

3、nginx部署前端项目
拷贝dist下的代码到nginx安装目录下html目录中,即可

四、nginx配置(conf/nginx.conf)

nginx监听80端口

  1. server {
  2. listen 80;
  3. server_name 你的域名;
  4. #后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问
  5. location ^~ /jeecg-boot {
  6. proxy_pass http://127.0.0.1:8080/jeecg-boot/;
  7. proxy_set_header Host 127.0.0.1;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. }
  11. #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
  12. location / {
  13. root html;
  14. index index.html index.htm;
  15. if (!-e $request_filename) {
  16. rewrite ^(.*)$ /index.html?s=$1 last;
  17. break;
  18. }
  19. }
  20. }

五、nginx 开启压缩,提高首页访问效率

https://github.com/zhangdaiscott/jeecg-boot/issues/88

配置后启动nginx
通过:http://你的域名 访问项目,出现如下页面,使用账户/密码:admin/123456 登录成功即可

 

WAR部署方案

正式环境部署

部署方案采用nginx+tomcat部署方案
后端服务发布部署到tomcat中
前端项目由于build后都是静态问题,部署到nginx中

一、后台项目jeecg-boot打war包(jeecg-boot-module-system)

(1)后台项目jeecg-boot-module-system打war包之前要进行如下改动

1、pom.xml文件中项目打包格式设置为war
war
具体配置如下:

  1. <modelVersion>4.0.0</modelVersion>
  2. <groupId>org.jeecgframework.boot</groupId>
  3. <artifactId>jeecg-boot-module-system</artifactId>
  4. <version>2.0.0</version>
  5. <packaging>war</packaging>

2、pom.xml文件删除插件spring-boot-maven-plugin
下面配置删除

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. </plugin>
  7. </plugins>
  8. </build>

3、增加项目web容器部署的支持:
修改类/src/main/java/org/jeecg/JeecgApplication.java
代码如下:

  1. package org.jeecg;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.builder.SpringApplicationBuilder;
  5. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  6. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  7. @SpringBootApplication
  8. @EnableSwagger2
  9. public class JeecgApplication extends SpringBootServletInitializer {
  10. @Override
  11. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  12. return application.sources(JeecgApplication.class);
  13. }
  14. public static void main(String[] args) {
  15. System.setProperty("spring.devtools.restart.enabled", "true");
  16. SpringApplication.run(JeecgApplication.class, args);
  17. }
  18. }

4、修改配置文件(数据库和redis配置)

  • 1、修改数据库连接 application-prod.yml
  • 2、修改缓存redis配置 application-prod.yml
  • 3、修改上传附件配置 application-prod.yml
    输入图片说明
  • 4、切换配置为线上配置 application.yml
    输入图片说明

然后 maven package 打war包

二、后台项目jeecg-boot部署tomcat

1、设置tomcat端口号 8080,设置tomcat编码 URIEncoding="UTF-8"
2、部署项目到tomcat安装目录webapps/jeecg-boot工程目录下
部署完后通过http://localhost:8080/jeecg-boot 可以访问项目,提示token错误说明部署成功!!

三、前台项目build

1、修改 public/index.html

  1. //图片预览请求地址
  2. window._CONFIG['domianURL'] = 'http://localhost:8080/jeecg-boot';
  3. window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view';

2、后台接口服务项目名默认是jeecg-boot,如果需要个性化可以修改src/utils/request.js 中baseURL参数
(一般情况下默认不需要修改)
具体代码如下:

  1. // 创建 axios 实例
  2. const service = axios.create({
  3. baseURL: '/jeecg-boot/', // api base_url
  4. timeout: 6000 // 请求超时时间
  5. })

3、build项目
使用build命令打包项目
输入图片说明
build完成后台会生成一个dist的目录该目录下即为build后的文件。

4、nginx部署前端项目
拷贝dist下的代码到nginx安装目录下html目录中,即可

四、nginx配置(conf/nginx.conf)

nginx监听80端口

  1. server {
  2. listen 80;
  3. server_name 你的域名;
  4. #后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问
  5. location ^~ /jeecg-boot {
  6. proxy_pass http://127.0.0.1:8080/jeecg-boot/;
  7. proxy_set_header Host 127.0.0.1;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. }
  11. #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
  12. location / {
  13. root html;
  14. index index.html index.htm;
  15. if (!-e $request_filename) {
  16. rewrite ^(.*)$ /index.html?s=$1 last;
  17. break;
  18. }
  19. }
  20. }

配置后启动tomcat,启动nginx
通过http://你的域名/ 访问项目,出现如下页面,使用账户/密码:admin/123456 登录成功即可

 

极简部署方案

基于 spring boot 特性

1、首先修改配置,去掉项目名 jeecg-boot

  1. ant-design-jeecg-vue/src/utils/request.js
  2. ant-design-jeecg-vue/public/index.html

输入图片说明
输入图片说明

2、修改路由History 模式为“hash”

src/router/index.js

输入图片说明

然后 ant-design-jeecg-vue 运行 build

npm run build

3、然后将编译之后dist下的文件复制到 jeecg-boot-module-system 项目的 /src/main/resources/static 目录下。
4、修改springboot项目启动,根路径访问页面为 index.html
jeecg-boot-module-system\src\main\java\org\jeecg\config\WebMvcConfiguration

  1. /**
  2. * 访问根路径默认跳转 index.html页面 (简化部署方案: 可以把前端打包直接放到项目的 webapp,上面的配置)
  3. */
  4. @Override
  5. public void addViewControllers(ViewControllerRegistry registry) {
  6. registry.addViewController("/").setViewName("index.html");
  7. }

5、修改springboot项目的启动名字,去掉项目名 jeecg-boot

jeecg-boot-module-system/src/main/resources/application-dev.yml

输入图片说明

6、重新启动项目,访问 http://localhost:8080/ 就可以看到效果

 

代码生成器配置文件

1、代码生成器数据库配置文件

   jeecg-boot-module-system/src/main/resources/jeecg/jeecg_database.properties

输入图片说明

配置注意:

2、代码生成器基础配置 (项目路径、根业务包路径、模板路径)

    jeecg-boot-module-system/src/main/resources/jeecg/jeecg_config.properties

3、Jeecg-boot采用前后端分离架构,vue页面需要手工复制到前端代码里面

  1. * 1. 页面生成路径: src/main/java/{业务包根路径}/{子业务包}/vue/
  2. * 2. 使用方法,手工复制到webstorm项目下面
  3. * 3. 配置访问菜单

4、自定义代码生成器模板

类型模板路径
GUI代码生成jeecg-boot-module-system\src\main\resources\jeecg\code-template
Online代码生成jeecg-boot-module-system\src\main\resources\jeecg\code-template-online

 

如何使用代码生成器?

功能介绍:

jeecg-boot代码生成器非常强大,支持单表、一对多模型生成,生成的代码包括前台和后台,生成后直接使用,无需修改。
功能说明: 一键生成的代码(包括:controller、service、dao、mapper、entity、vue)
模板位置: src/main/resources/jeecg/code-template

  • 单表GUI代码生成工具

找到jeecg-boot-module-system/src/main/java/org/jeecg/JeecgOneGUI.java,右键执行
输入图片说明

  • 一对多代码生成工具

jeecg-boot-module-system/src/main/java/org/jeecg/JeecgOneToMainUtil.java
直接在此代码里面配置参数,右键执行就会生成对应代码

 

代码生成器模板

功能介绍:

目前代码生成器提供了四套模板,单表两套、一对多两套。
代码生成器工具和模板在项目 jeecg-boot-module-system 中。
如何切换模板,修改配置文件src/main/resources/jeecg/jeecg_config.properties 里的参数templatepath,即可切换模板。

模板路径描述
单表业务分层模板src/main/resources/jeecg/code-template/onecontrol上层分子业务包
单表代码分层模板src/main/resources/jeecg/code-template/one2control下层分子业务包
一对多默认风格模板src/main/resources/jeecg/code-template/onetomany一个表单维护
一对多ERP风格模板src/main/resources/jeecg/code-template/onetomany2子表数据分开维护

** 效果图:**

1.单表业务分层模板
输入图片说明

2.单表代码分层模板
输入图片说明

3.一对多默认风格模板
输入图片说明

4.一对多ERP风格模板
输入图片说明

5.单表代码生成器,表单风格提供两种选择

  1. a. 默认弹窗模式表单
  2. b. 抽屉风格表单

输入图片说明
如果需要抽屉风格,把__Style#Drawer后缀删掉,覆盖原生产的页面即可。

 

常用问题汇总

1、Druid监控
访问:http://localhost:8080/jeecg-boot/druid/,
登录名:admin,密码123456

2、在线接口文档swagger
http://localhost:8080/jeecg-boot/swagger-ui.html
http://localhost:8080/jeecg-boot/doc.html
登录名:jeecg,密码jeecg1314

3、项目根路径如何修改
目前项目后台访问默认路径是: http://localhost:8080/jeecg-boot
默认端口: 8080
默认项目名: jeecg-boot
如果需要自定义可以修改配置文件: src/main/resources/application.yml

  1. server:
  2. port: 8080
  3. servlet:
  4. context-path: /jeecg-boot

4、获取登录用户信息

LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();

5、手工编码校验token有效性

  1. //校验Token有效性
  2. String token = request.getParameter("token");
  3. SysUser sysUser = shiroRealm.checkUserTokenIsEffect(token);

6、想要设定查询模式为模糊查询,怎么作全局修改?

修改后端/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java,找到installMplus方法下述代码修改即可

  1. //根据参数值带什么关键字符串判断走什么类型的查询
  2. QueryRuleEnum rule = convert2Rule(value);
  3. value = replaceValue(rule,value);
  4. // add -begin 添加判断若为字符串类型则设置为模糊查询
  5. if("class java.lang.String".equals(type)) {
  6. // 可以设置左右模糊或全模糊,因人而异
  7. rule = QueryRuleEnum.LIKE;
  8. }
  9. // add -end 添加判断若为字符串类型则设置为模糊查询
  10. addEasyQuery(queryWrapper, name, rule, value);

7、更多常见问题,实时更新

更多常见问题,实时更新,点击我

 

建表规范

  • 主键必须是ID,字符串类型,32位长度,唯一索引;
  • 建表标准字段,必须有:创建人、创建时间、修改人、修改时间等标准字段;
  1. ALTER TABLE `表名`
  2. ADD COLUMN `create_by` varchar(32) NULL COMMENT '创建人',
  3. ADD COLUMN `create_time` datetime NULL COMMENT '创建时间' AFTER `create_by`,
  4. ADD COLUMN `update_by` varchar(32) NULL COMMENT '修改人' AFTER `create_time`,
  5. ADD COLUMN `update_time` datetime NULL COMMENT '修改时间' AFTER `update_by`,
  6. ADD COLUMN `del_flag` tinyint(1) NULL COMMENT '删除标识0-正常,1-已删除' AFTER `update_time`;
  • 表字段注释,每个字段必须设置注释说明;
  • 表字段注释,状态类型的字段必须说明取值规则(比如性别sex取值规则)
    比如:'性别 0/男,1/女'
  • 索引,查询频率高的字段加索引(单字段索引 、组合索引);
  • 类型字段,尽量用字符串varchar类型1-2长度,少用int类型,避免不必要的问题。

 

全局配置文件

前台全局配置文件 配置内容:后台域名、图片服务器域名配置 文件位置:public/index.html 好处: 前端build完也可以直接修改index.html配置内容

  1. <!-- 全局配置 -->
  2. <script>
  3. window._CONFIG = {};
  4. window._CONFIG['domianURL'] = 'http://localhost:8080/jeecg-boot';
  5. window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view';
  6. window._CONFIG['pdfDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/pdf/pdfPreviewIframe';
  7. window._CONFIG['casPrefixUrl'] = 'http://cas.example.org:8443/cas';
  8. </script>

用法:

参数写法描述
后台服务域名window._CONFIG['domianURL']-
图片服务器域名window._CONFIG['imgDomainURL']-
pdf文件预览地址window._CONFIG['pdfDomainURL']-
CAS服务器地址window._CONFIG['casPrefixUrl']

 

源码解读

  1. 登录页面代码位置

    1. src\components\layouts\UserLayout.vue
    2. src/views/user/Login.vue
  2. 首页logo修改

    src/components/tools/Logo.vue
    
  3. 图片预览路径

    1. public/index.html
    2. <!-- 全局配置 -->
    3. <script>
    4. window._CONFIG = {};
    5. window._CONFIG['imgDomainURL'] = 'http://localhost:8080/jeecg-boot/sys/common/view';
    6. </script>
    7. 图文访问路径: http://127.0.0.1:8080/jeecg-boot/sys/common/view/user/h.jpg

    4.首页报表

    1. src/views/dashboard/*
    2. src/views/dashboard/Analysis.vue
  4. 登录退出逻辑

    1. 1.登录页面: src/views/user/Login.vue
    2. 2.相关API定义位置: src/api/index.js(很多无用的删掉)
    3. src/api/index.js
    4. src/api/login.js
    5. src/api/manage.js
    6. 3.左侧菜单加载页面:src/components/menu
    7. src/utils/util.js
    8. src/permission.js
    9. 4.隐藏路由配置
    10. 用途: 如果那个组件不想在菜单上配置,但有需要路由跳转,则需要在这个地方配置路由。
    11. src/config/router.config.js
    12. 对象: constantRouterMap
    13. 5. 接口: /sys/login 登录接口
    14. /sys/permission/queryByUser 获取用户信息接口(首页菜单)

6.首页风格设置 src/defaultSettings.js

 

常用命令

yarn install | 下载依赖(推荐)

cnpm install | 下载依赖

npm install | 下载依赖(不建议用,容易出各种诡异问题&慢)

rimraf node_modules | 删除依赖(需要npm install rimraf -g)

 

Form 表单开发特殊性

v-decorator 属性 针对特殊控件: select、radio、checkbox

  1. <a-radio-group buttonStyle="solid" v-decorator="[ 'status', {'initialValue':0}]">
  2. <a-radio-button :value="0">正常</a-radio-button>
  3. <a-radio-button :value="-1">停止</a-radio-button>
  4. </a-radio-group>

注意: 此处的默认值只能通过{'initialValue':0} 这样的设置,不能通过属性。

表单编辑赋值操作:

  1. this.$nextTick(() => {
  2. this.form.setFieldsValue(pick(this.model,'description','status'));
  3. });

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/787883
推荐阅读
相关标签
  

闽ICP备14008679号