
java
文章平均质量分 67
一见无始全剧终
这个作者很懒,什么都没留下…
展开
-
Java的xml解析小工具
xml解析小工具(java)对于java来解析xml文件在许许多多的工具之中都有涉及,比如hibernate就需要用户通过xml来建立表和java对象之间的映射关系,这确实很常用。我们常常把键值对用properties来处理,而有层次结构的往往可以使用xml来进行记录。下面看一下jdk自带的api是如何解析xml的吧:这是Student.xml文件在src目录下<hzy> ...原创 2018-09-28 21:57:38 · 3274 阅读 · 1 评论 -
java泛型父类获取子类传递泛型
abstract class BaseDao<T> { public BaseDao() { Type t = getClass().getGenericSuperclass(); ParameterizedType p = (ParameterizedType) t ; Class<T> c = (Class<...转载 2019-03-04 17:57:25 · 3512 阅读 · 0 评论 -
OkHttp3忽略所有证书
做了个工具,用到了okhttp3,利用https访问一些资源结果报错SSLHandShakeException,查了查最后给解决了,这里不讨论https,网上好不容易弄好的,这里分享一下,网上大部分是安卓的,我这里就是利用的java,做个笔记解决因为证书问题而无法访问。 就是在new OkHttpClient okHttpClient;的时候加些自定义证书,写一些代码在okH...原创 2019-05-05 10:42:15 · 2348 阅读 · 0 评论 -
EasyPoi来为一个单元格设置属性
easyPoi本来是挺好用的,和一个java实体类关联,操控实体数组就能写出来一个Excel文件,但在实际用途中我们需要为一些特殊的单元格做一些调整,让人看的舒服一些,也更加突出。要达到这种效果。先加上maven <!--poi--> <dependency> <groupId>cn.afterturn</groupId&g...原创 2019-05-23 14:56:59 · 12354 阅读 · 0 评论 -
JSON读取值
开发中有个需求就是从json字符串中读取值,用的阿里巴巴的那个 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.28</version> &l...原创 2019-05-24 10:36:39 · 1084 阅读 · 0 评论 -
异步servlet
Tomcat分配的servlet线程是非常消耗资源的,如果处理十分复杂的逻辑业务会导致系统分配servlet线程迟迟不能回归到tomcat线程队列之中,造成性能下降,异步servlet的主要目的是为了让tomcat分配的工作线程早点回收,而相应可以延后返回,因此采用异步servlet并没有加快响应的返回速度,只是让tomcat可以同时处理更多的请求。按照传统的servlet的走法应该如下图...原创 2019-06-29 20:40:10 · 418 阅读 · 0 评论 -
基于CXF——rest的webService
在开发过程中,我们可能会需要天气,电话号码等信息,然而这些信息我们的数据库中没有,而且这也并不是我们项目所侧重的地方,天气信息自然气象局有,电话信息自然通信公司有,那么如何才能得到这些数据呢?WebService是一种很好的解决方案,它是通过将自己写好的接口外放而让别人来调用接口的方法,整体而言,类似于RMI,但它有一些约束和特点。WebService是跨平台的,也就是不限制语言,所以这就决定...原创 2019-02-16 17:48:32 · 431 阅读 · 0 评论 -
java toString方法导致程序栈崩溃原因
在模拟实现ioc过程中,因为想看看循环依赖注入的效果,就重写了toString方法,结果导致了栈崩溃。大家都知道spring容器中的实例可以是单例的,这样有利于管理对象。那么我们要在A中注入B,B中注入C,C中注入A,就会导致循环依赖。public class ClassA { @AutoWired private ClassB b; public ClassB ge...原创 2019-01-16 17:52:36 · 1779 阅读 · 1 评论 -
javassist初探
在平时的编程中,我们往往是写好了类,编译成字节码和分配内存这些工作我们是不必关心的,那么就有了一个疑问,我们能否自己编写字节码文件从而生成对象呢?答案是可以的,千叶兹教授创建了javassist令我们可以动态的生成字节码,也就是通过代码来生成指定的字节码文件,下面做一个演示。1.首先记得导入包。2.public class DynClass { public static void...原创 2018-12-23 19:46:27 · 319 阅读 · 0 评论 -
分发器的简单应用
引入在servlet中,当容器接收到前端发过来的request时,会通过解析操作来调用GenericServlet中的service(ServletRequset,ServletResponse)方法,当然我们是需要在Web.xml中配置的,那么就可以通过这个xml文件的配置找到这个类并且调用其中的方法,类的信息以及参数的信息通过http协议发送到服务器端。但一般是直接使用了httpServle...原创 2018-10-14 22:38:03 · 2071 阅读 · 2 评论 -
CGLib代理对象解释
我们通常通过代理来实现aop,spring中常常用JDK代理,因为JDK代理要实现接口,灵活性相较于CGLib较低,本文讲解一下cglib代理对象如何实现aop。首先aop是在原对象调用方法时,在调用前后加一些业务,比如打印日志,权限之类的,然而在不改变原类代码的情况下就要给原方法加业务是实现不了的,如果实现了,我们的代码就毫无安全可言了。但我们还是需要这种需求,所以提出了代理。先介绍一下cg...原创 2018-10-23 19:15:02 · 2002 阅读 · 0 评论 -
IOC,AOP单例模式的实现
前提:对springIOC和DI有一点了解,知道springIOC需要做什么。知道代理的一些知识,明白代理和原对象的关系,知道代理对象调用方法时,可以调用原方法,因此可以在原方法前后添加业务,这是AOP(切面变成)注意:本文采取单例模式,多例模式不讨论。1.IOC(控制反转),指在程序设计中,实例不再由程序开发者来创建,而是通过容器(spring)来创建,令控制权由应用代码转移到了外部容器,控...原创 2018-10-26 19:05:20 · 1199 阅读 · 0 评论 -
Object流在C/S架构中的顺序问题
ObjectInputStream和ObjectOutputStream流在客户端、服务器程序之中是需要注意实例化顺序的,否则阻塞。不能两端同时先实例化ObjectInputStream流案例public class Server { private ObjectInputStream ois = null; private ObjectOutputStream oos = null; ...原创 2018-11-01 21:14:41 · 138 阅读 · 0 评论 -
volatile解释
java语言规范第3版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。解释:多线程环境下,读取和更改可能是同时进行,因此具有不确定性,而volatile关键字保证了共享变量的“可见性”。可见性就是当一个线程修改一个共享变量是,另外一个线程能读到这个修改的值。如何能够保证可见性,我们先看下cpu的...原创 2018-11-11 17:46:28 · 295 阅读 · 2 评论 -
servlet中getServletContext()空指针异常原因以及解决方法
在项目的开发中遇到了在servlet中使用getServletContext空指针的错误,觉得挺有意思的,下面解释一下。网上查了许多都说是重写了init方法造成的,但我并不是,所以稍微研究了一下。首先是为什么servlet里头会有servletContext对象,这是web服务器在实例化你的对象之前调用了init(ServletConfig)方法,所以才会有,如果你重写了init方法并且没有调...原创 2018-11-17 16:39:30 · 8462 阅读 · 4 评论 -
从客户端减少服务器压力的方法以及实现(模态框,swing,线程)
用户常常有一个习惯,那就是在手机或电脑卡的时候多次点击,我们知道,通常视图界面是一个单另的线程案例,而网络这边是另一个线程,卡是因为我们的服务器端向客户端发送响应速度慢,而这时候视图界面还是运行态,因此用户的多次点击是一种无效而且对服务器增加压力的一种体现。为什么需要一个进程显示视图,另一个线程做网络传输,这是因为我们不可能发送请求后就令客户端阻塞,而且等待响应回来的时候才唤醒客户端线程,这无疑...原创 2018-11-23 10:48:20 · 1039 阅读 · 0 评论 -
计时器的实现
在平时的开发中,我们常常遇到一些这样的需求,比如一天打一个报表,一周打一个报表,一月打一个报表,每天把数据库里几年没登录的用户删除掉等等,我们往往会利用计时器来完成这些业务,所谓的计时器就是能够根据准确时间来完成业务的调用。首先计时器应该是一个线程,它独立于业务,且尽量开销小,因为它存活的时间是可能非常久的。其次业务函数调用的时间不算在计时器计时的时间内,因此调用业务函数应该也是一个线程。频...原创 2018-12-14 12:02:28 · 965 阅读 · 0 评论 -
Cookie讲解
无状态的请求响应式行为,无法关联来自同一客户端的多个请求,当然也无法确定这些请求之间的共享数据。从服务端的角度来说,当用户的Web浏览器打开第一个链接到服务器的套接字时请求就开始了,直到服务器返回最后一个数据包关闭连接时,请求结束。ip地址或许是一个好的想法,但是NAT并不可靠,以大学校园来说,学生们使用着相同的ip,而真实的ip隐藏在NAT路由之后,因此如何辨别请求是否来自同一客户端便有了难...原创 2019-06-29 20:36:17 · 821 阅读 · 0 评论