java
文章平均质量分 53
localhost_rachel
业精于勤 荒于嬉,形成于思 毁于随。
展开
-
总结日常开发注意事项
公司的框架结构为:前后端分离,controller通过dubbo方式调用注册中心的服务以下为我在日常开发中的深刻体验完成service服务后一定要写单元测试完成controller接口后一定要模拟接口请求,查看接口是否请求成功(如采用postman,yapi等工具进行模拟测试)在项目开发期间无论时间怎么紧凑,知识每天花半个小时的时间认真解决在开发的遇到的问题如果无法在规定的时间...原创 2019-05-06 21:25:55 · 437 阅读 · 0 评论 -
配置日志基本概念
日志级别的区别(debug/info/warn/error)Error: 程序出错或者有未正常处理的异常,需要及时处理Warm: 关注日志信息,看看后面是否正常,如数据库连接出错,如果数据库一直连接出错,那么需要处理;如果数据库只是偶尔出现连接错误,那么可以暂时不做处理Info: 打印程序应该出现的正常状态信息,便于追踪定位Debug: 不重要,一般调试某个功能的时候才会关注编写log4...原创 2019-02-28 11:18:04 · 285 阅读 · 0 评论 -
eclipse工作空间中编码乱码问题专题
问题描述: 从一个eclipse工作空间复制java文件到另一个eclipse工作空间中,复制后的java文件出现中文乱码 分析产生问题的原因: 查看两个工作空间java文件的编码方式得到:第一个工作空间的编码方式为GBK,第二个工作空间的编码方式为UTF-8。由此推测由于文件的编码方式不同导致的乱码问题。 解决方案: 1:直接把第二个工作空间中乱码的java文件编码方式改为G...原创 2018-06-22 16:19:32 · 917 阅读 · 0 评论 -
如何组装成Tree接收的数据格式
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-12-21 17:04:00 · 462 阅读 · 0 评论 -
Datagrid 与Treegrid的查询问题
Datagrid 与Treegrid的查询问题: 对于datagrid的form表单查询结合treegrid树形结构的节点查询,应把这两个查询条件和在一起如: function queryTable(){ var p={}; //form表单查询 $.each($("#selectClazzByParams").serializeArray(),function(index原创 2016-10-22 10:15:45 · 1752 阅读 · 0 评论 -
Maven mirrorOf配置
问题描述: 今天在公司准备搭建一个springboot+activiti的框架,通过pom.xml中引入相关依赖,发现activiti相关的依赖始终无法下载。在中央仓库查找发现这个依赖也存在啊,于是就想到可能是.m2/setting.xml中mirror配置出现的原因。本地.m2/setting.xml的配置如下:<mirror><id>public&l...原创 2018-08-10 15:43:32 · 60529 阅读 · 10 评论 -
Dubbo入门
Dubbo是什么分布式服务框架 高性能与透明化的RPC远程服务调用方案 SOA服务治理方案Dubbo架构 Provider:暴露服务的服务提供商 Consumer:调用远程服务的消费方 Registry:服务注册与发现服务中心 Monitor:统计服务调用次数与调用时间的监测中心 调用流程: 0:服务容器启动,加载,运行服务提供者 1:服务提供者启动后,向注册中心...原创 2018-08-03 15:04:07 · 188 阅读 · 0 评论 -
Filter过滤器基础
一:Filter简介 Filter被称为过滤器,web开发人员通过Filter技术,可以对web服务器管理的所有web资源进行拦截如:对JSP、servlet、静态图片、静态HTML等,从而实现一些特殊功能。常见的filter应用有:图片的压缩响应、统一前后端字符编码格式、敏感词汇过滤等。 ServletAPI提供了Filter接口,创建一个类实现Filter接口,则把这个java类称之为过滤...原创 2018-08-14 17:06:47 · 227 阅读 · 0 评论 -
HttpServletRequest
HttpServletResponse是什么?HttpServletResponse代表客服端的请求,客服端通过HTTP协议请求访问服务端,HttpServletResponse封装了所有HTTP请求头信息,通过调用HttpServletResponse对象的不同方法来获取所有客服端请求信息。一:Request常用方法1.1:获取客服机信息 getQueryString():返...原创 2018-07-26 16:29:36 · 160 阅读 · 0 评论 -
HttpServletResponse
一:HttpServletResponse对象介绍HttpServletResponse为server发送给client的响应,这个对象封装了响应状态、响应数据、响应头等信息。 1:向client发送响应数据的相关方法ServletOutputStream getOutputStream() return a ServletOutputStream for writing bin...原创 2018-07-24 15:38:42 · 130 阅读 · 0 评论 -
Servlet使用总结专题
1:Servlet简介Servlet是一种运行于服务器端的java应用程序。通过创建一个java类,然后实现servlet接口就可以生成一个servlet。 ServletAPI包括:javax.servlet.* 主要包括所有servle实现的基本接口以及继承的基本类。java.servlet.http.*包含了编写基于HTTP协议的servlet所需基类。Servlet生命...原创 2018-07-03 11:14:20 · 201 阅读 · 0 评论 -
HTTP协议
1:什么是HTTP协议HTTP是hypertext transfer protocal(超文本传输协议)的简写,是定义在TCP/IP应用层的一种协议。Web客户端向web服务端发送请求并获取响应,在这个过程中就是采用HTTP协议的方式进行数据的传递。HTTP协议的主要特点可以概括如下:支持客服/服务器模式简单快速:客服端向服务端发送请求的时候,只需要传送请求方式+请求路径。由于HTTP...原创 2018-06-29 11:37:43 · 259 阅读 · 0 评论 -
前言
虽然已经做JavaWeb开发有两年的时间,但开发中几乎很少涉及关于底层知识的运用,渐渐的感觉自己对这些底层知识已经越来越模糊。越来越多的新技术出现在我们的开发中,每当我想要去深入了解某个框架结构的时候,却发现自己处在空中楼阁一一般。对现在的我来说,这些底层基础知识的学习与巩固已经迫在眉睫,在接下来的博客中我将会梳理这方面的知识点。在这个过程中我借鉴了孤傲苍狼的博客并结合自己的实际开发进行总结,所以...原创 2018-06-29 11:10:32 · 157 阅读 · 0 评论 -
JSON字符串与 JSON对象
1.区别:JSON字符串就是一个字符串,不能被直接使用;JSON对象可以直接使用JQuery操作的格式,和js中的对象一样。 JSON对象:var str1={“name”:”lx”, “sex”:”woman”} JSON字符串:var str2=’{“name”:”lx”, “sex”:”woman”}’2:JSON字符串转化为JSON对象: Var obj=eval(‘(‘+str+’原创 2017-03-05 15:48:40 · 442 阅读 · 0 评论 -
关于在eclipse中tomcat的相关问题?
在eclipse中开发JavaWeb项目,用tomcat作为web容器设置reloadable=false,发现了一个很奇怪的问题,修改某个方法中的逻辑代码(不是修改方法的返回,入口参数,以及方法名),有的时候需要需要重启tomcat但有的时候又可以不用重启,导致每次修改方法中的逻辑代码后我也不确定是否应该重启。在这篇文章中主要记录在开发中遇到这类问题的不同原因,以及面对项目很大的时候如何进行配置...原创 2018-06-19 13:55:36 · 144 阅读 · 0 评论 -
OOP编程 VS AOP编程
业务描述:实现登录系统执行操作之前和之后输出声明式日志信息的功能采用OOP编程方式实现业务逻辑伪代码 public class OutPutLogging { public void doLogin() { beginLogin(); //模拟用户登录操作 logging("======用户登录======"); ...原创 2019-01-09 16:44:56 · 301 阅读 · 0 评论 -
AOP的相关基础概念
AOP与OOP的关系OOP为面向对象编程,通过封装、继承、多态三大特性,大大提高了代码的可重用性,OOP是一种面向对象的程序设计模式。但如果我们要在多个不具有继承关系的多个类之间的某些方法中引入相同的业务逻辑比如打印日志,这时候OOP就显得无能为力了。即使使用了继承的方式实现了代码的重用,但依然需要把日志代码分散在不同的方法中,这就造成了代码重复度高以及代码的可维护性差。针对这种情况引入了面向切...原创 2019-01-09 11:24:16 · 1425 阅读 · 0 评论 -
JPA实体注解
JPA实体注解用例项目地址https://github.com/lx-sunday/springboot-jpa.git参考博客:http://blog.sina.com.cn/s/blog_49fd52cf0100scql.htmlManyToOne关系的拥有方(即Many的一方)负责关系的维护,在拥有方建立外键会用到JoinColumn。列举使用ManyToOne进行实体注解,如创建...原创 2018-09-29 09:58:16 · 244 阅读 · 0 评论 -
通过AOP编程思想判断token的有效性
问题描述: 每次访问接口的时候都需要验证传递token的有效性,常规的办法就是在每个接口中判断token的有效性,但如果接口个数比较多,那么就会增加开发人员编写代码的工作量。所以考虑是否有一种方法可以省去每次接口中判断token的有效性的代码。其实这个需求与spring管理service层的事物是一样的。解决方案: 采用AOP的编程思想,通过@ControllerAdvice...原创 2018-04-22 22:15:34 · 2884 阅读 · 0 评论 -
SpringBoot静态资源配置
1:SpringBoot静态资源配置,使用 WebMvcAutoConfiguration配置各种属性。 SpringBoot 默认将 /** 所有访问映射到以下路径 classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources2:如果想要自定义静态资源的访问路径,可以定义...原创 2018-03-23 10:21:24 · 1224 阅读 · 0 评论 -
Mybatis parameterType¶meterMap resultType&resultMap
resultMap & resultType 两者都表示处理查询结果集,并映射到java对象中 resultMap: 将查询结果集中的列-映射到bean对象的各个属性 resultType: 返回的结果为基本数据类型或bean中的对象类(此时查询结果集中的属性和bean对象类中的属性一一对应)parameterMap & parameterType 两种都表...原创 2018-03-19 10:38:42 · 300 阅读 · 0 评论 -
通过POI设置Excel级联导出
1:如何通过Excel设置数据级联(包括一级级联、二级级联以及多级级联)我希望填写者能够按照固定的模式填写性别、省、市,而且市这一列填写内容必须随着省这一列发生动态改变。Step1: 在当前excel中新建一个sheet,依次填写对应列的固定模式(此处性别这一列对应的固定模式为男/女,省这一列对应的固定模式为四川省/广西省,四川省对应的市有成都/眉山,广西省对应的市有河池/北海),通过ctr...原创 2018-09-27 13:16:42 · 1580 阅读 · 0 评论 -
jquery打印插件
页面引入: jquery.jqprint-0.3.js(遇到 Cannot read property ‘opera’ of undefined错误问题是juqery版本兼容问题,解决方法:加入迁移辅助插件jquery-migrate-1.0.0.js可解决版本问题) 实现代码:原创 2017-05-25 18:32:22 · 400 阅读 · 0 评论 -
CLODOP打印
备注:本地安装clodop插件后,启动clodop插件后可以看见具体用法 今后日常开发中继续总结clodop遇到的问题 页面引入:LodopFuncs.js 实现代码: var LODOP=getLodop(); LODOP.ADD_PRINT_URL(30,20,746,"95%",url); //这个为访问url进行打印 LODOP.ADD_PRINT_HTM(30,5,"100原创 2017-05-25 18:27:12 · 5243 阅读 · 0 评论 -
事务传播行为
业务场景:在交易单创建service服务中,要求交易单创建失败,会保存创建失败日志,发现始终无法保存创建失败日志。伪代码:@Service("xdtTradeOperatorService")@Transactional(rollbackFor = Exception.class)public class XdtTradeOperatorServiceImpl implements Xd...原创 2019-05-21 16:46:45 · 133 阅读 · 0 评论 -
Lock wait timeout exceeded; try restarting transaction
问题描述 在带有事物的service层中authAssignPkg()方法用于处理多个操作,其中一个操作就是this.dao.batchSave(),batchSave()方法中又重新开启与提交事物。当在Action层中直接调用authAssignPkg()方法,通过控制台打印的信息会发现,authAssignPkg()方法中this.dao.batchSave()执行的时间特别长,最后控制...原创 2018-07-17 10:54:59 · 391 阅读 · 0 评论 -
类的Map属性在使用中应该注意的问题
Hibernate配置文件中配置Map属性: <map name="attr" table="XXXX" cascade="all"><cache usage="read-write" /><key column="id" not-null="true" /> <map-key column="name" type="string" length="200" /><element co原创 2017-05-05 13:51:33 · 621 阅读 · 0 评论 -
Found shared references to a collection
如果采取红色箭头的方法给subsidy的attr属性赋值,则会发生该错误,应该先用一个Map集合接收,然后把接收的Map值赋给subsidy的attr。 分析原因: 报错的大概意思是”发现共享集合引用”,即两个实体引用了同一个集合,这在hibernate中是不允许的原创 2017-05-05 10:50:23 · 2194 阅读 · 0 评论 -
通过hibernate配置文件无法生成表结构
问题描述: 前提已开启通过hibernate.hbm.xml配置文件自动生成表。hibernate的配置文件已经配置好,运行Tomcate后台不会报错,但数据库中无法生成表结构,存在这种情况往往是自己粗心大意造成的,但后台也不提示所以很难发现错误。可能出现的原因: 1:配置文件的后缀名错误,后缀名应该为(.hbm.xml) 2:配置文件中定义的表字段名为sq原创 2017-05-05 10:45:34 · 323 阅读 · 0 评论 -
Hibernate做同一个事物中做两次删除问题
问题描述:绿色箭头的删除操作需要依据红色箭头删除的结果,但在实际运行中绿色箭头所指删除操作无法得到红色箭头的删除结果。 分析原因:红色箭头执行的是hql,执行的结果存放在session事物中,而数据库中的数据只有事物执行完后才会改变;绿色箭头执行的是sql,直接进行数据库操作,而此时数据库中的数据没有发生改变。 解决方法:把绿色箭头的操作改为hql如图:原创 2017-04-28 10:13:28 · 836 阅读 · 0 评论 -
hibernate做查询操作出现更新问题
出现问题:首先这段代码在action层,查询出RsLeave类后修改这个类的type属性(红色箭头所示),后面继续进行RsLeave关联类的查询(绿色箭头所示),程序运行后发现数据库中当前RsLeave中type值已经被修改,因此推出虽然表面进行只是查询,但其实内部也发生了更新操作。 解决办法:1:把修改type属性的操作放到所有查询操作后 2:在事物层的查询方法原创 2017-04-28 10:10:02 · 747 阅读 · 0 评论 -
单点登录二
这篇文章主要是针对单点登录一中的框架结构进行对应的改造与优化,具体的改造优化主要包括以下几点:整合分布式服务框架dubbo改造前:通过HttpClient方式发送http请求到认证中心改造后:通过dubbo微服务方式暴露认证中心接口服务把oa与pro系统的拦截器提取出来子系统中拦截器的实现逻辑基本相同,提取出来根据方便维护管理,同时也减少了代码的冗余。提取代码中常量的配置,...原创 2018-11-20 16:46:02 · 119 阅读 · 0 评论 -
单点登录一
单点登录是什么 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,即用户只需要记住一组用户名和密码就可以登录所有有权限的系统。如下为一个单点登录的简易图解: 当用户第一次访问应用系统1时,需要进行用户登录,认证中心通过了用户的登录信息后会返回用户凭证ticke...原创 2018-10-23 16:55:44 · 234 阅读 · 0 评论 -
redis.clients.jedis.exceptions.JedisDataException: ERR hash value is not an integer
业务场景https://blog.csdn.net/qq_31071543/article/details/84752778推测抛出异常的原因第一次访问接口时通过void setEntryInHash(String key,String field,String vlaue)方法在redis中存放用户访问当前接口的次数为1,此时不会抛出异常,通过redis命令查看存放的数据为field为:...原创 2018-12-21 10:44:29 · 3579 阅读 · 0 评论 -
redis-限制用户每天访问不同接口的次数
业务需求限制每个用户每天访问不同接口的次数,如:每个承运商每天只能根据运单号查询客户信息50次,每个承运商每天只能根据运单号查询商品信息30次。方案选择Redis是一个key-value存储系统,存放的value类型相对较多包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型),同时redis具有时效性,所以...原创 2018-12-03 11:04:58 · 2916 阅读 · 0 评论 -
BeanUtils.copyProperties方法复制不同对象间的属性值
1:以下两个不同的包都存在BeanUitls.copyProperties方法org.springframework.beans.BeanUtils.copyProperties(Object source, Object target) throws BeansExceptionorg.apache.commons.beanutils.BeanUtils.copyProperties(Obj...原创 2019-02-12 14:34:40 · 15494 阅读 · 0 评论 -
Xms Xmx PermSize MaxPermSize的区别
1.参数的含义vmargs -Xms 128M -Xmx 512M -XX:PermSize=64M -XX:MaxPermSize=128M-vmargs 代表后面是设置jvm的参数-Xms 128M JVM设置最小分配的堆内存-Xmx 512M JVM允许最大分配的堆内存,按需分配-XX:PermSize=64M JVM设置分配最小的非堆内存-XX:MaxPermSize=...原创 2019-02-12 10:25:28 · 1967 阅读 · 0 评论 -
Java异常抛出专题
前言对于编译性异常我们必须捕获或者抛出 ,否则程序无法编译成功,对于非编译性异常(运行时异常),这类异常可以编译成功但在运行的时候可能就会发生异常,常见的运行时异常主要有:ClassCastException、IndexOutOfBoundsException、NullPointerException、ArrayStoreException等,这类异常一般是程序逻辑错误引起的,在编写代码的时候...原创 2018-06-28 14:12:12 · 1642 阅读 · 0 评论 -
Java泛型专题
Java中泛型类型理解 1:不使用泛型类:class Test1{}Test1 in1=new Test1(new Integer(81));Integer i1 = (Integer)in1.getObj(); //此处需要强制转换System.out.println(in1.getObj().getClass().getName()+":"+i1);2:使用泛型类:Clas...原创 2018-06-22 14:59:19 · 120 阅读 · 0 评论 -
java参数传递问题
问题描述:在传递java参数的时候如果参数为基本数据类型或者引用数据类型,那么传递完成之后参数本身值是否会发生改变?代码测验: 1: 传递基本数据类型package com.test.other;public class ParamTransfer { private int money; public static void main(String[] args...原创 2018-04-16 16:44:42 · 197 阅读 · 0 评论