JeeSite 4.x

Spring Boot 最好的快速开发平台

快速开始、环境搭建、修改包名、新建模块、正式部署

开发环境要求

1、Java SDK 1.8 下载
2、Apache Maven 3.6+ 下载
3、Eclipse IDE for Java EE 下载、或 IntelliJ IDEA 下载
4、MySql 5.7.11+ 下载 or 8.0 下载(Oracle、PostgreSQL、Sql Server 操作类似)

导入到 Eclipse 或 IDEA

1、检出 JeeSite 4 源代码:

git clone https://gitee.com/thinkgem/jeesite4.git

2、拷贝 web 文件夹,到你的工作目录(不包含中文和空格的目录)下,重命名为你的工程名,如:jeesite-test

3、打开 pom.xml 文件,找到 jeesite-web 的 artifactId 元素,修改为你的工程名,如:jeesite-test

4、导入到 Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择第2步的 jeesite-test 文件夹,然后点击 Finish 按钮,即可成功导入

5、若 IDEA,点击 Import Project,选择 pom.xml 文件(若包含所有源码包,你需要选择 jeesite/root/pom.xml 文件),点击 Next 按钮,选择 Import Maven projects automatically 复选框,然后一直点击 Next 按钮,直到点击 Finish 按钮,即可成功导入

6、这时,Eclipse(IDEA)会自动加载 Maven 依赖包,初次加载会比较慢(根据自身网络情况而定),若工程上有小叉号,请打开 Problems 窗口,查看具体错误内容,直到无错误为止

7、下载依赖jar文件的过程中,你可以准备数据库环境了

若在部署过程中遇见问题,请在“常见问题”中找找,看看有没有和你相同的问题

初始化数据库

1、以 MySql 为例

1)打开 my.ini  [mysqld] 增加如下配置:

sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2)如果遇到 ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes. 错误

  a)打开 my.ini  [mysqld] 增加如下配置:

innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_file_per_table = ON

  b)并修改报错的建表语句后面加上:ENGINE=InnoDB row_format=DYNAMIC;

## 若没有修改my.ini的权限也可以使用命令查看参数和设置参数:
show global variables like "innodb_large_prefix";
show global variables like "innodb_file_format";
show global variables like "innodb_file_per_table";
set global innodb_large_prefix=ON;
set global innodb_file_format=Barracuda;
set global innodb_file_per_table=ON;

2、 创建用户和授权

set global read_only=0;
set global optimizer_switch='derived_merge=off'; 
create user 'jeesite'@'%' identified by 'jeesite';
create database jeesite DEFAULT CHARSET 'utf8' COLLATE 'utf8_general_ci';   
grant all privileges on jeesite.* to 'jeesite'@'%' identified by 'jeesite';
flush privileges;

3、 打开文件 /src/main/resources/config/application.yml(v4.0.x:/src/main/resources/config/jeesite.yml) 配置产品和项目名称及 JDBC 连接

## 产品或项目名称、软件开发公司名称
productName: 你的产品名称
companyName: 你的公司名全称

## 产品版本、版权年份
productVersion: V4.2
copyrightYear: 2020

## 数据库连接
jdbc: 

  # Mysql 数据库配置(4.2.x 使用 mysql 8.x 驱动类的配置方法)
  type: mysql
  driver: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://127.0.0.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=UTC
  username: root
  password: 123456
  testSql: SELECT 1

  ## Mysql 数据库配置(4.1.x 使用 mysql 5.x 驱动类的配置方法)
  type: mysql
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://127.0.0.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
  username: jeesite
  password: jeesite
  testSql: SELECT 1

4、若刚才导入到的 Eclipse(IDEA) 的项目已经完成加载 jar 并无错误,这时你就可以执行/bin/init-data.bat(.sh)脚本初始化数据库了,按提示操作,4.2.x 版本的初始化数据不会清空数据,如果已经初始化,将会自动忽略。若 4.1.x 旧版本遇见table xxx doesn't exist的错误信息,忽略即可。

5、若在初始化每一行语句的都报事务相关的错,请检查设置jdbc.jta.enabled=false是否关闭后,再尝试导入。

6、如果/bin/init-data.bat(.sh)无法运行,你可以在 Eclipse 或 IDEA 里找到com.jeesite.test.InitData.java(v4.1.8之前版本:com.jeesite.test.InitCoreData.java)文件并打开,然后在空白处右键,点击 Run As -> JUnit Test 运行单元测试,进行初始化数据库脚本(4.2.0之前版本:为了防止误操作,你还需要:打开 Run Configurations 找到 Arguments 选项卡,在 VM arguments 里增加 “-Djeesite.initdata=true” 参数,点击Run运行,执行完成后建议将该单元测试 Run Configuration 删除掉,防止误操作,不小心再把你的有用数据清理掉)。

启动Tomcat服务

1、当前是 Spring Boot 工程,内部已经集成 Web 容器,你无需另外再下载 Tomcat 进行部署,只需按照以下方式进行即可。

2、打开/src/main/resources/config/application.yml文件,配置你的服务端口port、部署路径context-path,例如:

server:
  port: 8980
  servlet:
    context-path: /js
  tomcat:
    uri-encoding: UTF-8

v4.0.x:

server:
  port: 8980
  context-path: /js
  tomcat:
    uri-encoding: UTF-8

3、在 Eclipse 里找到com.jeesite.modules.Application.java(v4.0.x:com.jeesite.modules.config.Application.java)文件并打开,然后在空白处右键,点击 Debug As -> Java Application 即可启动服务。

4、若 IDEA,找到右上角 Application 运行配置,点击 Debug Application 图标。若启动的时候提示NoClassDefFoundError: javax/servlet/ServletOutputStream 错误,你只需要修改 web 项目下的 pom.xml,注释掉spring-boot-starter-tomcat<scope>provided</scope>即可。

5、注意使用 Debug 运行,有助于你调试程序和提升开发效率,如:修改方法内的代码,修改视图代码,修改mapper代码,是不需要重启Web服务的。如果改变java类的结构,如果增删属性、方法、参数等,新增文件,这是就需要重启服务。

Eclipse 推荐设置参数

打开项目你可能会发现 html 文件多处报错,是因为 Beetl 语法和 JS 语法混用的时候语法错误误报问题,设置如下,菜单:Window -> Preferences ->

  • Validation -> JSON Validator -> 去掉对勾
  • Validation -> JavaScript Validator -> 去掉对勾
  • Validation -> HTML Syntax Validator -> 去掉对勾

  • Web -> HTML Files - Unknown tag name -> Ignore
  • Web -> HTML Files - Start-tag uses invalid case -> Ignore
  • Web -> HTML Files - Undefined attribute name -> Ignore
  • Web -> HTML Files - Invalid characters used in text string -> Ignore

哇,界面瞬间干净了。

部署完成测试

1、浏览器访问:http://127.0.0.1:8980/js

2、默认最高管理员账号:system 密码:admin

3、这时已经配置完成,开启你的开发之旅吧

清理 Demo 数据

为了演示方法,初始化数据库后会载入一些演示数据,执行以下脚本即可清理

DELETE FROM js_sys_post;
DELETE FROM js_sys_office;
DELETE FROM js_sys_company;
DELETE FROM js_sys_employee;
DELETE FROM js_sys_employee_post;
DELETE FROM js_sys_role WHERE role_code NOT IN ('corpAdmin','default');
DELETE FROM js_sys_role_data_scope;
DELETE FROM js_sys_user WHERE user_code NOT IN ('system','admin');
DELETE FROM js_sys_user_data_scope;
DELETE FROM js_sys_user_role;
DELETE FROM js_sys_log;

新建一个模块项目

1、举例创建 jeesite-module-test 模块功能,拷贝模块目录下的 /modules/template 模板项目文件夹

2、然后在相同文件夹 /modules/ 下粘贴,并重命名为你的模块名,如:/modules/test

3、打开 /modules/test/pom.xml 文件,找到 jeesite-module-template 的 artifactId 元素,修改为你的模块名,如:jeesite-module-test

4、打开 /root/pom.xml 文件,拷贝 <module>../modules/core</module> 到新一行,修改为你的模块名,如:<module>../modules/test</module>

5、在你需要用到的项目引入你的新模块,如,在 web 项目下用,则打开 /web/pom.xml 文件,加入:

<dependency>
	<groupId>com.jeesite</groupId>
	<artifactId>jeesite-module-test</artifactId>
	<version>${project.parent.version}</version>
</dependency>

6、若你使用的 Eclipse ,将该模块导入即可。若 IDEA 会自动检测 root 模块的依赖,并自动导入。

7、启动项目,打开 “系统管理 -> 系统设置 -> 模块管理” 菜单,新建一个模块,数据如下:

  • 模块名称:测试模块
  • 模块编码:test
  • 主类全名:com.jeesite.modules.sys.web.LoginController (模块下新增代码后,修改为模块关键类的类名)

注意:主类全名是指:该模块的状态验证类,如果该类检测不存在,则该模块状态提示 “未安装” ,验证原理:Class.forName(“com.jeesite.modules.sys.web.LoginController”)

8、模块创建完成

数据库脚本自动升级

每个主要模块下都有一个 versions 文件,该文件为数据库版本检测的关键文件。 例如 core 模块的版本检测文件为:/modules/core/src/main/resources/db/upgrade/core/versions 。 系统启动时,遍历模块表里的所有模块,检测 versions 文件的版本列表,与其当前模块版本进行对应。 找到对应版本,则依次往下进行匹配执行升级。若匹配的版本没有 sql 脚本,则忽略,只更新模块版本。 若 versions 文件的版本列表中没有匹配的版本,则提示:升级失败,数据库的版本可能比代码版本新。

使用自己的包路径

1、Application.java@SpringBootApplication(scanBasePackages="包路径") 增加你的包路径

2、application.yml 中找到 mybatis: scanBasePackage: 增加你的包路径,用逗号隔开

3、默认代码生成包路径修改:菜单系统设置->参数设置gen.defaultPackageName为你的包名

4、打开 logback-spring.xml,配置日志级别 <logger name="包路径" level="DEBUG" />

5、修改完成

部署到正式服务器

1、确保正式服务器jdk1.8数据库环境已经具备

2、配置系统环境变量JAVA_HOME指定jdk1.8路径,注意不要包含空格

3、执行bin/package.bat(.sh)进行打成war包文件,并将此war拷贝到服务器上

4、进行解压war包,配置yml相关参数,运行/WEB-INF/startup.bat(.sh)脚本

5、若需修改jvm参数,编辑startup.bat(.sh)修改JAVA_OPTS参数优化jvm环境

6、支持启动参数增加-Dspring.config.location=x:/app.yml加载指定配置文件

7、若需要配置环境,则指定-Dspring.profiles.active=dev,则加载application-dev.yml属性文件


【使用过程中的常见问题汇总】


阿里云【爆款特惠】精选爆款产品低至0.95折

关注 JeeSite 公众号,了解最新动态