流式代码写法
流式代码写法
public class Demo { public static void main(String[] args) { CiConfig config = new CiConfig(); config.port(8080).fileDir("www").filePath("/img/;/js/;/css/") .handlerPackage("ci.demo") .handlerDir("bin/"); //设置脚本搜索目录 或者 jar文件,具体看自己运行环境设置 CiService service = new CiService(config); service.start(); service.dev();// 此方法设置后,会监控脚本 变化,实现热更新 } }
package ci.web;
import com.alibaba.fastjson.JSONObject;
import ci.web.util.ConfigUtil;
/**
* 配置
* @author zhh
*/
public class CiConfig {
private int port = 8008;
//脚本处理-扫描路径
private String handlerDir = "bin/";
//脚本处理-扫描包
private String handlerPackage = "ci.app";
//文件目录
private String fileDir = "www/";
//文件路由路径
private String filePath = "/";
//文件缓存时间
private int fileMaxAge = 604800;
//排除某些后缀
private String exceptExtend = null;
private int maxMsgSize = 64*1024;
//cors配置
private String corsOrgins = null;
//限制最大连接数
private int limit = 0;
//工作线程数
private int workThread = 0;
//允许哪些域名指向
private String host;
//是否启用websocket
private boolean webSocket;
private String webSocketPath="/websocket";
public CiConfig() {
}
public String handlerDir(){
return handlerDir;
}
/**
* 设置web-api的类路径(可以是文件目录,可以是jar文件)
* @param p
* @return
*/
public CiConfig handlerDir(String p){
handlerDir = p;
return this;
}
public String handlerPackage(){
return handlerPackage;
}
/**
* 设置web-api的包路径前缀, 例如统一在 ci.app
* @param p
* @return
*/
public CiConfig handlerPackage(String p){
handlerPackage = p;
return this;
}
public String fileDir(){
return fileDir;
}
/**
* 设置静态文件 磁盘路径
* @param p
* @return
*/
public CiConfig fileDir(String p){
fileDir = p;
return this;
}
/**
* 设置静态文件请求路由
* @param p
* @return
*/
public CiConfig filePath(String p) {
filePath = p;
return this;
}
public String filePath() {
return filePath;
}
/**
* 设置排除哪些后缀,排除后,不作为静态文件路由
* @param p
* @return
*/
public CiConfig exceptExtend(String p) {
exceptExtend = p;
return this;
}
public String exceptExtend() {
return exceptExtend;
}
/**
* 设置静态文件 在浏览器内的缓存时间,单位是秒
* @param p
* @return
*/
public CiConfig fileMaxAge(int p) {
fileMaxAge = p;
return this;
}
public int fileMaxAge() {
return fileMaxAge;
}
public int limit(){
return limit;
}
/**
* 设置最大同时允许多少个socket连接
* @param p
* @return
*/
public CiConfig limit(int p){
limit = p;
return this;
}
public int workThread(){
return workThread;
}
/**
* 设置多少个工作线程
* @param p
* @return
*/
public CiConfig workThread(int p){
workThread = p;
return this;
}
public int maxMsgSize(){
return maxMsgSize;
}
/**
* 设置http请求允许的最大数据长度
* @param p
* @return
*/
public CiConfig maxMsgSize(int p){
maxMsgSize = p;
return this;
}
public int port(){
return port;
}
/**
* 设置绑定的端口
* @param p
* @return
*/
public CiConfig port(int p){
port = p;
return this;
}
public String corsOrgins() {
return corsOrgins;
}
/**
* 设置html5跨域请求处理域名
* <pre>
* config.corsOrgins("baidu.com;qq.com");
* </pre>
* @param h
* @return
*/
public CiConfig corsOrgins(String orgins) {
corsOrgins = orgins;
return this;
}
public String host() {
return host;
}
/**
* 设置限定请求域名,以;,两种符号的任意一种分割,例如
* <pre>
* config.host("baidu.com;qq.com");
* </pre>
* @param h
* @return
*/
public CiConfig host(String h) {
this.host = h;
return this;
}
public boolean webSocket() {
return webSocket;
}
/**
* 设置是否启用websocket功能
* @param h
* @return
*/
public CiConfig webSocket(boolean h) {
this.webSocket = h;
return this;
}
public String webSocketPath() {
return webSocketPath;
}
/**
* 设置websocket连接路径
* @param h
* @return
*/
public CiConfig webSocketPath(String h) {
this.webSocketPath = h;
return this;
}
/**
* 读取配置
* @param file
* @return
*/
public static CiConfig load(String file) {
JSONObject obj = ConfigUtil.loadAsJson(file);
if(obj != null) {
return ConfigUtil.cast(obj, CiConfig.class);
}
return null;
}
}
我曾七次鄙视自己的灵魂:
第一次,当它本可进取时,却故作谦卑;
第二次,当它空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中虽不甘心,却又畏首畏尾。

浙公网安备 33010602011771号