基于jeesite的cms系统(一):开发环境搭建
基于jeesite的cms系统系列,是对基于jeesite进行二次开发的博客模块开发过程的总结。涉及入门安装,二次开发,部署等
一、概况:
JeeSite 是一个 Java 企业级快速开发平台,基于经典技术(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)组合,方便的在线代码生成功能,包括核心模块如:组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等。采用松耦合设计;界面无刷新,一键换肤;众多账号安全设置,密码策略;在线定时任务配置;支持集群,支持SAAS;支持多数据源。
二、界面:

三、源代码和文档
源代码:jeesite:https://gitee.com/thinkgem/jeesite4
jeesite+cms:https://gitee.com/Vito-Yan/yuosc-cms
文档:https://jeesite.gitee.io/docs/
四、开发环境搭建:https://jeesite.gitee.io/docs/install-deploy/
环境要求
1、Java SDK 1.8 下载
2、Eclipse IDE for Java EE Mars 2 (4.5.2) 下载(依 Eclipse 举例,IDEA 雷同。)
3、Apache Maven 3.3.0+ 下载
4、MySql 5.7.11+ 下载
导入到Eclipse
1、检出JeeSite4源代码:
git clone https://gitee.com/thinkgem/jeesite4.git
2、拷贝web文件夹,到你的工作目录(不包含中文和空格的目录)下,重命名为你的工程名,如:jeesite-demo
3、打开pom.xml文件,修改第13行,artifactId为你的工程名,如:<artifactId>jeesite-demo</artifactId>
4、导入到Eclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择第2步的jeesite-demo文件夹,然后点击 Finish 按钮,即可成功导入
5、这时,Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定),若工程上有小叉号,请打开Problems窗口,查看具体错误内容,直到无错误为止
6、下载过程中你可以准备数据库环境了
若在部署过程中遇见问题,请在“常见问题”中找找,看看有没有和你相同的问题
初始化数据库
1、以MySql为例,配置 my.ini
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.
# 错误,请加入如下配置:
innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_file_per_table = ON
并修改报错的建表语句后面加上:ENGINE=InnoDB row_format=DYNAMIC;
2、 创建用户和授权
set global read_only=0;
set global optimizer_switch='derived_merge=off';
create user 'jeesite'@'%' identified by 'jeesite';
create database jeesite DEFAULT CHARSET 'utf8mb4' COLLATE 'utf8mb4_unicode_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: JeeSite Demo
companyName: ThinkGem
# 产品版本、版权年份
productVersion: V4.1
copyrightYear: 2018
# 数据库连接
jdbc:
# Mysql 数据库配置
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的项目已经完成加载jar并无错误,你就可以执行/bin/init-data.bat脚本初始化数据库了,第一次执行如果遇见table xxx doesn't exist的错误信息,忽略即可。
5、如果init-data.bat无法运行,你也可以直接在Eclipse里找到com.jeesite.test.InitCoreData.java文件并打开,然后在空白处右键,点击 Run As -> JUnit Test 运行单元测试,进行初始化数据库脚本。为了防止误操作,你还需要:打开 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: /jeesite-demo
tomcat:
uri-encoding: UTF-8
v4.0.x:
server:
port: 8980
context-path: /jeesite-demo
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、注意使用 Debug 运行,有助于你调试程序和提升开发效率,如:修改方法内的代码,修改视图代码,修改mapper代码,是不需要重启Web服务的。如果改变java类的结构,如果增删属性、方法、参数等,新增文件,这是就需要重启服务。
浏览器访问
1、地址:http://127.0.0.1:8980/jeesite-demo
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;
使用自己的package包路径
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属性文件
五、二次开发注意事项
1、只需要拷贝源代码中的web文件夹,这里面是test Demo,项目核心jar包已经pom集成了。
2、可能会遇到数据库问题,按照第四步骤解决。
基于jeesite的cms系统(一):开发环境搭建的更多相关文章
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- 基于全志H3芯片的ARM开发环境搭建
基于全志H3芯片的ARM开发环境搭建 最近买了个友善之臂的NanoPi M1板子,又在网上申请了个NanoPi NEO板子,这两个都是基于全志H3芯片的Crotex-A7四核ARM开发板,两个板子可以 ...
- MAC系统 -java开发环境搭建
MAC - java开发环境搭建 软件: jdk Intellij IDEA:java开发工具 maven:jar包管理 git :源码管理 sourceTree :源码管理GUI客户端 Studio ...
- 基于jeesite的cms系统(三):使用RESTful API在前端渲染数据
使用RESTful API可以更好的开发前后分离的应用,后面一节会介绍使用模版引擎Beetl开发后端渲染的应用. 一.配置Swagger(Api 接口文档) 1.使用系统自带 拷贝jeesite-mo ...
- 基于jeesite的cms系统(四):使用Beetl模版引擎在后端渲染数据
一.Beetl简介 1. 什么是Beetl Beetl目前版本是2.9.3,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验. ...
- 基于jeesite的cms系统(五):wangEditor富文本编辑器
一.关于wangEditor: wangEditor —— 轻量级 web 富文本编辑器,配置方便,使用简单.支持 IE10+ 浏览器. 官网:www.wangEditor.com 文档:www.ka ...
- Linux系统Go开发环境搭建
Go 语言是由谷歌的科学家开发的,并开源的新语言,被誉为"21世纪的C语言",它的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡,从而使编程变得 ...
- MAC 系统java开发环境搭建教程
1.在安装JDK之前,先查看下自己电脑是否已经安装了JDK. 打开终端,输入java -version并回车. 从上图中可以看出我们已安装了,JDK 8.如果这个版本是你需要的版本,可直接看4 ...
- QGIS 3.14插件开发——Win10系统PyCharm开发环境搭建四步走
前言:最近实习要求做一个QGIS插件,网上关于QGIS 3.14插件开发环境搭建的文档不多,而且也不算太全面.正好实习的时候写了一个文档,在这里给大家分享一下. 因为是Word转的Markdown,可 ...
随机推荐
- ILRuntime官方Demo笔记
调用/执行 热更中的方法 调用热更代码中方法,写在AppDomain中,记录一下主要几个方法: AppDomain.LoadAssembly 加载热更dll 执行热更代码的方法,有两种方式: appd ...
- Docker容器镜像删除
好吧,本来认为删除镜像是一件很容易的事情,但刚开始上手,还是有点百思不得其解.删着删着,发现果然很容易.分享下本人的心得: 分两种情况:那么要删除镜像,首先得删除容器,删除容器时,确保容器已停止运行: ...
- git之命令git checkout
git checkout 最常用的就是切换分支,最近又发现一种新的用法: 有时候,在看代码的时候,不小心改动了部分代码,但跟项目没啥关系,这个时候,想不去提交这些代码,怎么处理呢? 使用git che ...
- LeetCode算法题-Reach a Number(Java实现)
这是悦乐书的第310次更新,第331篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第179题(顺位题号是754).你站在无限数字线的0号位置.在目的地有个target.在 ...
- 如何在element-UI 组件的change事件中传递自定义参数
以select为例,如果select写在循环里,触发change事件时可能不只需要传递被选中项的值,还要传递index过去,来改变同一循环中的其他标签的状态. 下面这样写是无效的: @change=& ...
- 【spring源码分析】IOC容器初始化(十二)
前言:在doCreateBean方法中还遗留一个问题没有分析:循环依赖.循环依赖在Spring中是非常重要的一个知识点,因此单独进行分析. 什么是循环依赖 循环依赖就是循环引用,两个或两个以上的bea ...
- 前端部署ant+yuicompressor文件压缩+获取版本+SSH公布(部分代码)
文件压缩: <apply executable="java" parallel="false" failonerror="true" ...
- 【题解】UVA11362 Phone List
Tags : 排序,字典树 从短到长排序,逐个插入字典树.若与已有的重复,返回错误信息. #include <iostream> #include <stdio.h> ...
- React 系列教程2:编写兰顿蚂蚁演示程序
简介 最早接触兰顿蚂蚁是在做参数化的时候,那时候只感觉好奇,以为是很复杂的东西.因无意中看到生命游戏的 React 实现,所以希望通过兰顿蚂蚁的例子再学习一下 React. 兰顿蚂蚁的规则非常简单: ...
- Python--day11(函数的参数)
今日主要内容 1. 函数的参数 2. 函数的嵌套调用 1. 形参与实参 1. 参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎样定义函数的参数:在定义函数阶段,函数名在后面( ...