- 博客(98)
- 资源 (1)
- 收藏
- 关注
原创 直接返回web-inf中的error页面
spring mvc中重定向时,不能定位到web-inf中的页面,如何指定到那呢,尤其是错误页面,比如401,只要使用response.sendError(401)即可
2018-03-29 18:00:34 558
原创 前台select框option数量大导致无法加载的解决方法(案例是在分页中出现的)
var totalPage = Math.ceil(totalCount / limit); // 一共有多少页,totalCount 为总条目数var currentPage = start / limit + 1;//start为起始条目(非起始页),limit为一页展示多少条目var beginPageIndex;var endPageIndex;//总页数不足100,则全部显示 if(t...
2018-03-27 14:00:21 2017
原创 对于ajax请求,后端不能直接返回页面的处理方式
对于前后端分离的情况下,ajax请求在过滤器和拦截器中,都不能直接返回页面,那么应该怎么处理呢?response.setContentType("application/json; charset=utf-8");PrintWriter writer = null;try {writer = response.getWriter();ObjectMapper mapper = new Object...
2018-03-16 13:31:13 4738
原创 spring security实现摘要认证
用户的权限会通过spring拦截器去做,spring security只通过它的过滤器去实现摘要认证。web.xml中配置过滤器:springSecurityFilterChainorg.springframework.web.filter.DelegatingFilterProxyspringSecurityFilterChain/rest/*spri
2018-03-16 11:15:29 2025
原创 include
引入JSP有两种方式<%@ include file=“xxx.jsp” %>和jsp:include page=“xxx.jsp” />,前者称为include指令,后者称为include动作,两者的区别是: include指令在JSP页面转换成Servlet之前,将JSP代码插入其中。所以只有一个Servlet。 include动作是在主页面被请求时,将次级
2018-03-08 15:11:59 313
原创 Spring事务
为什么用了OpenSessionInViewFilter就不会报No Session found for current thread,因为过滤器中调用了SessionFactory实现类(应该是SessionFactoryImpl)的openSession(),事务由OpenSessionInViewFilter管理 SessionFactory的getCurrentSession并不能保证
2018-03-08 15:09:33 178
原创 普通工程引入Spring boot jar包
这个spring boot 工程打包时不能使用自带的spring-boot-maven-plugin,而是要用maven 的打包插件<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <...
2018-03-06 14:54:17 500
原创 Spring Bean的初始化
spring bean的初始化以及属性注入是在创建该对象时就set的,该对象先执行构造方法,然后在再执行set方法。在set时会如果成员变量对象已经有了,则直接set,否则去创建对应的成员变量对象,如果该成员变量没有被spring容器扫描,那么就会报错。所有的被扫描的类型都会先放入内存,否则每次都要遍历很麻烦...
2018-02-26 15:51:34 387
原创 hibernate的二级缓存
这里讨论二级缓存@Cacheable是用在实体类上的,且是在JPA中体现的。如果只是用spring+hibernate的情况,要用诸如@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)在实体类上当实体类上有@Cache时,就说明这个类是使用二级缓存的,不需要在hibernate中开启 hibernate.cache.use_second
2018-01-23 11:29:24 307
原创 检测数据库表被人为在数据库端修改的一种检测方式
数据库表中添加一个xxx字段,该字段的值通过其他列的值整合并进行某种算法(java代码)。也就是说只有通过代码插入和修改才能产生或修改这个xxx字段的值。如果手动在数据库端直接修改或插入,那么是不知道这个值的含义的。代码端在查询时就可以根据xxx字段的值和其它字段整合计算后的值进行比较,来判断数据库表是非被篡改
2018-01-21 15:25:39 1222
原创 通过Git命令从GitLab将某分支拷贝到Gerrit
Gerrit上工程一定要先建立好,那么会在gerrit用户下的某个文件夹(如/home/gerrit/gerrit_site/git)生成xxx.git文件,我们不需要它,只是为了在gerrit网站上能显示。删除xxx.git后,用gerrit用户去Gitlab拷贝项目,之前使用的是裸克隆,导致Git的很多命令不能使用(Git命令参考http://www.yiibai.com/git/git_ha
2018-01-19 09:56:00 4150
原创 使用Spring时,在service类中直接获取request的方法
((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest()
2018-01-11 17:30:07 9952
原创 centos7rpm安装mysql5.6
rpm -qa | grep -i mariadb 检查自带的mysqlrpm -e --nodeps mariadb-libs.. 删除自带mysqlrpm -qa | grep -i mysqlrpm
2017-12-18 12:01:36 533
原创 集合中除去指定元素
三种方式:1、新建一个集合,对旧集合中满足条件的元素拎出来放到新集合,这就可以了2、使用for (int i = 0; i if (xxx.get(i).getXxx() == 条件) {xxx.remove(i);i--;}}3、迭代器Iterator iterator = xxx.iterator();while (iterator.hasNex
2017-11-30 18:31:24 3391
原创 hibernate做数据同步时的问题
当我们有做数据同步需求时,如果表中除了主键不能重复,还有其他字段比如名称不能重复,那么在做同步时可能会出现以下情况:A平台上数据已经删除,此时B平台的数据库还未同步,这时A平台新增了一个名称与原来一样的资源。这时B平台开始做数据同步,不巧的是,删除操作在添加操作之后,那么会出现无法保存名字相同的数据。那么该怎么办?解决方法就是先做删除,后做保存。但由于是批量操作,即使用一个commit,还
2017-11-29 19:50:25 813
原创 关于@JsonFormat的使用
例如在实体类属性上加@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'"),那么用ObectMapper解析字符串(用对象,不是用get(“key”)的方式)时,会自动加8.但是如果知道实体类对象,也加了@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'"),那么在前台(ajax形式)显示不会出现long数
2017-11-27 18:13:53 45802
转载 变量加载顺序
public class T implements Cloneable {public static int k = 0;public static T t1 = new T("t1");public static T t2 = new T("t2");public static int i = print("i");public static int n = 99;
2017-11-16 16:53:22 220
原创 泛型方法的使用
如果想要泛型方法识别T,那么参数中可以传Class<T> clazz.例子// 适用于解析体最外层是list,里面只有对象。如[{},{}]public static <T> List<T> analysisListJson(String respBody, Class<T> clazz) throws Exception {return MAPPE...
2017-11-16 15:34:18 1551
原创 MAPPER解析
普通json的解析,类上写@JsonIgnoreProperties(ignoreUnknown = true)XXX xxx= MAPPER.readValue(respBody,XXX.class);集合字符串的json解析,其中respBody是类似于[{},{}]的字符串,CasVmDetail是其中的一个{}List xxxs = MAPPER.readValue(r
2017-10-30 18:15:00 903
转载 nginx做SSL并配合tomcat实现HTTPS访问
1、确认已安装openssl服务,使用 rpm -qa | grep -i openssl 来检查是否安装,如果没有安装以及其相关如openssl-devel,那么就去http://rpm.pbone.net/搜索并下载,通过rpm -ivh xxx.rpm安装,当然如果能yum安装最好,yum安装就是在线安装,rpm理解为离线安装。2、安装nginx,nginx可以用源码安装,记得./con
2017-10-27 18:54:50 900
原创 不能yum安装的的情况下安装nginx
如果要源码安装nginx,那么需要先yum安装某些服务,即:yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel我们可以通过 rpm -qa | grep -i gcc 来检查是否安装gcc服务,其它服务也可以这么做。如
2017-10-25 09:31:44 1389
原创 centos7安装jdk8
1、查看是否已经安装JDK:rpm -qa | grep java2、若有则删除:rpm -e --nodeps java-xxx,删除所有相关的java3、将gz文件放到指定目录如/opt/java,解压:tar -zxvf jdk-8u111-linux-x64.gz4、设置全局变量:vi /etc/profile,追加export JAVA_HOME=/opt/java/
2017-10-25 09:18:17 1177
原创 activiti实战七(通过监听器发邮件)
1、使用spring的邮件封装类xxxcom25true25000xxx xxx 2、在中添加属性class="xxx.activitimgmt.activitideploy.listeners.MyEventListener">3、创建监听器,实现ActivitiEve
2017-10-24 14:39:00 5946
转载 Centos7开机启动自己的脚本的方法
转载于http://www.jb51.net/article/107238.htm在百度上可以找到好几种Linux开机启动各种服务的方法,在这里我写的是自己喜欢的方式.博主是一个不怎么记事的人,有些配置在系统的目录下,配置了一次后就忘了,再也不想去系统的目录下找各种奇奇怪怪的目录和名字.就比如说这个开机启动,在配置完了后的某一天,想要在加一个启动的服务,然而那时已经忘了以前
2017-10-23 19:45:40 928
原创 objectmapper的转化问题
如果实体中变量是String,那么对于解析体中的数字是能够转化的如果实体中变量是Integer,那么对于解析体中整型字符转,那也是能转化的,对于其他非整型字符串,那么回报异常。如果是小数(非字符串),那么他也能转化,就是去掉小数点后面的数,没有四舍五入如果实体中变量是Double,那么只要解析体中字符串不是字母等其它字符,那都是能解析的
2017-10-17 09:31:26 2417
转载 jquery的jsonp
本帖转载于http://blog.csdn.net/zx13525079024/article/details/19474733关于JSONP的概念和为什么要使用JSONP网上已经有很多教程,这一节主要演示下在JQUERY中的ajax方法怎样通过JSONP进行远程调用 首先介绍下$.ajax的参数 type
2017-10-16 18:04:59 271
原创 hibernate 映射tinyint问题
如果数据库表中一个字段使用tinyint类型,那么它在逆向工程生成hibernate实体时会变成Boolean类型。那么前台传false或传0都会被实体转化为false,前台传true或1都会被实体转化为true,你可能会问,为什么0会转为成false,因为springmvc有一个转化器。它完成了转化的工作。如果你传2或其他,那就是数据绑定错误了。当保存时,数据库会保存0或1,不会保存false或
2017-10-16 16:16:08 1866
转载 Thread的run()与start()的区别
from:http://289972458.iteye.com/blog/13251891.start()方法来启动线程,真正实现了多线程运行。这时无需等待run方法体代码执行完毕,可以直接继续执行下面的代码;通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run(
2017-10-16 14:00:58 154
原创 activiti实战六(待办流程)
查询我的待办流程:@Overridepublic AjaxJson getTodoProcessInfo(String typeCode){//typeCode是请假类型String loginName = SessionUser.getUser().getLoginname();String userId = SessionUser.getUser().getUserid();
2017-10-12 17:06:39 8748
原创 activiti实战二(请假bpmn)
这个请假流程比较简单,主要是云租户申请时,通过排他网关,箭头线的配置为${roleName=="云租户"},就会到云管理员审批任务,该task的执行用候选组来做,候选组为固定的云管理员(只要角色是云管理员都能处理),在该task任务后,有一个排他网关,后面的箭头线配置是${status==0}就是驳回,${status==1}就是同意到下一个任务,超级管理员审批任务。当云管理员申请时,通过排他网关
2017-10-12 13:37:18 2712
原创 activiti实战五(我的流程)
创建一张请假信息的表(业务表)leave_item:字段有id、begin_date、create_date、end_date、leave_case、leave_hour、proc_instence_id、status、creater、type_code(请假类型)新建我的流程@Overridepublic void saveMyProcess(LeaveItem leaveIte
2017-10-12 13:30:09 2527
原创 activiti实战四(流程定义)
查询流程定义public AjaxJson getProcessDefinitionInfo(String name, Integer start, Integer limit){AjaxJson ajaxJson = new AjaxJson();List list = repositoryService.createProcessDefinitionQuery().latestVe
2017-10-12 11:55:23 868
原创 activiti实战一(spring配置)
spring配置文件中: Activit默认提供了4中历史级别: none: 不保存任何历史记录,可以提高系统性能; activity:保存所有的流程实例、任务、活动信息; audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性; full: 最完整的历史记录,除了包含a
2017-10-12 11:48:56 439
原创 activiti实战三(流程部署)
流程文件部署:@ResponseBodypublic AjaxJson deployProcess(@RequestParam("deployFileUpload") MultipartFile uploadFile,HttpServletRequest request, HttpServletResponse response, String deployName)throws
2017-10-12 11:41:53 571
原创 springmvc时间转化器
当我们在前台使用时间控件传一个类似yyyy-MM-dd HH:mm:ss的字符串时,后台实体使用Date类型是获取不到的,要转。那么如何使用springmvc自动转?首先写一个实现类,实现spring的Converter接口,如:public class StringToDateConverter implements Converter {private String datePat
2017-10-12 11:32:12 286
原创 前后台数据处理
后台传输Map>到前台,前台要用json = rs.data;var result = [];for ( var key in json) {result.push(json[key]);}接。后台传输List时,前台var hostdata = rs.data;for (var i = 0; i }前台可以传输List到后台,后台用objectmapp
2017-09-25 13:26:23 737
原创 activiti5入门(六)容器
容器中包括:1、SubProcess子流程2、 Call Activity调用活动(子流程)3、Pool池和Lane小巷(这两个连用)------------------------------子流程最好配合errorendevent事件和boundaryerror边界事件联合使用。举个代理的例子,买车-->4S店-->厂家-->买到车。这个流程中可以将4S店-->厂家作为
2017-09-20 14:24:08 607
原创 activiti5入门(五)网关
ParallelGateway并行网关(多人必须同时审批)ExclusiveGateway排他网关(多人只能选择一人审批)InclusiveGateway包含网关(集成了并行与排他网关)EventGateway事件网关(只能连接中间捕获事件)----------------------------------并行网关不需要条件,即它这个节点可以分成多路同时进行,如果
2017-09-19 16:05:48 4055
原创 activiti5入门(四)流程图之六大构成元素
1、Events事件2、Tasks任务(任务无法删除,只能结束。执行任务只要taskId即可,不需要当前用户,因为不排除用户离职的情况)3、Gateways网关4、Container容器5、Connection连接6、Artifacts说明-----------------------------------------------------------仅涉及Task
2017-09-14 14:25:47 3530
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人