<build>
<finalName>Springmvc</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build> [Java] druid推荐配置
druid配置
介绍:https://github.com/alibaba/druid
推荐配置:
initialSize 3 初始化配置
minIdle 3 最小连接数
maxActive 15 最大连接数
maxWait 5000 获取连接超时时间(单位:ms)
timeBetweenEvictionRunsMillis 90000 连接有效性检测时间(单位:ms)
testOnBorrow false 获取连接检测
testOnReturn false 归还连接检测
minEvictableIdleTimeMillis 1800000 最大空闲时间(单位ms)
testWhileIdle true 在获取连接后,确定是否要进行连接空间时间的检查
配置说明:
1:minEvictableIdleTimeMillis(最大空闲时间):默认为30分钟,配置里面不进行设置。
2:testOnBorrow ,testOnReturn 默认为关闭,可以设置为不配置。
3:testWhileIdle(在获取连接后,确定是否要进行连接空闲时间的检查)。默认为true。配置里面不再进行设置。
流程说明:
1:在第一次调用connection的时候,才会进行 initialSize的初始化。
2:心跳检测时间线程,会休眠timeBetweenEvictionRunsMillis时间,然后只对(没有borrow的线程 减去 minIdle)的线程进行检查,如果空闲时间大于minEvictableIdleTimeMillis则进行close。
3:testWhileIdle必须设置为true,在获取到连接后,先检查testOnBorrow,然后再判定testwhileIdle,如果连接空闲时间大于timeBetweenEvictionRunsMillis,则会进行心跳检测。
4:不需要配置validationQuery,如果不配置的情况下会走ping命令,性能更高。
5:连接保存在数组里面,获取连接的时候,获取数组的最后一位。在timeBetweenEvictionRunsMillis时是从前往后进行检查连接的有效性。
铭飞完整开源的J2EE系统
https://gitee.com/mingSoft/MCMS商用
基于MIT开源协议,可直接商用无需授权,但请尊重开源精神不要去掉代码中铭飞的注释和版权信息
特点
免费完整开源:基于MIT协议,源代码完全开源,无商业限制,MS开发团队承诺将MCMS内容系统永久完整开源;
标签化建站:不需要专业的后台开发技能,只要使用系统提供的标签,就能轻松建设网站;
html静态化:系统支持全站静态化;
跨终端:站点同时支持PC与移动端访问,同时会自动根据访问的终端切换到对应的界面,数据由系统统一管理;
海量模版:铭飞通过MStore(MS商城)分享更多免费、精美的企业网站模版,降低建站成本;
丰富插件:为了让MCms适应更多的业务场景,在MStore用户可以下载对应的插件,如:站群插件、微信插件、商城插件等;
每月更新:铭飞团队承诺每月28日为系统升级日,分享更多好用等模版与插件;
文档丰富:为了让用户更快速的使用MCms系统进行开发,铭飞团队持续更新开发相关文档,如标签文档、使用文档、视频教程等;
面向对象
企 业:帮助创立初期的公司或团队快速搭建产品的技术平台,加快公司项目开发进度;
开发者:帮助开发者快速完成承接外包的项目,避免从零搭建系统;
学习者:初学JAVA的同学可以下载源代码来进行学习交流;
开发环境
建议开发者使用以下环境,这样避免版本带来的问题
Windows、Linux
Eclipse、Idea
Mysql≧5.7
JDK≧8
Tomcat≧8
快速体验(导入到 Eclipse 或 IDEA)
1、检出源代码: git clone https://gitee.com/mingSoft/MCMS.git
2、导入项目
Eclipse导入,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择检出的项目MCMS文件夹,然后点击 Finish 按钮,即可成功导入
IDEA导入,点击 Import Project,选择 pom.xml 文件,点击 Next 按钮,选择 Import Maven projects automatically 复选框,然后一直点击 Next 按钮,直到点击 Finish 按钮,即可成功导入
4、Eclipse(IDEA)会自动加载 Maven 依赖包,初次加载会比较慢(根据自身网络情况而定),若工程上有小叉号,请打开 Problems 窗口,查看具体错误内容,直到无错误为止
5、创建数据库mcms(数据库使用utf-8编码),导入doc/mcms-版本号.sql,如果升级现有系统请使用*-up-*.sql升级,如果导入了系统对应的完整版SQL,sql升级补丁不需要重复导入;
6、修改src\main\resources\application-dev.yml文件中的数据库设置参数;
7、运行MSApplication.java main方法
8、首先先访问后台地址:http://localhost:8080/ms/login.do,管理员账号,用户名:msopen 密码:msopen,进入后台点击内容管理->静态化菜单,进行"生成主页","生成栏目","生成文章"操作一遍 (注意!!!是后台登录界面,不是会员中心登录界面)
技术选型
后端框架
技术 名称 官网
Spring Framework 容器 http://projects.spring.io/spring-framework
Spring Boot MVC框架 https://spring.io/projects/spring-boot
Apache Shiro 安全框架 http://shiro.apache.org
Spring session 分布式Session管理 http://projects.spring.io/spring-session
MyBatis ORM框架 http://www.mybatis.org
Freemarker 视图框架 http://freemarker.foofun.cn
PageHelper MyBatis分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Log4J 日志组件 http://logging.apache.org
Maven 项目构建 http://maven.apache.org
Elasticsearch 分布式搜索引擎 https://www.elastic.co
Redis 分布式缓存数据库 https://redis.io
hutool 工具类 http://hutool.mydoc.io
前端框架
技术 名称 官网
VUE MVVM框架 https://cn.vuejs.org//
Element UI UI库 https://element.eleme.cn/2.0/#/zh-CN
jQuery 函式库 http://jquery.com/
Waves 点击效果插件 https://github.com/fians/Waves/
validator 验证库 https://github.com/chriso/validator.js
animate 动画 http://daneden.github.io/animate.css/
icon 矢量小图标(待更新) https://www.iconfont.cn/
文件说明
doc 项目文档文件夹,里面有数据库文件
src/main/java java源代码
src/main/resources 项目的资源配置文件
src/main/webapp
src/main/webapp/static 静态资源文件,如:js、css、image、等第三方前端插件库
src/main/webapp/html 生成的静态页面,实际项目需要删除,只是提供给开发者快速预览生成后的静态页面
src/main/webapp/templet 模版文件夹
src/main/webapp/upload 上传资源文件夹
src/main/webapp/WEB-INF/manager 后端视图页面
LICENSE 项目协议说明
README.md 项目说明文档
pom.xml 依赖配置文件
文档
使用手册 http://doc.mingsoft.net/mcms/

JAVA免费开源框架 TCP长连接即时通讯框架 t-io
https://gitee.com/tywo45/t-io JAVA框架 JFinal 极速开发框架
JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)
JFinal有如下主要特点:
MVC架构,设计精巧,使用简单
遵循COC原则,支持零配置,无xml
独创Db + Record模式,灵活便利
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启 web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持 Enjoy、FreeMarker、JSP
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅 723 KB,且无第三方依赖
以下是JFinal实现Blog管理的示例:
1:控制器(支持 Enjoy、FreeMarker、JSP、JSON等以及自定义视图渲染)
@Before(BlogInterceptor.class)
public class BlogController extends Controller {
@Inject
BlogService service;
public void index() {
set("blogPage", service.paginate(getParaToInt(0, 1), 10));
render("blog.html");
}
public void add() {
}
@Before(BlogValidator.class)
public void save() {
getModel(Blog.class).save();
redirect("/blog");
}
public void edit() {
set("blog", service.findById(getParaToInt()));
}
@Before(BlogValidator.class)
public void update() {
getModel(Blog.class).update();
redirect("/blog");
}
public void delete() {
service.deleteById(getParaToInt());
redirect("/blog");
}
}2:Service(所有业务与sql放在Service层)
public class BlogService {
private Blog dao = new Blog().dao();
public Page<Blog> paginate(int pageNumber, int pageSize) {
return dao.paginate(pageNumber, pageSize, "select *", "from blog order by id asc");
}
public Blog findById(int id) {
return dao.findById(id);
}
public void deleteById(int id) {
dao.deleteById(id);
}
}3:Model(无xml、无annotation、无attribute)
public class Blog extends Model<Blog> {
}注意:实际应用中建议使用 jfinal 提供的生成器生成 base model,从而让 Blog 同时拥有 getter、setter 方法。生成器请下载首页的 jfinal_demo_for_maven
4:Validator(API引导式校验,比xml校验方便N倍,有代码检查不易出错)
public class BlogValidator extends Validator {
protected void validate(Controller controller) {
validateRequiredString("blog.title", "titleMsg", "请输入Blog标题!");
validateRequiredString("blog.content", "contentMsg", "请输入Blog内容!");
}
protected void handleError(Controller controller) {
controller.keepModel(Blog.class);
}
}5:拦截器(在此demo中仅为示例,本demo不需要此拦截器)
public class BlogInterceptor implements Interceptor {
public void intercept(Invocation inv) {
System.out.println("Before invoking " + inv.getActionKey());
inv.invoke();
System.out.println("After invoking " + inv.getActionKey());
}
}5:最新文档与最新下载
JFinal 5.0.0 手册(在线版) https://jfinal.com/doc
JFinal 5.0.0 demo for maven https://jfinal.com/download/now?file=jfinal_demo_for_maven-5.0.0.zip
JFinal blog https://jfinal.com/download/now?file=jfinal-blog-5.0.0.zip
PS:首先各位已经站在了 巨人的肩膀上!软件启动极快,基于这框架的开源项目也极多。
JFinal5.0 蓝奏下载(备选)
https://chenji.lanzouj.com/ihFm006x1ceh