提交 0dde4f6a 编写于 作者: Skyeye云's avatar Skyeye云

取消common模块,添加jar

上级 f64288ec
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
<modules> <modules>
<module>skyeye-web</module> <module>skyeye-web</module>
<module>skyeye-common</module>
<module>skyeye-dao</module> <module>skyeye-dao</module>
<module>skyeye-service</module> <module>skyeye-service</module>
<module>skyeye-service-impl</module> <module>skyeye-service-impl</module>
......
...@@ -15,13 +15,13 @@ ...@@ -15,13 +15,13 @@
<dependencies> <dependencies>
<!-- 引入公共模块的依赖 --> <!-- 引入dao的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
<artifactId>skyeye-common</artifactId> <artifactId>skyeye-dao</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<!-- activiti工作 --> <!-- activiti工作 -->
<dependency> <dependency>
<groupId>org.activiti</groupId> <groupId>org.activiti</groupId>
......
*.class
# Package Files #
*.war
*.ear
class
.idea
*.iml
.settings
*.classpath
/bin
classes
/target/
/.project/
/.metadata/
/logs/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>skyeye-common</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>skyeye-promote</artifactId>
<groupId>com.skyeye</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>skyeye-common</artifactId>
<name>skyeye-common</name>
<url>http://www.example.com</url>
<dependencies>
</dependencies>
<build>
</build>
</project>
package com.skyeye.common.constans;
public enum CheckType {
NO("无验证", 0),
EMAIL("Email", 1),
STRLEN("字符长度", 2),
UNSTRCN("禁止中文", 3),
STRCN("仅许中文", 4),
NUM("数值", 5),
TELENUM("电话号码", 6),
PHONENUM("手机号码", 7),
DATE("日期", 8),
IDENTCODE("身份证号", 9),
ZIPCODE("邮政编码", 10),
URL("网址", 11),
TELE_PHONE_NUM("电话或手机号", 12);
private String name;
private int index;
private CheckType(String name, int index) {
this.name = name;
this.index = index;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}
package com.skyeye.common.constans;
import java.util.Map;
/**
*
* @ClassName: Constans
* @Description: 常量类
* @author 卫志强
* @date 2018年6月7日
*
*/
public class Constants {
/**
* 过滤器过滤文件目录请求项
*/
public static final String[] FILTER_FILE_CATALOG_OPTION = { "/html",
"/css", "/js", "/assets", "/tpl", "/images", "/template", "/static" };
/**
* 过滤器过滤文件后缀请求项
*/
public static final String[] FILTER_FILE_SUFFIX_OPTION = { ".json", ".css",
".js", ".gif", ".jpg", ".eot", ".svg", ".ttf", ".woff", ".woff2",
".mp4", ".rmvb", ".avi", "3gp", ".html", ".less", ".otf", ".scss",
".ico" };
/**
* IP过滤
*/
public static final String[] FILTER_FILE_IP_OPTION = { "0:0:0:0:0:0:0:1", "127.0.0.1"};
/**
* 过滤器过滤请求类型项
*/
public static final String[] FILTER_FILE_REQUEST_OPTION = { "/post", "/websocket", "/service" };
public static final String[] FILTER_FILE_NO_SESSION_REQUEST_OPTION = { "/service" };
/**
* 登录页面
*/
public static final String LOGIN_PAGE = "/tpl/index/login.html";
/**
* 控制页面
*/
public static final String INDEX_PAGE = "/tpl/index/index.html";
/**
* 系统请求参数集合
*/
public static Map<String, Map<String, Object>> REQUEST_MAPPING = null;
/**
* 网页请求发送的contentType格式
*/
public static final String CONENT_TYPE_WEB_REQ = "application/x-www-form-urlencoded";
/**
* json数据请求发送的数据格式
*/
public static final String CONENT_TYPE_JSON_REQ = "application/json";
/**
* 用户状态
*/
public static final String SYS_USER_LOCK_STATE_ISUNLOCK = "0";//未锁定
public static final String SYS_USER_LOCK_STATE_ISLOCK = "1";//锁定
/**
* 菜单类型
*/
public static final String SYS_MENU_TYPE_IS_IFRAME = "iframe";
public static final String SYS_MENU_TYPE_IS_HTML = "html";
/**
* 菜单链接打开类型,父菜单默认为1.1:打开iframe,2:打开html。
*/
public static final String SYS_MENU_OPEN_TYPE_IS_IFRAME = "1";
public static final String SYS_MENU_OPEN_TYPE_IS_HTML = "2";
/**
* 项目web层名称
*/
public static final String PROJECT_WEB = "\\skyeye-promote";
/**
* 保存模板说明的redis的key
*/
public static final String REDIS_CODEMODEL_EXPLAIN_EXEXPLAINTOCODEMODEL = "exexplaintocodemodel";//代码生成器模板规范说明key
public static final String REDIS_CODEMODEL_EXPLAIN_EXEXPLAINTODSFORMCONTENT = "exexplaintodsformcontent";//动态表单内容项模板规范说明key
public static final String REDIS_CODEMODEL_EXPLAIN_EXEXPLAINTORMPROPERTY = "exexplaintormproperty";//小程序标签属性模板规范说明key
public static final String REDIS_CODEMODEL_EXPLAIN_EXEXPLAINTODSFORMDISPLAYTEMPLATE = "exexplaintodsformdisplaytemplate";//动态表单数据展示模板规范说明key
/**
* 微信小程序页面id的序列号
*/
public static final String REDIS_PROJECT_PAGE_FILE_PATH = "projectpagefilepath";//页面路径的序列号key
public static final String REDIS_PROJECT_PAGE_FILE_NAME = "projectpagefilename";//页面名称的序列号key
public static final String REDIS_PROJECT_PAGE_FILE_PATH_NUM = "1000";//页面路径的序列号默认值
public static final String REDIS_PROJECT_PAGE_FILE_NAME_NUM = "1000";//页面名称的序列号默认值
/**
* 可以设置长些,防止读到运行此次系统检查时的cpu占用率,就不准了
*/
public static final int CPUTIME = 5000;
public static final int PERCENT = 100;
public static final int FAULTLENGTH = 10;
}
package com.skyeye.common.constans;
public enum QuType {
YESNO("是非题", "yesno", 0, "", ""),
RADIO("单选题", "radio", 1, "dw_qu_radio", "qu_id"),
CHECKBOX("多选题", "checkbox", 2, "dw_qu_checkbox", "qu_id"),
FILLBLANK("填空题", "fillblank", 3, "", ""),
MULTIFILLBLANK("多项填空题", "multi-fillblank", 4, "dw_qu_multi_fillblank", "qu_id"), // 组合填空题
ANSWER("多行填空题", "answer", 5, "", ""), // 原问答题
BIGQU("大题", "bigqu", 6, "", ""),
ENUMQU("枚举题", "enumqu", 7, "", ""),
SCORE("评分题", "score", 8, "dw_qu_score", "qu_id"),
ORDERQU("排序题", "orderby", 9, "dw_qu_orderby", "qu_id"),
PROPORTION("比重题", "proportion", 10, "", ""),
CHENRADIO("矩阵单选题", "chen-radio", 11, "dw_qu_chen_column,dw_qu_chen_row", "qu_id,qu_id"),
CHENFBK("矩阵填空题", "chen-fbk", 12, "dw_qu_chen_column,dw_qu_chen_row", "qu_id,qu_id"),
CHENCHECKBOX("矩阵多选题", "chen-checkbox", 13, "dw_qu_chen_column,dw_qu_chen_row", "qu_id,qu_id"),
COMPCHENRADIO("复合矩阵单选题", "comp-chen-radio", 14, "", ""),
UPLOADFILE("文件上传题", "sendfile", 15, "", ""),
PAGETAG("分页标记", "pagetag", 16, "", ""),
PARAGRAPH("段落说明", "paragraph", 17, "", ""),
CHENSCORE("矩阵评分题", "chen-score", 18, "dw_qu_chen_column,dw_qu_chen_row", "qu_id,qu_id"),
COMPRADIO("复合单选", "comp-radio", 19, "", ""),
COMPCHECKBOX("复合多选", "comp-checkbox", 20, "", "");
private String cnName;
private String actionName;
private int index;
private String tableName;
private String questionId;
QuType(String cnName, String actionName, int index, String tableName, String questionId) {
this.cnName = cnName;
this.actionName = actionName;
this.index = index;
this.tableName = tableName;
this.questionId = questionId;
}
public String getCnName() {
return cnName;
}
public void setCnName(String cnName) {
this.cnName = cnName;
}
public String getActionName() {
return actionName;
}
public void setActionName(String actionName) {
this.actionName = actionName;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getQuestionId() {
return questionId;
}
public void setQuestionId(String questionId) {
this.questionId = questionId;
}
public static String getActionName(int index){
for (QuType q : QuType.values()){
if(q.getIndex() == index){
return q.actionName;
}
}
return null;
}
public static String getCName(int index){
for (QuType q : QuType.values()){
if(q.getIndex() == index){
return q.cnName;
}
}
return null;
}
public static String getTableName(int index){
for (QuType q : QuType.values()){
if(q.getIndex() == index){
return q.tableName;
}
}
return null;
}
public static String getQuestionId(int index){
for (QuType q : QuType.values()){
if(q.getIndex() == index){
return q.questionId;
}
}
return null;
}
public static int getIndex(String actionName){
for (QuType q : QuType.values()){
if(q.getActionName().replaceAll("-", "").equals(actionName.toLowerCase())){
return q.index;
}
}
return -1;
}
}
package com.skyeye.common.object;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
/**
* request 对象的相关操作
* @author 卫志强
* @version 1.0
* @created 2017年07月02日 上午8:25:43
*/
public class GetRequestJsonUtils {
/***
* 获取 request 中 json 字符串的内容
*
* @param request
* @return : <code>byte[]</code>
* @throws IOException
*/
public static String getRequestJsonString(HttpServletRequest request) throws IOException {
String submitMehtod = request.getMethod();
// GET
if (submitMehtod.equals("GET")) {
return new String(request.getQueryString().getBytes("iso-8859-1"),"utf-8").replaceAll("%22", "\"");
// POST
} else {
return getRequestPostStr(request);
}
}
/**
* 描述:获取 post 请求的 byte[] 数组
* <pre>
* 举例:
* </pre>
* @param request
* @return
* @throws IOException
*/
public static byte[] getRequestPostBytes(HttpServletRequest request) throws IOException {
int contentLength = request.getContentLength();
if(contentLength<0){
return null;
}
byte buffer[] = new byte[contentLength];
for (int i = 0; i < contentLength;) {
int readlen = request.getInputStream().read(buffer, i,
contentLength - i);
if (readlen == -1) {
break;
}
i += readlen;
}
return buffer;
}
/**
* 描述:获取 post 请求内容
* <pre>
* 举例:
* </pre>
* @param request
* @return
* @throws IOException
*/
public static String getRequestPostStr(HttpServletRequest request) throws IOException {
byte buffer[] = getRequestPostBytes(request);
String charEncoding = request.getCharacterEncoding();
if (charEncoding == null) {
charEncoding = "UTF-8";
}
return new String(buffer, charEncoding);
}
}
package com.skyeye.common.object;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.alibaba.fastjson.JSON;
import com.skyeye.common.constans.Constants;
import com.skyeye.common.util.ToolUtil;
public class InputObject extends PutObject implements Serializable{
/**
* @Fields serialVersionUID : 标识
*/
private static final long serialVersionUID = 1L;
public static Map<String, Object> map;
public static Set<String> keySet;
private static Map<String, Object> USER_MATION = null;//用户信息
private static List<Map<String, Object>> USER_DESKTOP_MENU_MATION = null;//用户桌面菜单信息
private static List<Map<String, Object>> USER_ALL_MENU_MATION = null;//用户全部菜单信息
public InputObject() throws Exception{
map = new HashMap<String, Object>();
}
/**
* 网页请求content-type为application/x-www-form-urlencoded
* @throws Exception
*/
public static String setParams() throws Exception{
//以Map集合存储页面表单传递过来的所有参数的键值对
String key = getRequest().getParameter("sessionKey");
String contentType = getRequest().getContentType();
if(contentType == null){
Map<String, String[]> formMap = getRequest().getParameterMap();
return setParamsToMap(key, formMap);
}else{
if(contentType.contains(Constants.CONENT_TYPE_WEB_REQ)){//网页端请求
Map<String, String[]> formMap = getRequest().getParameterMap();
return setParamsToMap(key, formMap);
}else if(contentType.indexOf(Constants.CONENT_TYPE_JSON_REQ)!=-1){//json数据请求
String str = GetRequestJsonUtils.getRequestJsonString(getRequest());
try{
String allUse = Constants.REQUEST_MAPPING.get(key).get("allUse").toString();
map = JSON.parseObject(str);
if("1".equals(allUse)){//需要登录才能访问
if(!map.containsKey("userToken")){//usertoken键不存在
return "缺失重要参数";
}else{
String [] value = (String[]) map.get("userToken");
StringBuffer stb = new StringBuffer();
for(int i = 0; i < value.length; i++){
stb.append(value[i]);
}
map.put("userToken", stb.toString());
}
}
map.put("urlUseJurisdiction", allUse);//URL访问权限参数
}catch(Exception e){
Map<String, Object> formMap = ToolUtil.getUrlParams(str);
return setParamsObjToMap(key, formMap);
}
}else{
Map<String, String[]> formMap = getRequest().getParameterMap();
return setParamsToMap(key, formMap);
}
}
return null;
}
@SuppressWarnings("unchecked")
public static String setParamsToMap(String key, Map<String, String[]> formMap){
List<Map<String, Object>> propertys = (List<Map<String, Object>>) Constants.REQUEST_MAPPING.get(key).get("list");
String allUse = Constants.REQUEST_MAPPING.get(key).get("allUse").toString();
if("1".equals(allUse)){//需要登录才能访问
if(!formMap.containsKey("userToken")){//usertoken键不存在
return "缺失重要参数";
}else{
String [] value = (String[]) formMap.get("userToken");
StringBuffer stb = new StringBuffer();
for(int i = 0; i < value.length; i++){
stb.append(value[i]);
}
map.put("userToken", stb.toString());
}
}
map.put("urlUseJurisdiction", allUse);//URL访问权限参数
for(Map<String, Object> item : propertys){
if(!formMap.containsKey(item.get("id"))){//键不存在
return "缺失参数";
}else{
String [] ref = item.get("ref").toString().split(",");
String [] value = (String[]) formMap.get(item.get("id").toString());
StringBuffer stb = new StringBuffer();
for(int i = 0; i < value.length; i++){
stb.append(value[i]);
}
String resultStr = ToolUtil.containsBoolean(ref, stb.toString());
if(resultStr == null){
map.put(item.get("name").toString(), stb.toString());
} else{
return "参数:" + item.get("id").toString() + resultStr;
}
}
}
return null;
}
@SuppressWarnings("unchecked")
public static String setParamsObjToMap(String key, Map<String, Object> formMap) throws Exception{
List<Map<String, Object>> propertys = (List<Map<String, Object>>) Constants.REQUEST_MAPPING.get(key).get("list");
String allUse = Constants.REQUEST_MAPPING.get(key).get("allUse").toString();
if("1".equals(allUse)){//需要登录才能访问
if(!formMap.containsKey("userToken")){//usertoken键不存在
return "缺失重要参数";
}else{
String [] value = (String[]) formMap.get("userToken");
StringBuffer stb = new StringBuffer();
for(int i = 0; i < value.length; i++){
stb.append(value[i]);
}
map.put("userToken", stb.toString());
}
}
map.put("urlUseJurisdiction", allUse);//URL访问权限参数
for(Map<String, Object> item : propertys){
if(!formMap.containsKey(item.get("id"))){//键不存在
return "缺失参数";
}else{
String [] ref = item.get("ref").toString().split(",");
String value = java.net.URLDecoder.decode(formMap.get(item.get("id").toString()).toString(), "UTF-8").toString();
String resultStr = ToolUtil.containsBoolean(ref, value);
if(resultStr == null){
map.put(item.get("name").toString(), value);
} else{
return "参数:" + item.get("id").toString() + resultStr;
}
}
}
return null;
}
public static void setParams(Map<String, Object> map){
setMap(map);
}
public Map<String, Object> getParams() {
return map;
}
/**
* 获取登录信息
* @return
* @throws Exception
*/
public Map<String, Object> getLogParams() throws Exception {
return USER_MATION;
}
/**
* 获取桌面菜单信息
* @return
* @throws Exception
*/
public List<Map<String, Object>> getLogDeskTopMenuParams() throws Exception {
return USER_DESKTOP_MENU_MATION;
}
/**
* 获取所有菜单信息
* @return
* @throws Exception
*/
public List<Map<String, Object>> getLogAllMenuParams() throws Exception {
return USER_ALL_MENU_MATION;
}
public static Map<String, Object> getUSER_MATION() {
return USER_MATION;
}
public static void setUSER_MATION(Map<String, Object> uSER_MATION) {
USER_MATION = uSER_MATION;
}
public static List<Map<String, Object>> getUSER_DESKTOP_MENU_MATION() {
return USER_DESKTOP_MENU_MATION;
}
public static void setUSER_DESKTOP_MENU_MATION(List<Map<String, Object>> uSER_DESKTOP_MENU_MATION) {
USER_DESKTOP_MENU_MATION = uSER_DESKTOP_MENU_MATION;
}
public static List<Map<String, Object>> getUSER_ALL_MENU_MATION() {
return USER_ALL_MENU_MATION;
}
public static void setUSER_ALL_MENU_MATION(List<Map<String, Object>> uSER_ALL_MENU_MATION) {
USER_ALL_MENU_MATION = uSER_ALL_MENU_MATION;
}
public void removeSession() throws Exception {
getRequest().getSession().invalidate();
}
public Set<String> getKeyForRequestMap(){
return keySet;
}
public static Map<String, Object> getMap() {
return map;
}
public static void setMap(Map<String, Object> map) {
InputObject.map = map;
}
public static Set<String> getKeySet() {
return keySet;
}
public static void setKeySet(Set<String> keySet) {
InputObject.keySet = keySet;
}
}
package com.skyeye.common.object;
public class ObjectConstant {
public static final String CONENT_TYPE_WEB_REQ = "application/x-www-form-urlencoded";//网页请求发送的contentType格式
public static final String CONENT_TYPE_JSON_REQ = "application/json";//json数据请求发送的数据格式
public static final int WRONG = -9999;
public static final String WRONG_MESSAGE = "失败";
public static final String REQUIRED = "required";//请求参数非空
public static final String NUM = "num";//请求参数数字校验
public static final String DATE = "date";//请求参数时间校验
public static final String EMAIL = "email";//请求参数邮箱校验
public static final String IDCARD = "idcard";//请求参数证件号校验
public static final String PHONE = "phone";//请求参数手机号校验
public static final String URL = "url";//请求参数url校验
public static final String IP = "ip";//请求参数ip校验
public static final String POSTCODE = "postcode";//请求参数国内邮编校验
public static final String DOUBLE = "double";//请求参数验证小数点后两位,一般用于金钱验证
}
package com.skyeye.common.object;
import java.io.PrintWriter;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
public class OutputObject extends PutObject implements Serializable{
/**
* @Fields serialVersionUID : 标识
*/
private static final long serialVersionUID = 1L;
public static Map<String, Object> object;
public OutputObject(){
object = new HashMap<String, Object>();
setNull();
}
public void settotal(Object total){
OutputObject.object.put("total", total);
}
public void setreturnMessage(Object returnMessage){
OutputObject.object.put("returnMessage", returnMessage);
}
public void setreturnMessage(Object returnMessage, Object returnCode) throws Exception{
OutputObject.object.put("returnMessage", "错误码:" + returnCode + "错误信息:" + returnMessage);
}
public void setreturnCode(Object returnCode){
OutputObject.object.put("returnCode", returnCode);
}
public void setBean(Map<String,Object> bean) throws Exception {
OutputObject.object.put("bean", bean);
}
public void setBeans(List<Map<String,Object>> beans) throws Exception {
OutputObject.object.put("rows", beans);
}
public static void setCode(int code){
OutputObject.object.put("returnCode", code);
}
public static void setMessage(String Message){
OutputObject.object.put("returnMessage", Message);
}
public static int getCode(){
if(OutputObject.object == null){
object = new HashMap<String, Object>();
setNull();
}
return Integer.parseInt(OutputObject.object.get("returnCode").toString());
}
public static String getMessage(){
return OutputObject.object.get("returnMessage").toString();
}
public static void put(){
Object context = JSON.toJSON(object);
PrintWriter out = null;
getResponse().setCharacterEncoding("UTF-8");
getResponse().setContentType("text/html;charset=UTF-8");
try {
out = getResponse().getWriter();// 获取输入流
if(out != null){
out.print(context);// 将信息发送到前台
out.flush();// 刷新
}
} catch (Exception e) {
} finally {
if(out != null){
out.close();// 关闭输入流
}
}
}
public static void setNull(){
object.put("returnCode", "-9999");
object.put("returnMessage", "失败");
object.put("total", 0);
object.put("bean", "");
object.put("rows", "");
}
public Map<String, Object> getObject() {
return object;
}
@SuppressWarnings("static-access")
public void setObject(Map<String, Object> map) {
this.object = map;
}
}
package com.skyeye.common.object;
import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class PutObject implements Serializable{
/**
* @Fields serialVersionUID : 标识
*/
private static final long serialVersionUID = 1L;
private static ThreadLocal<HttpServletRequest> _request = new ThreadLocal<HttpServletRequest>();
private static ThreadLocal<HttpServletResponse> _response = new ThreadLocal<HttpServletResponse>();
public PutObject(){
}
public PutObject(HttpServletRequest request, HttpServletResponse response){
_request.set(request);
_response.set(response);
}
public static HttpServletRequest getRequest() {
HttpServletRequest request = _request.get();
return request;
}
public static HttpServletResponse getResponse() {
HttpServletResponse response = _response.get();
return response;
}
public static void removeRequest() {
_request.remove();
_response.remove();
}
}
package com.skyeye.common.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.lang.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class AreaUtil {
/** 获取地区api */
private static final String URL_JD_AREA = "https://d.jd.com/area/get?fid=%d";
/** 初始化省份数据 */
private static final String[] TABLE_PROVINCE = new String[] { "1", "北京", "2", "上海", "3", "天津", "4", "重庆", "5", "河北",
"6", "山西", "7", "河南", "8", "辽宁", "9", "吉林", "10", "黑龙江", "11", "内蒙古", "12", "江苏", "13", "山东", "14", "安徽",
"15", "浙江", "16", "福建", "17", "湖北", "18", "湖南", "19", "广东", "20", "广西", "21", "江西", "22", "四川", "23", "海南",
"24", "贵州", "25", "云南", "26", "西藏", "27", "陕西", "28", "甘肃", "29", "青海", "30", "宁夏", "31", "新疆", "32", "台湾",
"42", "香港", "43", "澳门", "84", "钓鱼岛" };
/**
* 初始化省份数据
*
* @param conn
*/
public static void initArea() {
try {
Connection conn = getConn("127.0.0.1", "3306", "eve", "root", "123456");
for (int nIndex = 0; nIndex < TABLE_PROVINCE.length; nIndex = nIndex + 2) {
int id = Integer.parseInt(TABLE_PROVINCE[nIndex]);
String name = TABLE_PROVINCE[nIndex + 1];
try {
Statement stat = conn.createStatement();
String sql = "INSERT INTO t_area VALUES ('" + ToolUtil.getSurFaceId() + "'," + id + ", '" + name + "', 0, 0)";
stat.execute(sql);
stat.close();
System.out.println("查询:" + name + "--级别:0");
initChildArea(conn, id, 1);
} catch (SQLException e) {
e.printStackTrace();
}
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取各省下级地区
*
* @param conn 数据库连接对象
* @param parentId 所属地区ID
* @param level 地区层级,省级:0,市级:1,...
*/
public static void initChildArea(Connection conn, int parentId, int level) {
String url = String.format(URL_JD_AREA, parentId);
String text = HttpClient.doGet(url);
if (!StringUtils.isEmpty(text)) {
JSONArray array = JSON.parseArray(text);
if (array != null && array.size() > 0) {
for (int nIndex = 0; nIndex < array.size(); nIndex++) {
JSONObject object = array.getJSONObject(nIndex);
int id = object.getInteger("id");
String name = object.getString("name");
try {
Statement stat = conn.createStatement();
String sql = "INSERT INTO t_area VALUES ('" + ToolUtil.getSurFaceId() + "'," + id + ", '" + name + "'," + parentId + ", " + level + ")";
stat.execute(sql);
stat.close();
System.out.println("查询:" + name + "--级别:" + level);
initChildArea(conn, id, level + 1);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
/**
* 链接数据库
*
* @param dbHost 数据库主机地址
* @param dbPort 数据库端口
* @param dbName 数据库名称
* @param dbUser 数据库用户名称
* @param dbPassword 数据库登录密码
* @return
* @throws Exception
*/
public static Connection getConn(String dbHost, String dbPort, String dbName, String dbUser, String dbPassword) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
String connStr = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName + "?user=" + dbUser + "&password=" + dbPassword + "&characterEncoding=utf8";
Connection conn = DriverManager.getConnection(connStr);
return conn;
}
public static void main(String[] args) {
initArea();
}
}
package com.skyeye.common.util;
/**
* byte操作类.
* @author Administrator
*
*/
public class Bytes {
/**
* 由于String.subString对汉字处理存在问题(把一个汉字视为一个字节),因此在 包含汉字的字符串时存在隐患,现调整如下:
* @param src 要截取的字符串
* @param start_idx 开始坐标(包括该坐标)
* @param end_idx 截止坐标(包括该坐标)
* @return
*/
public static String substring(String src, int start_idx, int end_idx) {
byte[] b = src.getBytes();
String tgt = "";
for (int i = start_idx; i <= end_idx; i++) {
tgt += (char) b[i];
}
return tgt;
}
}
package com.skyeye.common.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
public class ExcelUtil {
/**
* 创建excel文档,
* @param list 数据
* @param keys list中map的key数组集合
* @param columnNames excel的列名
* @throws Exception
* */
@SuppressWarnings("resource")
public static void createWorkBook(String fileName, String sheetName, List<Map<String, Object>> list, String []keys,
String columnNames[], HttpServletResponse response) throws Exception {
// 创建excel工作簿
Workbook wb = new HSSFWorkbook();
// 创建第一个sheet(页),并命名
Sheet sheet = wb.createSheet(sheetName);
// 手动设置列宽。第一个参数表示要为第几列设;,第二个参数表示列的宽度,n为列高的像素数。
for(int i=0;i<keys.length;i++){
sheet.setColumnWidth((short) i, (short) (35.7 * 150));
}
// 创建第一行
Row row = sheet.createRow((short) 0);
// 创建两种单元格格式
CellStyle cs = wb.createCellStyle();
CellStyle cs2 = wb.createCellStyle();
// 创建两种字体
Font f = wb.createFont();
Font f2 = wb.createFont();
// 创建第一种字体样式(用于列名)
f.setFontHeightInPoints((short) 10);
f.setColor(IndexedColors.BLACK.getIndex());
f.setBoldweight(Font.BOLDWEIGHT_BOLD);
// 创建第二种字体样式(用于值)
f2.setFontHeightInPoints((short) 10);
f2.setColor(IndexedColors.BLACK.getIndex());
// 设置第一种单元格的样式(用于列名)
cs.setFont(f);
cs.setBorderLeft(CellStyle.BORDER_THIN);
cs.setBorderRight(CellStyle.BORDER_THIN);
cs.setBorderTop(CellStyle.BORDER_THIN);
cs.setBorderBottom(CellStyle.BORDER_THIN);
cs.setAlignment(CellStyle.ALIGN_CENTER);
// 设置第二种单元格的样式(用于值)
cs2.setFont(f2);
cs2.setBorderLeft(CellStyle.BORDER_THIN);
cs2.setBorderRight(CellStyle.BORDER_THIN);
cs2.setBorderTop(CellStyle.BORDER_THIN);
cs2.setBorderBottom(CellStyle.BORDER_THIN);
cs2.setAlignment(CellStyle.ALIGN_CENTER);
//设置列名
for(int i=0;i<columnNames.length;i++){
Cell cell = row.createCell(i);
cell.setCellValue(columnNames[i]);
cell.setCellStyle(cs);
}
//设置每行每列的值
for (short i = 0; i < list.size(); i++) {
// Row 行,Cell 方格 , Row 和 Cell 都是从0开始计数的
// 创建一行,在页sheet上
Row row1 = sheet.createRow((short) (i + 1));
// 在row行上创建一个方格
for(short j = 0; j < keys.length; j++){
Cell cell = row1.createCell(j);
cell.setCellValue(list.get(i).get(keys[j]) == null?" ": list.get(i).get(keys[j]).toString());
cell.setCellStyle(cs2);
}
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));
ServletOutputStream out = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (final IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
}
package com.skyeye.common.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class HttpClient {
public static String doGet(String httpurl) {
HttpURLConnection connection = null;
InputStream is = null;
BufferedReader br = null;
String result = null;// 返回结果字符串
try {
// 创建远程url连接对象
URL url = new URL(httpurl);
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
connection = (HttpURLConnection) url.openConnection();
// 设置连接方式:get
connection.setRequestMethod("GET");
// 设置连接主机服务器的超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取远程返回的数据时间:60000毫秒
connection.setReadTimeout(60000);
// 发送请求
connection.connect();
// 通过connection连接,获取输入流
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
// 封装输入流is,并指定字符集
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
// 存放数据
StringBuffer sbf = new StringBuffer();
String temp = null;
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
connection.disconnect();// 关闭远程连接
}
return result;
}
public static String doPost(String httpUrl, String param) {
HttpURLConnection connection = null;
InputStream is = null;
OutputStream os = null;
BufferedReader br = null;
String result = null;
try {
URL url = new URL(httpUrl);
// 通过远程url连接对象打开连接
connection = (HttpURLConnection) url.openConnection();
// 设置连接请求方式
connection.setRequestMethod("POST");
// 设置连接主机服务器超时时间:15000毫秒
connection.setConnectTimeout(15000);
// 设置读取主机服务器返回数据超时时间:60000毫秒
connection.setReadTimeout(60000);
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
connection.setDoOutput(true);
// 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
connection.setDoInput(true);
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
// 通过连接对象获取一个输出流
os = connection.getOutputStream();
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
os.write(param.getBytes());
// 通过连接对象获取一个输入流,向远程读取
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer sbf = new StringBuffer();
String temp = null;
// 循环遍历一行一行读取数据
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != os) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 断开与远程地址url的连接
connection.disconnect();
}
return result;
}
}
package com.skyeye.common.util;
public class IPEntry {
public String beginIp;
public String endIp;
public String country;
public String area;
public IPEntry() {
beginIp = endIp = country = area = "";
}
public String toString() {
return this.area + " " + this.country + "IP范围:" + this.beginIp + "-" + this.endIp;
}
}
package com.skyeye.common.util;
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.net.NetworkInterface;
/**
* 名称:IdWorker.java
* 描述:分布式自增长ID
*
* Twitter的 Snowflake JAVA实现方案
*
* 核心代码为其IdWorker这个类实现,其原理结构如下,我分别用一个0表示一位,用—分割开部分的作用: 1||0---0000000000
* 0000000000 0000000000 0000000000 0 --- 00000 ---00000 ---000000000000
* 在上面的字符串中,第一位为未使用(实际上也可作为long的符号位),接下来的41位为毫秒级时间,
* 然后5位datacenter标识位,5位机器ID(并不算标识符,实际是为线程标识),
* 然后12位该毫秒内的当前毫秒内的计数,加起来刚好64位,为一个Long型。
* 这样的好处是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由datacenter和机器ID作区分),
* 并且效率较高,经测试,snowflake每秒能够产生26万ID左右,完全满足需要。
* 64位ID (42(毫秒)+5(机器ID)+5(业务编码)+12(重复累加))
*/
public class IdWorker {
// 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动)
private final static long twepoch = 1288834974657L;
// 机器标识位数
private final static long workerIdBits = 5L;
// 数据中心标识位数
private final static long datacenterIdBits = 5L;
// 机器ID最大值
private final static long maxWorkerId = -1L ^ (-1L << workerIdBits);
// 数据中心ID最大值
private final static long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
// 毫秒内自增位
private final static long sequenceBits = 12L;
// 机器ID偏左移12位
private final static long workerIdShift = sequenceBits;
// 数据中心ID左移17位
private final static long datacenterIdShift = sequenceBits + workerIdBits;
// 时间毫秒左移22位
private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
private final static long sequenceMask = -1L ^ (-1L << sequenceBits);
/* 上次生产id时间戳 */
private static long lastTimestamp = -1L;
// 0,并发控制
private long sequence = 0L;
private final long workerId;
// 数据标识id部分
private final long datacenterId;
public IdWorker() {
this.datacenterId = getDatacenterId(maxDatacenterId);
this.workerId = getMaxWorkerId(datacenterId, maxWorkerId);
}
/**
* @param workerId
* 工作机器ID
* @param datacenterId
* 序列号
*/
public IdWorker(long workerId, long datacenterId) {
if (workerId > maxWorkerId || workerId < 0) {
throw new IllegalArgumentException(
String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
}
if (datacenterId > maxDatacenterId || datacenterId < 0) {
throw new IllegalArgumentException(
String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
}
this.workerId = workerId;
this.datacenterId = datacenterId;
}
/**
* 获取下一个ID
*
* @return
*/
public synchronized long nextId() {
long timestamp = timeGen();
if (timestamp < lastTimestamp) {
throw new RuntimeException(String.format(
"Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
}
if (lastTimestamp == timestamp) {
// 当前毫秒内,则+1
sequence = (sequence + 1) & sequenceMask;
if (sequence == 0) {
// 当前毫秒内计数满了,则等待下一秒
timestamp = tilNextMillis(lastTimestamp);
}
} else {
sequence = 0L;
}
lastTimestamp = timestamp;
// ID偏移组合生成最终的ID,并返回ID
long nextId = ((timestamp - twepoch) << timestampLeftShift) | (datacenterId << datacenterIdShift)
| (workerId << workerIdShift) | sequence;
return nextId;
}
private long tilNextMillis(final long lastTimestamp) {
long timestamp = this.timeGen();
while (timestamp <= lastTimestamp) {
timestamp = this.timeGen();
}
return timestamp;
}
private long timeGen() {
return System.currentTimeMillis();
}
/**
* 获取 maxWorkerId
*/
protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) {
StringBuffer mpid = new StringBuffer();
mpid.append(datacenterId);
String name = ManagementFactory.getRuntimeMXBean().getName();
if (!name.isEmpty()) {
/*
* GET jvmPid
*/
mpid.append(name.split("@")[0]);
}
/*
* MAC + PID 的 hashcode 获取16个低位
*/
return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1);
}
/**
* 数据标识id部分
*/
protected static long getDatacenterId(long maxDatacenterId) {
long id = 0L;
try {
InetAddress ip = InetAddress.getLocalHost();
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
if (network == null) {
id = 1L;
} else {
byte[] mac = network.getHardwareAddress();
id = ((0x000000FF & (long) mac[mac.length - 1])
| (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6;
id = id % (maxDatacenterId + 1);
}
} catch (Exception e) {
System.out.println(" getDatacenterId: " + e.getMessage());
}
return id;
}
public static void main(String[] args) {
// IdWorker idWorker = new IdWorker(31,31);
// System.out.println("idWorker="+idWorker.nextId());
IdWorker id = new IdWorker(0, 1);
// System.out.println("id="+id.nextId());
// System.out.println(id.datacenterId);
// System.out.println(id.workerId);
for (int i = 0; i < 9000; i++) {
System.err.println(id.nextId());
}
}
}
\ No newline at end of file
package com.skyeye.common.util;
import java.io.File;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFReport {
Document document = new Document();// 建立一个Document对象
private static Font keyfont;// 设置字体大小
private static Font textfont;// 设置字体大小
static {
BaseFont bfChinese;
try {
bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
new Font(bfChinese, 10, Font.BOLD);
keyfont = new Font(bfChinese, 8, Font.BOLD);// 设置字体大小
textfont = new Font(bfChinese, 8, Font.NORMAL);// 设置字体大小
} catch (Exception e) {
e.printStackTrace();
}
}
public PDFReport(File file) {
document.setPageSize(PageSize.A4);// 设置页面大小
try {
PdfWriter.getInstance(document, new FileOutputStream(file));
document.open();
} catch (Exception e) {
e.printStackTrace();
}
}
int maxWidth = 520;
public PdfPCell createCell(String value, com.itextpdf.text.Font font, int align) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setPhrase(new Phrase(value, font));
return cell;
}
public PdfPCell createCell(String value, com.itextpdf.text.Font font) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(Element.ALIGN_CENTER);
cell.setPhrase(new Phrase(value, font));
return cell;
}
public PdfPCell createCell(String value, com.itextpdf.text.Font font, int align, int colspan) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new Phrase(value, font));
return cell;
}
public PdfPCell createCell(String value, com.itextpdf.text.Font font, int align, int colspan, boolean boderFlag) {
PdfPCell cell = new PdfPCell();
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
cell.setHorizontalAlignment(align);
cell.setColspan(colspan);
cell.setPhrase(new Phrase(value, font));
cell.setPadding(3.0f);
if (!boderFlag) {
cell.setBorder(0);
cell.setPaddingTop(15.0f);
cell.setPaddingBottom(8.0f);
}
return cell;
}
public PdfPTable createTable(int colNumber) {
PdfPTable table = new PdfPTable(colNumber);
try {
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
} catch (Exception e) {
e.printStackTrace();
}
return table;
}
public PdfPTable createTable(float[] widths) {
PdfPTable table = new PdfPTable(widths);
try {
table.setTotalWidth(maxWidth);
table.setLockedWidth(true);
table.setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setBorder(1);
} catch (Exception e) {
e.printStackTrace();
}
return table;
}
public PdfPTable createBlankTable() {
PdfPTable table = new PdfPTable(1);
table.getDefaultCell().setBorder(0);
table.addCell(createCell("", keyfont));
table.setSpacingAfter(20.0f);
table.setSpacingBefore(20.0f);
return table;
}
public void generatePDF() throws Exception {
PdfPTable table = createTable(4);
table.addCell(createCell("学生信息列表:", keyfont, Element.ALIGN_LEFT, 4, false));
table.addCell(createCell("姓名", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("年龄", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("性别", keyfont, Element.ALIGN_CENTER));
table.addCell(createCell("住址", keyfont, Element.ALIGN_CENTER));
for (int i = 0; i < 5; i++) {
table.addCell(createCell("姓名" + i, textfont));
table.addCell(createCell(i + 15 + "", textfont));
table.addCell(createCell((i % 2 == 0) ? "男" : "女", textfont));
table.addCell(createCell("地址" + i, textfont));
}
document.add(table);
document.close();
}
public static void main(String[] args) throws Exception {
File file = new File("D:\\text.pdf");
file.createNewFile();
new PDFReport(file).generatePDF();
}
}
package com.skyeye.common.util;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Properties;
/**
*
* @ClassName: PropertiesUtil
* @Description: 读写配置文件
* @author 卫志强
* @date 2018年10月08日
*
*/
public class PropertiesUtil {
public static Properties prop = new Properties();
/**
* 取出值
*
* @param k key键
* @param filepath properties文件路径
* @return
*/
public static String getValue(String k, String filepath) {
InputStream in;
try {
in = new BufferedInputStream(new FileInputStream(filepath));
prop.load(in); /// 加载属性列表
Iterator<String> it = prop.stringPropertyNames().iterator();
while (it.hasNext()) {
String key = it.next();
if (key.equals(k)) {
return prop.getProperty(key);
}
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 获取文件中的key-value的size
*
* @param filepath properties文件路径
* @return
*/
public static int getPropertiesSize(String filepath) {
InputStream in;
int size = 0;
try {
in = new BufferedInputStream(new FileInputStream(filepath));
prop.load(in); /// 加载属性列表
Iterator<String> it = prop.stringPropertyNames().iterator();
while (it.hasNext()) {
size++;
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return size;
}
/**
* 设置键值
* @param filepath properties文件路径
* @param key key键
* @param value value值
*/
public static void writeProperties(String filepath, String key, String value){
///保存属性到properties文件
FileOutputStream oFile ;
try {
oFile = new FileOutputStream(filepath, true);//true表示追加打开
prop.setProperty(key, value);
prop.store(oFile, "Update IPproperties value");
oFile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.skyeye.common.util;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* spring工具类 方便在非spring管理环境中获取bean
*
* @author 卫志强
*/
@Component
public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware {
/** Spring应用上下文环境 */
private static ConfigurableListableBeanFactory beanFactory;
private static ApplicationContext applicationContext = null;
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
SpringUtils.beanFactory = beanFactory;
}
/**
* 获取对象
*
* @param name
* @return Object 一个以所给名字注册的bean的实例
* @throws org.springframework.beans.BeansException
*
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
return (T) beanFactory.getBean(name);
}
/**
* 获取类型为requiredType的对象
*
* @param clz
* @return
* @throws org.springframework.beans.BeansException
*
*/
public static <T> T getBean(Class<T> clz) throws BeansException {
T result = (T) beanFactory.getBean(clz);
return result;
}
/**
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
*
* @param name
* @return boolean
*/
public static boolean containsBean(String name) {
return beanFactory.containsBean(name);
}
/**
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。
* 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
*
* @param name
* @return boolean
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
return beanFactory.isSingleton(name);
}
/**
* @param name
* @return Class 注册对象的类型
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
return beanFactory.getType(name);
}
/**
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
*
* @param name
* @return
* @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
*
*/
public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
return beanFactory.getAliases(name);
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (SpringUtils.applicationContext == null) {
SpringUtils.applicationContext = applicationContext;
}
}
// 获取applicationContext
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
...@@ -22,6 +22,14 @@ ...@@ -22,6 +22,14 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>ky.com.skyeye</groupId>
<artifactId>skyeye-common</artifactId>
<version>0.0.2-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/lib/skyeye-common-0.0.2-SNAPSHOT.jar</systemPath>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -15,13 +15,6 @@ ...@@ -15,13 +15,6 @@
<dependencies> <dependencies>
<!-- 引入公共的依赖 -->
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>skyeye-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 引入实体类的依赖 --> <!-- 引入实体类的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
......
...@@ -15,17 +15,17 @@ ...@@ -15,17 +15,17 @@
<dependencies> <dependencies>
<!-- 引入工作流模块的依赖 --> <!-- 引入实体类的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
<artifactId>skyeye-common</artifactId> <artifactId>skyeye-entity</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<!-- 引入实体类的依赖 --> <!-- 引入dao的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
<artifactId>skyeye-entity</artifactId> <artifactId>skyeye-dao</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
......
...@@ -15,13 +15,6 @@ ...@@ -15,13 +15,6 @@
<dependencies> <dependencies>
<!-- 引入公共的依赖 -->
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>skyeye-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 引入service的依赖 --> <!-- 引入service的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
...@@ -29,13 +22,6 @@ ...@@ -29,13 +22,6 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<!-- 引入dao的依赖 -->
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>skyeye-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!-- 引入任务的依赖 --> <!-- 引入任务的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
......
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
<dependencies> <dependencies>
<!-- 引入公共的依赖 --> <!-- 引入dao的依赖 -->
<dependency> <dependency>
<groupId>com.skyeye</groupId> <groupId>com.skyeye</groupId>
<artifactId>skyeye-common</artifactId> <artifactId>skyeye-dao</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
server.port=8081 server.port=8081
#图片路径 #图片路径
IMAGES_PATH=D:/skyeye/images/ IMAGES_PATH=D:/kaiyuanpro/skyeye/images/
#请求路径url---- #请求路径url----
#系统各部分说明===项目规划===工作流=== #系统各部分说明===项目规划===工作流===
...@@ -22,11 +22,11 @@ mapping/reqsys.xml ...@@ -22,11 +22,11 @@ mapping/reqsys.xml
jdbc.database.driverClassName=com.mysql.jdbc.Driver jdbc.database.driverClassName=com.mysql.jdbc.Driver
#数据库名称 #数据库名称
jdbc.database.name=eve jdbc.database.name=ky_eve
#数据库账号 #数据库账号
jdbc.database.username=root jdbc.database.username=root
#数据库密码 #数据库密码
jdbc.database.password=admin jdbc.database.password=123456
jdbc.maxActive=10 jdbc.maxActive=10
jdbc.initialSize=1 jdbc.initialSize=1
jdbc.minIdle=5 jdbc.minIdle=5
...@@ -39,30 +39,30 @@ spring.resources.static-locations=classpath:/template/ ...@@ -39,30 +39,30 @@ spring.resources.static-locations=classpath:/template/
#activiti工作流配置 #activiti工作流配置
#数据库名称 #数据库名称
activiti.database.name=activitidb activiti.database.name=ky_activitidb
#数据库账号 #数据库账号
activiti.database.username=root activiti.database.username=root
#数据库密码 #数据库密码
activiti.database.password=admin activiti.database.password=123456
#redis 1连接信息 #redis 1连接信息
redis.ip1=134.175.113.149 redis.ip1=192.168.1.140
redis.host1=7001 redis.host1=9000
#redis 2连接信息 #redis 2连接信息
redis.ip2=134.175.113.149 redis.ip2=192.168.1.140
redis.host2=7002 redis.host2=9001
#redis 3连接信息 #redis 3连接信息
redis.ip3=134.175.113.149 redis.ip3=192.168.1.140
redis.host3=7003 redis.host3=9002
#redis 4连接信息 #redis 4连接信息
redis.ip4=134.175.113.149 redis.ip4=192.168.1.140
redis.host4=7004 redis.host4=9003
#redis 5连接信息 #redis 5连接信息
redis.ip5=134.175.113.149 redis.ip5=192.168.1.140
redis.host5=7005 redis.host5=9004
#redis 6连接信息 #redis 6连接信息
redis.ip6=134.175.113.149 redis.ip6=192.168.1.140
redis.host6=7006 redis.host6=9005
redis.commandTimeout=1000 redis.commandTimeout=1000
......
...@@ -60,9 +60,9 @@ log4j.appender.database.BufferSize=1 ...@@ -60,9 +60,9 @@ log4j.appender.database.BufferSize=1
# 数据库连接池 # 数据库连接池
# 设置要将日志插入到数据库的驱动 # 设置要将日志插入到数据库的驱动
log4j.appender.database.Threshold=info log4j.appender.database.Threshold=info
log4j.appender.database.URL=jdbc:mysql://localhost:3306/eve?characterEncoding=utf-8 log4j.appender.database.URL=jdbc:mysql://localhost:3306/ky_eve?characterEncoding=utf-8
#log4j.appender.database.user=root log4j.appender.database.user=root
#log4j.appender.database.password=123456 log4j.appender.database.password=123456
# 看名字也该明白这里是定义Sql语句的啦 # 看名字也该明白这里是定义Sql语句的啦
log4j.appender.database.sql=insert into sys_work_log (id, class, mothod, create_time, log_level, log_line, message, user_name, file_name, real_path, req_ip) values (REPLACE(UUID(), '-', ''), '%C', '%M', '%d{yyyy-MM-dd HH:mm:ss}', '%p', '%l', '%m', '%X{userName}', '%F', '%X{realPath}', '%X{ip}') log4j.appender.database.sql=insert into sys_work_log (id, class, mothod, create_time, log_level, log_line, message, user_name, file_name, real_path, req_ip) values (REPLACE(UUID(), '-', ''), '%C', '%M', '%d{yyyy-MM-dd HH:mm:ss}', '%p', '%l', '%m', '%X{userName}', '%F', '%X{realPath}', '%X{ip}')
log4j.appender.database.layout=org.apache.log4j.PatternLayout log4j.appender.database.layout=org.apache.log4j.PatternLayout
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册