Compare commits

...

16 Commits

Author SHA1 Message Date
thinkgem
4bdba535bb 5.5.1 2023-10-16 21:43:00 +08:00
thinkgem
09bf40feee update README.md 2023-10-16 20:06:08 +08:00
thinkgem
5d74d2783f update README.md 2023-10-16 07:00:46 +08:00
thinkgem
807b47dbc4 docker update 2023-10-12 14:50:32 +08:00
thinkgem
456cdaf883 Merge remote-tracking branch 'origin/v5.temp' into v5.temp 2023-10-07 17:14:35 +08:00
thinkgem
d1b588b7d5 spring boot 2.7.16 2023-10-07 15:05:45 +08:00
thinkgem
22a4b0fcf7 update README.md 2023-10-07 10:57:23 +08:00
thinkgem
84407b5785 修改erm默认字体大小,适应多操作系统 2023-10-01 16:52:45 +08:00
thinkgem
f5771c56a4 修改erm默认字体大小,适应多操作系统 2023-09-28 16:54:29 +08:00
thinkgem
a3dee0f70a 优化JsonMapper,增加XSS过滤通用方法 2023-09-27 13:19:22 +08:00
thinkgem
797abcdf87 update README.md 2023-09-19 14:27:28 +08:00
thinkgem
0559c79687 update 2023-09-18 10:59:26 +08:00
thinkgem
f514b86bbc linux下如果有前缀就不增加了 2023-09-18 10:59:10 +08:00
thinkgem
49992195df update script 2023-09-12 10:26:09 +08:00
thinkgem
631225a108 new version 2023-09-11 13:49:25 +08:00
thinkgem
5922951c16 add startup info 2023-08-30 15:32:57 +08:00
42 changed files with 6288 additions and 6211 deletions

View File

@@ -28,21 +28,27 @@
## 平台介绍
JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,后端基于经典组合 Spring Boot、Shiro、MyBatis前端采用 Beetl、Bootstrap、AdminLTE 经典开发模式,或者分离版 Vue3、Vite、Ant Design Vue、TypeScript、Vben Admin 最先进技术栈。提供在线代码生成功能可自动创建业务模块工程和微服务模块工程自动生成前端代码和后端代码包括功能模块如组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等。采用松耦合设计微内核和插件架构模块增减便捷界面无刷新一键换肤众多账号安全设置密码策略文件在线预览消息推送多元化第三方登录在线定时任务配置支持集群支持SAAS支持多数据源支持读写分离、分库分表支持微服务应用。
JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,后端基于经典组合 Spring Boot、Shiro、MyBatis前端采用 Beetl、Bootstrap、AdminLTE 经典开发模式,或者分离版 Vue3、Vite、Ant Design Vue、TypeScript、Vben Admin 最先进技术栈。
JeeSite 快速开发平台的主要目的是能够让初级的研发人员快速的开发出复杂的业务功能,中高级人员有时间做一些更有用的事情。让开发者注重专注业务,其余有平台来封装技术细节,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量
提供在线代码生成功能,可自动创建业务模块工程和微服务模块工程,自动生成前端代码和后端代码;包括功能模块如:组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等
JeeSite 自 2013 年发布以来已被广大爱好者用到了企业、政府、医疗、金融、互联网等各个领域中JeeSite 架构精良、易于扩展、大众思维的设计模式、工匠精神打磨每一个细节,深入开发者的内心,并荣获开源中国《最受欢迎中国开源软件》奖杯,期间也帮助了不少刚毕业的大学生,教师作为入门教材,快速的去实践
采用松耦合设计微内核和插件架构模块增减便捷界面细节到位一键换肤众多账号安全设置密码策略文件在线预览消息推送多元化第三方登录在线定时任务配置支持集群支持SAAS支持多数据源支持读写分离、分库分表支持微服务应用
JeeSite4 的升级,作者结合了多年总结和经验,以及各方面的应用案例,对架构完成了一次全部重构,也纳入很多新的思想。不管是从开发者模式、底层架构、逻辑处理还是到用户界面,用户交互体验上都有很大的进步,在不忘学习成本、提高开发效率的情况下,安全方面也做和很多工作,包括:身份认证、密码策略、安全审计、日志收集等众多安全选项供你选择。努力为大中小微企业打造全方位企业级快速开发解决方案
主要目的是能够让初级的研发人员快速的开发出复杂的业务功能,中高级人员有时间做一些更有用的事情。让开发者注重专注业务,其余有平台来封装技术细节,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量
JeeSite 自 2013 年发布以来已被广大爱好者用到了企业、政府、医疗、金融、互联网等各个领域中,拥有:精良架构、易于扩展、大众思维的设计模式,工匠精神,用心打磨每一个细节,深入开发者的内心,并荣获开源中国《最受欢迎中国开源软件》多次奖项,期间也帮助了不少刚毕业的大学生,教师作为入门教材,快速的去实践。
2019 年换代升级,作者结合了多年总结和经验,以及各方面的应用案例,对架构完成了一次全部重构,也纳入很多新的思想。不管是从开发者模式、底层架构、逻辑处理还是到用户界面,用户交互体验上都有很大的进步,在不忘学习成本、提高开发效率的情况下,安全方面也做和很多工作,包括:身份认证、密码策略、安全审计、日志收集等众多安全选项供您选择。努力为大中小微企业打造全方位企业级快速开发解决方案。
2021 年终发布 Vue3 的前后分离版本,使得 JeeSite 拥有同一个后台服务 Web 来支撑分离版和全栈版两套前端技术栈。
## 平台优势
JeeSite 整体架构清晰、稳定技术先进、源代码书写规范、经典技术会的人多、易于维护、易于扩展、安全稳定。
JeeSite 非常易于二次开发,可控性高,整体架构清晰、技术稳定而先进、源代码书写规范、经典技术会的人多、易于维护、易于扩展、安全稳定。
JeeSite 功能全,知识点非常多,也非常少。因为她使用的都是一些通用的技术,通俗的设计风格,大多数基础知识点多数人都能掌握,所以每一个 JeeSite 的功能点都非常容易掌握。只要学会使用这些功能和组件的应用,就可以顺利的完成系统开发了。
JeeSite 功能全,知识点非常多,也非常少。因为她使用的都是一些通用的技术,通俗的设计风格,大多数基础知识点多数人都能掌握,所以每一个 JeeSite 的功能点都非常容易掌握。只要学会使用这些功能和组件的应用,就可以顺利的完成系统开发了。
JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,封装不是限制去做一些事情而是在便捷的同时也具有较好的扩展性在不具备一些功能的情况下JeeSite 提供了扩展接口,提供了原生调用方法。
JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,封装不是限制去做一些事情而是在便捷的同时也具有较好的扩展性在不具备一些功能的情况下JeeSite 提供了扩展接口,提供了原生调用方法。
大家都在用 Spring也在学习 Spring 的优点Spring 提供了较好的扩展性,可又有多少人去修改它的源代码呢,退一步说,大家去修改了 Spring 的源码反而会对未来升级造成很大困扰您说不是呢这样的例子很多所以不要纠结我们非常注重这一点JeeSite 也一样具备强大的扩展性。
@@ -51,12 +57,13 @@ JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,
* 至今 JeeSite 平台架构已经非常稳定。
* JeeSite 精益求精,用心打磨每一个细节。
* JeeSite 是一个专业的平台,是一个让你使用放心的平台。
* 社区版基于 Apache License 2.0 开源协议,永久免费使用。
### 架构特点及安全方面的优势:<https://jeesite.com/docs/feature/>
## 技术选型
* 主框架Spring Boot 2.7、Spring Framework 5.3、Apache Shiro 1.11、J2Cache
* 主框架Spring Boot 2.7、Spring Framework 5.3、Apache Shiro 1.12、J2Cache
* 持久层Apache MyBatis 3.5、Hibernate Validator 6.2、Alibaba Druid 1.2
* 视图层Spring MVC 5.3、Beetl 3.10替换JSP、Bootstrap 3.3、AdminLTE 2.4
* 前端组件jQuery 3.7、jqGrid 4.7、layer 3.5、zTree 3.5、jQuery Validation
@@ -78,13 +85,17 @@ JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,
## 生态系统
* 分布式微服务Spring Cloud<https://gitee.com/thinkgem/jeesite4-cloud>
* 分布式微服务Spring Cloud<https://gitee.com/thinkgem/jeesite-cloud>
* Flowable业务流程引擎BPM<http://jeesite.com/docs/bpm/>
* JFlow工作流引擎<https://gitee.com/thinkgem/jeesite4-jflow> <http://ccflow.org>
* 内容管理模块CMS<https://gitee.com/thinkgem/jeesite4/tree/v5.3/modules/cms>
* 手机端移动端:<https://gitee.com/thinkgem/jeesite4-uniapp>
* JFlow工作流引擎<https://gitee.com/thinkgem/jeesite-jflow>
* 多站点内容管理模块CMS<https://jeesite.com/docs/cms/>
* 手机端移动端:<https://gitee.com/thinkgem/jeesite-uniapp>
* PC客户端程序<https://gitee.com/thinkgem/jeesite-client>
* Vue3分离版本<https://gitee.com/thinkgem/jeesite-vue>
* JeeSite统一认证<https://jeesite.com/docs/oauth2-server>
* MybatisPlus: <https://gitee.com/thinkgem/jeesite-mybatisplus>
* Magic接口快速开发<https://gitee.com/thinkgem/jeesite-magic-api>
* 内外网中间件:<https://my.oschina.net/thinkgem/blog/4624519>
## 快速体验
@@ -115,13 +126,14 @@ JeeSite 是一个低代码开发平台,具有较高的封装度、扩展性,
### 容器运行
- 拉取 Docker 镜像演示使用JeeSite版本较久
```
docker pull thinkgem/jeesite-web
```sh
docker pull thinkgem/jeesite-web:latest(arm64)
```
- 启动脚本:
```
docker run -d -p 8980:8980 --name jeesite-web -v /data:/data \
thinkgem/jeesite-web && docker logs -f jeesite-web
```sh
docker run --name jeesite-web \
-p 8980:8980 --privileged -d --restart unless-stopped \
-v ~:/data thinkgem/jeesite-web:latest(arm64) && docker logs -f jeesite-web
```
- 浏览器访问:<http://127.0.0.1:8980/js/> 账号 system 密码 admin
- 分离端安装:<https://jeesite.com/docs/vue-install-deploy/>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -784,7 +784,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils {
if (!StringUtils.endsWithAny(p, SEPARATOR) && StringUtils.endsWithAny(path, WIN_SEPARATOR, SEPARATOR)){
p = p + SEPARATOR;
}
if (path != null && path.startsWith(SEPARATOR)){
if (path != null && path.startsWith(SEPARATOR) && !p.startsWith(SEPARATOR)){
p = SEPARATOR + p; // linux下路径
}
return p;

View File

@@ -7,13 +7,16 @@ package com.jeesite.common.mapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonParser.Feature;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.introspect.Annotated;
import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.util.JSONPObject;
import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.io.PropertiesUtils;
import com.jeesite.common.lang.DateUtils;
@@ -31,16 +34,15 @@ import java.util.Map;
import java.util.TimeZone;
/**
* 简单封装Jackson实现JSON String<->Java Object的Mapper.
* 封装不同的输出风格, 使用不同的builder函数创建实例.
* 封装 Jackson实现 JSON StringJava Object 互转
* @author ThinkGem
* @version 2016-3-2
* @version 2023-09-26
*/
public class JsonMapper extends ObjectMapper {
private static final long serialVersionUID = 1L;
private static Logger logger = LoggerFactory.getLogger(JsonMapper.class);
private static final Logger logger = LoggerFactory.getLogger(JsonMapper.class);
/**
* 当前类的实例持有者(静态内部类,延迟加载,懒汉式,线程安全的单例模式)
@@ -48,7 +50,7 @@ public class JsonMapper extends ObjectMapper {
private static final class JsonMapperHolder {
private static final JsonMapper INSTANCE = new JsonMapper();
}
public JsonMapper() {
// Spring ObjectMapper 初始化配置,支持 @JsonView
new Jackson2ObjectMapperBuilder().configure(this);
@@ -59,9 +61,30 @@ public class JsonMapper extends ObjectMapper {
// 允许不带引号的字段名称
this.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
// 设置默认时区
this.setDefaultTimeZone();
// 设置默认日期格式
this.setDefaultDateFormat();
// 遇到空值处理为空串
this.enabledNullValueToEmpty();
// 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性
this.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}
/**
* 开启日期类型默认格式化
* @author ThinkGem
*/
public JsonMapper setDefaultTimeZone(){
this.setTimeZone(TimeZone.getTimeZone(PropertiesUtils.getInstance()
.getProperty("lang.defaultTimeZone", "GMT+08:00")));
// 设置默认日期格式
return this;
}
/**
* 开启日期类型默认格式化
* @author ThinkGem
*/
public JsonMapper setDefaultDateFormat(){
this.setDateFormat(new SimpleDateFormat(PropertiesUtils.getInstance()
.getProperty("web.json.defaultDateFormat", "yyyy-MM-dd HH:mm:ss")));
this.setAnnotationIntrospector(new JacksonAnnotationIntrospector() {
@@ -74,8 +97,7 @@ public class JsonMapper extends ObjectMapper {
if (jf != null) {
return new JsonSerializer<Date>(){
@Override
public void serialize(Date value, JsonGenerator jgen,
SerializerProvider provider) throws IOException, JsonProcessingException {
public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
if (value != null){
jgen.writeString(DateUtils.formatDate(value, jf.pattern()));
}
@@ -86,27 +108,39 @@ public class JsonMapper extends ObjectMapper {
return super.findSerializer(a);
}
});
// 设置输入时忽略在JSON字符串中存在但Java对象实际没有的属性
this.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
// 遇到空值处理为空串
return this;
}
/**
* 开启将空值转换为空字符串
* @author ThinkGem
*/
public JsonMapper enabledNullValueToEmpty(){
this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>(){
@Override
public void serialize(Object value, JsonGenerator jgen,
SerializerProvider provider) throws IOException, JsonProcessingException {
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeString(StringUtils.EMPTY);
}
});
// // 进行HTML解码先注释掉否则会造成XSS攻击比如菜单名称里输入<script>alert(123)</script>转josn后就会还原这个编码 ,并在浏览器中运行)。
// this.registerModule(new SimpleModule().addSerializer(String.class, new JsonSerializer<String>(){
// @Override
// public void serialize(String value, JsonGenerator jgen,
// SerializerProvider provider) throws IOException,
// JsonProcessingException {
// if (value != null){
// jgen.writeString(StringEscapeUtils.unescapeHtml4(value));
// }
// }
// }));
return this;
}
/**
* 开启 XSS 过滤器
* @author ThinkGem
*/
public JsonMapper enabledXssFilter(){
this.registerModule(new SimpleModule().addDeserializer(String.class, new JsonDeserializer<String>() {
@Override
public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String text = p.getText();
if (text != null) {
return EncodeUtils.xssFilter(text);
}
return null;
}
}));
return this;
}
/**

File diff suppressed because it is too large Load Diff

BIN
modules/app/db/app.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -11,4 +11,5 @@
5.3.2
5.4.0
5.4.1
5.5.0
5.5.0
5.5.1

File diff suppressed because it is too large Load Diff

BIN
modules/cms/db/cms.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -19,4 +19,5 @@
5.3.2
5.4.0
5.4.1
5.5.0
5.5.0
5.5.1

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1007 KiB

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -30,8 +30,8 @@
<g>255</g>
<b>255</b>
</color>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<settings>
<database>StandardSQL</database>
<capital>false</capital>
@@ -48,7 +48,7 @@
<suspend_validator>false</suspend_validator>
<export_setting>
<export_ddl_setting>
<output_path>db${'\\'}${moduleCode}.sql</output_path>
<output_path>db/${moduleCode}.sql</output_path>
<encoding>UTF-8</encoding>
<line_feed>CR+LF</line_feed>
<is_open_after_saved>false</is_open_after_saved>
@@ -80,7 +80,7 @@
</export_ddl_setting>
<export_excel_setting>
<category_id>null</category_id>
<output_path>db${'\\'}${moduleCode}.xls</output_path>
<output_path>db/${moduleCode}.xls</output_path>
<template></template>
<template_path></template_path>
<used_default_template_lang>en</used_default_template_lang>
@@ -96,7 +96,7 @@
<is_open_after_saved>true</is_open_after_saved>
</export_html_setting>
<export_image_setting>
<output_file_path>db${'\\'}${moduleCode}.png</output_file_path>
<output_file_path>db/${moduleCode}.png</output_file_path>
<category_dir_path></category_dir_path>
<with_category_image>true</with_category_image>
<is_open_after_saved>true</is_open_after_saved>
@@ -129,8 +129,8 @@
<id></id>
<height>-1</height>
<width>-1</width>
<font_name>Microsoft YaHei UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>50</x>
<y>50</y>
<color>
@@ -1046,8 +1046,8 @@
<id>e553474c37270813e70025e433a4cf8a64653e13</id>
<height>438</height>
<width>387</width>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>864</x>
<y>36</y>
<color>
@@ -1145,8 +1145,8 @@
<id>5435ef11ea53f170fe3491b199c113e47932e175</id>
<height>401</height>
<width>320</width>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>36</x>
<y>36</y>
<color>
@@ -1606,8 +1606,8 @@
<id>5a836e654b7b7d19f102e87336fefa079d98a2e6</id>
<height>438</height>
<width>346</width>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>468</x>
<y>36</y>
<color>

View File

@@ -30,8 +30,8 @@
<g>255</g>
<b>255</b>
</color>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<settings>
<database>StandardSQL</database>
<capital>false</capital>
@@ -48,7 +48,7 @@
<suspend_validator>false</suspend_validator>
<export_setting>
<export_ddl_setting>
<output_path>db${'\\'}${moduleCode}.sql</output_path>
<output_path>db/${moduleCode}.sql</output_path>
<encoding>UTF-8</encoding>
<line_feed>CR+LF</line_feed>
<is_open_after_saved>false</is_open_after_saved>
@@ -80,7 +80,7 @@
</export_ddl_setting>
<export_excel_setting>
<category_id>null</category_id>
<output_path>db${'\\'}${moduleCode}.xls</output_path>
<output_path>db/${moduleCode}.xls</output_path>
<template></template>
<template_path></template_path>
<used_default_template_lang>en</used_default_template_lang>
@@ -96,7 +96,7 @@
<is_open_after_saved>true</is_open_after_saved>
</export_html_setting>
<export_image_setting>
<output_file_path>db${'\\'}${moduleCode}.png</output_file_path>
<output_file_path>db/${moduleCode}.png</output_file_path>
<category_dir_path></category_dir_path>
<with_category_image>true</with_category_image>
<is_open_after_saved>true</is_open_after_saved>
@@ -129,8 +129,8 @@
<id></id>
<height>-1</height>
<width>-1</width>
<font_name>Microsoft YaHei UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>50</x>
<y>50</y>
<color>
@@ -1046,8 +1046,8 @@
<id>e553474c37270813e70025e433a4cf8a64653e13</id>
<height>438</height>
<width>387</width>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>864</x>
<y>36</y>
<color>
@@ -1145,8 +1145,8 @@
<id>5435ef11ea53f170fe3491b199c113e47932e175</id>
<height>401</height>
<width>320</width>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>36</x>
<y>36</y>
<color>
@@ -1606,8 +1606,8 @@
<id>5a836e654b7b7d19f102e87336fefa079d98a2e6</id>
<height>438</height>
<width>346</width>
<font_name>Segoe UI</font_name>
<font_size>9</font_size>
<font_name>Arial</font_name>
<font_size>14</font_size>
<x>468</x>
<y>36</y>
<color>

View File

@@ -5,7 +5,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite-modules</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite Modules</name>

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.14</version>
<version>2.7.16</version>
<relativePath />
</parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite Parent</name>
@@ -76,8 +76,8 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- docker setting -->
<docker.dockerHost>http://192.168.56.102:2375</docker.dockerHost>
<docker.imageName>thinkgem/${project.artifactId}:5.0</docker.imageName>
<docker.dockerHost>http://docker.local:2375</docker.dockerHost>
<docker.imageName>thinkgem/${project.artifactId}:5.5</docker.imageName>
<docker.run.port>8980:8980</docker.run.port>
</properties>
@@ -354,11 +354,11 @@
</configuration>
</plugin>
<!-- Docker 插件 https://github.com/fabric8io/docker-maven-plugin -->
<!-- Docker 插件 https://dmp.fabric8.io - https://github.com/fabric8io/docker-maven-plugin -->
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.39.1</version>
<version>0.43.4</version>
<configuration>
<dockerHost>${docker.dockerHost}</dockerHost>
<verbose>true</verbose>

View File

@@ -5,7 +5,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite</name>

View File

@@ -5,7 +5,7 @@
<groupId>com.jeesite</groupId>
<artifactId>jeesite-root</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JeeSite Root</name>

View File

@@ -12,7 +12,7 @@ echo [
echo.
echo [<5B><>Ϣ] <20><> v4.2 <20><EFBFBD>Ժ󣬹ٷ<F3A3ACB9><D9B7><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>DZȽϰ<C8BD>ȫ<EFBFBD>ģ<EFBFBD><C4A3>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĽű<C4BD><C5B1><EFBFBD>
echo.
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> v4.2 <20>Ժ<EFBFBD><D4BA>İ<EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo.
pause

View File

@@ -13,9 +13,9 @@ echo "[信息] 本操作主要用于首次安装 JeeSite 或后安装 Module 的
echo ""
echo "[信息] 在 v4.2 版本以后,官方初始化数据库是比较安全的,官方代码中不会包含任何删除数据表及数据的脚本。"
echo ""
echo "[信息] 如果你是升级到 v4.2 以后的版本,无法排除你是否升级完整,为安全起见,建议先备份数据库后再操作。"
echo "[信息] 如果你是升级到版本,排除你是否升级完整,为安全起见,建议先备份数据库后再操作。"
echo ""
echo -n "请按任意键继续 ... "
echo "请按回车键继续 ... "
read text
cd ..
@@ -24,10 +24,12 @@ mvn clean compile -Dmaven.test.skip=true -U
echo ""
echo "[信息] 依赖下载完成,下面开始初始化数据库。"
echo ""
echo -n "请按任意键继续 ... "
echo "请按回车键继续 ... "
read text
MAVEN_OPTS="$MAVEN_OPTS -Xms512m -Xmx1024m"
mvn test -Dmaven.test.skip=false -Dtest=com.jeesite.test.InitData
cd bin
cd bin
echo "请按回车键完成 ... "
read text

File diff suppressed because it is too large Load Diff

BIN
web-api/db/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -4,6 +4,10 @@
*/
package com.jeesite.modules;
import com.jeesite.common.config.Global;
import com.jeesite.common.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -12,13 +16,21 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
/**
* Application
* @author ThinkGem
* @version 2018-10-13
*/
@SpringBootApplication
public class ApiApplication extends SpringBootServletInitializer {
private static Logger logger = LoggerFactory.getLogger(ApiApplication.class);
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
logger.info(
"\r\n\r\n==============================================================\r\n"
+ "\r\n 启动完成接口地址http://127.0.0.1:"
+ Global.getProperty("server.port") + FileUtils.path("/"
+ Global.getProperty("server.servlet.context-path"))
+ "\r\n\r\n 默认管理账号: system 密码: admin"
+ "\r\n\r\n==============================================================\r\n");
}
@Override

View File

@@ -19,7 +19,7 @@ echo.
echo.
echo <20>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľű<C4BD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Docker <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>
echo.
echo "docker run -d -p 8980:8980 --name jeesite-web --restart unless-stopped -v /data:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo "docker run --name jeesite-web -p 8980:8980 --privileged -d --restart unless-stopped -v ~:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo.
echo <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ󣬷<C9BA><F3A3ACB7><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>http://127.0.0.1:8980/js/a/login <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>system <20><><EFBFBD>룺admin
echo.

View File

@@ -17,7 +17,7 @@ echo ""
echo ""
echo "参考下面的脚本,拷贝到 Docker 服务器上运行:"
echo ""
echo "docker run -d -p 8980:8980 --name jeesite-web --restart unless-stopped -v /data:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo "docker run --name jeesite-web -p 8980:8980 --privileged -d --restart unless-stopped -v ~:/data thinkgem/jeesite-web && docker logs -f jeesite-web"
echo ""
echo "启动完成后访问项目http://127.0.0.1:8980/js/a/login 用户名system 密码admin"
echo ""

View File

@@ -12,7 +12,7 @@ echo [
echo.
echo [<5B><>Ϣ] <20><> v4.2 <20><EFBFBD>Ժ󣬹ٷ<F3A3ACB9><D9B7><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>DZȽϰ<C8BD>ȫ<EFBFBD>ģ<EFBFBD><C4A3>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĽű<C4BD><C5B1><EFBFBD>
echo.
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> v4.2 <20>Ժ<EFBFBD><D4BA>İ<EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo [<5B><>Ϣ] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
echo.
pause

View File

@@ -4,7 +4,7 @@
# * No deletion without permission, or be held responsible to law.
# *
# * Author: ThinkGem@163.com
# *
# *
# */
echo ""
echo "[信息] 初始化数据库。"
@@ -13,9 +13,9 @@ echo "[信息] 本操作主要用于首次安装 JeeSite 或后安装 Module 的
echo ""
echo "[信息] 在 v4.2 版本以后,官方初始化数据库是比较安全的,官方代码中不会包含任何删除数据表及数据的脚本。"
echo ""
echo "[信息] 如果你是升级到 v4.2 以后的版本,无法排除你是否升级完整,为安全起见,建议先备份数据库后再操作。"
echo "[信息] 如果你是升级到版本,排除你是否升级完整,为安全起见,建议先备份数据库后再操作。"
echo ""
echo -n "请按任意键继续 ... "
echo "请按回车键继续 ... "
read text
cd ..
@@ -24,10 +24,12 @@ mvn clean compile -Dmaven.test.skip=true -U
echo ""
echo "[信息] 依赖下载完成,下面开始初始化数据库。"
echo ""
echo -n "请按任意键继续 ... "
echo "请按回车键继续 ... "
read text
MAVEN_OPTS="$MAVEN_OPTS -Xms512m -Xmx1024m"
mvn test -Dmaven.test.skip=false -Dtest=com.jeesite.test.InitData
cd bin
cd bin
echo "请按回车键完成 ... "
read text

File diff suppressed because it is too large Load Diff

BIN
web-fast/db/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -25,9 +25,9 @@
<start-class>com.jeesite.modules.FastApplication</start-class>
<!-- docker setting -->
<docker.dockerHost>http://192.168.56.102:2375</docker.dockerHost>
<docker.imageName>thinkgem/jeesite-web:latest</docker.imageName>
<docker.run.port>8980:8980</docker.run.port>
<docker.dockerHost>http://docker.local:2375</docker.dockerHost>
<docker.imageName>thinkgem/jeesite-web:latest</docker.imageName>
<docker.run.port>8980:8980</docker.run.port>
</properties>
@@ -122,7 +122,6 @@
<wtpContextName>${finalName}</wtpContextName>
</configuration>
</plugin>
</plugins>
</build>

View File

@@ -5,6 +5,7 @@
package com.jeesite.modules;
import com.jeesite.common.config.Global;
import com.jeesite.common.io.FileUtils;
import com.jeesite.common.web.BaseController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -20,7 +21,6 @@ import java.net.UnknownHostException;
/**
* Application
* @author ThinkGem
* @version 2018-10-13
*/
@SpringBootApplication
public class FastApplication extends SpringBootServletInitializer {
@@ -38,9 +38,9 @@ public class FastApplication extends SpringBootServletInitializer {
logger.info(
"\r\n\r\n==============================================================\r\n"
+ "\r\n 启动完成访问地址http://127.0.0.1:"
+ Global.getProperty("server.port") + "/"
+ Global.getProperty("server.servlet.context-path")
+ "\r\n\r\n 默认用户名 system 密码: admin"
+ Global.getProperty("server.port") + FileUtils.path("/"
+ Global.getProperty("server.servlet.context-path"))
+ "\r\n\r\n 默认管理账号 system 密码: admin"
+ "\r\n\r\n==============================================================\r\n");
}

View File

@@ -7,7 +7,7 @@ jdbc:
# Mysql 数据库配置
type: h2
driver: org.h2.Driver
url: jdbc:h2:/data/jeesite-db/jeesite501
url: jdbc:h2:/data/jeesite-db/jeesite551
username: jeesite
password: jeesite
testSql: SELECT 1

View File

@@ -53,7 +53,7 @@ jdbc:
# H2 数据库配置(请修改 /modules/core/pom.xml 文件,打开 H2 DB 依赖)
type: h2
driver: org.h2.Driver
url: jdbc:h2:~/jeesite-db/jeesite501
url: jdbc:h2:~/jeesite-db/jeesite551
username: jeesite
password: jeesite
testSql: SELECT 1

View File

@@ -15,7 +15,7 @@ echo "[信息] 在 v4.2 版本以后,官方初始化数据库是比较安全
echo ""
echo "[信息] 如果你是升级到该版本,不排除你是否升级完整,为安全起见,建议先备份数据库后再操作。"
echo ""
echo -n "请按任意键继续 ... "
echo "请按回车键继续 ... "
read text
cd ..
@@ -24,10 +24,12 @@ mvn clean compile -Dmaven.test.skip=true -U
echo ""
echo "[信息] 依赖下载完成,下面开始初始化数据库。"
echo ""
echo -n "请按任意键继续 ... "
echo "请按回车键继续 ... "
read text
MAVEN_OPTS="$MAVEN_OPTS -Xms512m -Xmx1024m"
mvn test -Dmaven.test.skip=false -Dtest=com.jeesite.test.InitData
cd bin
cd bin
echo "请按回车键完成 ... "
read text

File diff suppressed because it is too large Load Diff

BIN
web/db/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.5.0-SNAPSHOT</version>
<version>5.5.1-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>

View File

@@ -4,6 +4,10 @@
*/
package com.jeesite.modules;
import com.jeesite.common.config.Global;
import com.jeesite.common.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -12,13 +16,21 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
/**
* Application
* @author ThinkGem
* @version 2018-10-13
*/
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
private static Logger logger = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
logger.info(
"\r\n\r\n==============================================================\r\n"
+ "\r\n 启动完成访问地址http://127.0.0.1:"
+ Global.getProperty("server.port") + FileUtils.path("/"
+ Global.getProperty("server.servlet.context-path"))
+ "\r\n\r\n 默认管理账号: system 密码: admin"
+ "\r\n\r\n==============================================================\r\n");
}
@Override