Bollen's Notes

Write Technology Record


  • 首页

  • 归档

  • 标签

Axis2请求忽略SSL证书信任

发表于 2017-03-01   |   分类于 webservice,   |  

技术背景

客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示
HTTPS通信过程

现象

业务上需要通过axis基于HTTPS调用某服务商的WSO2 server,但是服务方并没有提供证书,因此调用时会抛出异常如下:

阅读全文 »

Effective Java - 泛型

发表于 2016-09-22   |   分类于 java   |  

泛型

声明中具有一个或多个类型参数的类或者接口,称之为泛型(generic)类或接口。泛型类和泛型接口统称为泛型(generic type)

每个泛型都有一个原生态类型(raw type),即不带任何实际类型参数的泛型名称。例如:List<E>对应的原生态类型是List。

在类进行编译时编译器自动进行类型转换,并且在编译时告知是否插入类型错误的对象,并在运行时擦除它们的元素类型。

泛型相关术语

术语 实例 所在条目
参数化的类型 List<String> 第23条
实际类型参数 String 第23条
泛型 List<E> 第23、26条
形式类型参数 E 第23条
无限制通配符类型 List<?> 第23条
原生态类型 List 第23条
有限制类型参数 <E extends Number> 第26条
递归类型参数 <T extends Comparable<T>> 第27条
有限制通配符类型 List<? extends Number> 第28条
泛型方法 static <E> List<E> asList(E[] a) 第27条
类型令牌 String.class 第29条
阅读全文 »

Effective Java - 对所有对象都通用的方法

发表于 2016-09-13   |   分类于 java   |  

使类和成员的可访问性最小化

  • 良好的设计模块在于对外部的其他模块隐藏其内部数据和其他实现细节
  • 实体可访问性由实体声明所在的位置以及该实体声明中出现的访问修饰符决定
  • 降低不必要的公有类的可访问性
  • 类实现了Serializable接口有可能“泄漏”私有或包私有域
  • 覆盖父类的方法,子类中的访问级别就不应该低于父类中的访问级别
  • 除了公有静态final域以外,公有类都不应该包含公有域。并且要确保公有静态final域所引用的对象都是不可变的。
阅读全文 »

Effective Java - 对所有对象都通用的方法

发表于 2016-09-05   |   分类于 java   |  

覆盖equals遵守通用约定

  • 自反性
  • 对称性
  • 传递性
  • 一致性
  • 非空性 非null引用值x,x.equals(null)返回false
  • 判断Float或Double相等使用Float.compare或者Double.compare方法,因为存在Float.NaN/-0.0f以及类似的double常量
阅读全文 »

Effective Java - 创建和销毁对象

发表于 2016-09-02   |   分类于 java   |  

静态工厂方法代替构造器

优点

  • 包含名称易于阅读
  • 避免创建不必要的重复对象
  • 可以返回原返回类型的子类型,类型更加灵活
  • 创建参数化类型实例代码更简洁

缺点

  • 静态方法所在类没有public或者protected的构造器无法子类化
  • 实际上和其他静态方法没有区别
阅读全文 »

Eclipse反编译工具Jad.exe及插件JadClipse配置

发表于 2016-04-20   |   分类于 IDE   |  

下载Eclipse插件及反编译程序

  • JadClipse
  • Jad

配置Jad.exe

将Jad.exe复制到JDK安装目录下的bin文件夹下

阅读全文 »

双网卡双网段路由设置同时访问内外网

发表于 2016-01-28   |   分类于 网络配置   |  

现象

电脑通过VPN访问公司服务器的内网时无法访问互联网

原因

如果你电脑同时装了双网卡(包括无线网卡),且分别属于不直接相连的网段,此时如果在两个属性里都设了网关,Windows只认其中一个导致两
个网段不能同时上。由于windows系统不支持共用路由问题(server级别除外),所以在同一时间不能同时上两个网。

解决办法

Windows也是有路由表的,只不过大家平时上网的时候大多数是用一块网卡,很少用到路由概念

如果是两块网卡,那就有两条默认路由,虽然两条默认路由的有着不同的Metric(Metric即跃点数,值越小优先级越高),然而windows还没聪明到能够首辨认哪条路由到外网网关,哪条路由到内网网关。它所能做的就是找一条路由作为全部数据包的出口,至于选择的对错与否,那它就不再过问了。

那怎么办呢?办法就是人为操控windows的路由表,来告诉它,哪个网卡ip是走哪个网关。

阅读全文 »

Mybatis 批量 foreach merge into用法

发表于 2016-01-28   |   分类于 java   |  

业务要求

批量插入时间价格表,如果某个套餐的某天的价格存在,则更新,不存在则插入

实现思路

  • oracle 9i及其以后版本支持的merge into语句,用于实现insertOrUpdate的功能
  • mybatis的动态SQL 语法foreach循环插入,待插入的实体bean的List通过查询数据库dual形成表,通过foreach的separator属性设置每次循环的隔离词为union连接每次形成的表为一个总表
  • 总表于条件匹配,符合条件update,不符合insert
  • 更新的数据来源于java.util.List中的实体的属性

缺陷

采用union 拼接sql,导致问题sql过长,耗时,性能不好,且达到一定量会超出sql长度限制,不推荐;
一般20字段以内的表新增,数据2000条以内可用,经过测试。

注意 union all会把所有结果集拼接在一起,union也会拼接所有结果,但会去除重复

阅读全文 »

如何创建并运行java线程

发表于 2016-01-26   |   分类于 java   |  

Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。

可以用如下方式用java中创建一个线程:

1
Tread thread = new Thread();

执行该线程可以调用该线程的start()方法:

1
thread.start();

在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了。

编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口。接下来我们会具体讲解这两种方法:

阅读全文 »
Bollen

Bollen

日拱一卒,不求速进

9 日志
4 分类
19 标签
Creative Commons
© 2016 - 2017 Bollen
由 Hexo 强力驱动
主题 - NexT.Pisces