- 博客(96)
- 问答 (2)
- 收藏
- 关注
原创 一、实现多线程的三种方式
Java实现多线程有两种方式: extends Thread类; implements Runnable接口; 继承Thread类package carrot.hu;public class ThreadTest extends Thread { privat int i; @Override ...
2018-07-13 11:03:25 715
原创 我们发送一个请求时,服务端的javax.servlet.http.HttpServletRequest帮我们做了什么?
在web应用程序中,后台仅仅获取请求参数是远远不够的。比如,spring的controller层,我们可以通过@RequestMapping注解一个方法使其成为web借口,我们可以通过方法参数来获取匹配获取请求的参数。 但是,如果我们想要获取更多的信息怎么办呢? 没错,用javax.servlet.http.HttpServletRequest,HttpServletRequest帮我...
2018-07-12 10:28:38 2403
原创 自定义切面会吃掉异常,导致事务不生效的问题。
问题描述我们都知道,我们定义一个切面,然后绑定一个切点后,这个切面就能在合适的时间自动切入切点。对于@AfterThrowing和@Around,我们可以再切面中捕获异常,处理异常。 我们也知道,我们对一个方法添加事务,那么当此方法抛出异常后,事务会捕获异常,自动执行混滚。那么,如果添加事务的方法就是我们说的那个切点呢?这个方法(切点)在同时添加了事务和切面的情况下,如果这个方法抛出了异...
2018-06-12 10:56:40 4193 3
原创 springboot中,Druid配置使用log4j2。
问题springboot项目,使用了slf4j2,同时也使用了阿里的DruidDataSource,但是在项目启动时出了问题:log4j:WARN No appenders could be found for logger (com.alibaba.druid.pool.DruidDataSource).log4j:WARN Please initialize the log4j ...
2018-06-07 15:07:26 6644 5
原创 SLF4J: Class path contains multiple SLF4J bindings. 问题原因及解决方法。
问题springboot项目,使用了slf4j,当引入zookeeper之后,就会报错:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/Users/silence.hu/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/...
2018-06-07 14:55:51 41408 2
原创 Java中非静态成员变量、静态成员变量的初始化时机。
Java中非静态成员变量、静态成员变量的初始化时机。非静态变量我们在这里分析三种结构,着重分析这三种结构的初始化顺序:成员变量初始化语句;成员变量初始化块;构造函数;示例一:public class MyTest { private String name = "wei.hu"; public MyTest(String name) { ...
2018-05-22 11:48:11 2223 2
原创 shell 命令统计代码行数
分享一个统计代码行的shell命令: find . “(” -name “.java” -or -name “.html” -or -name “.js” -or -name “.css” “)” -print | xargs wc -l根据不同的项目类型,不同的目录,自行修改。如果内容多,可以: find . “(” -name “.java” -or -name “.html” ...
2018-04-08 09:44:21 615
转载 React子组件和父组件通信
React子组件和父组件通信包括以下几个方面:1. 子组件获取父组件属性:props或者state2. 子组件调用父组件的方法3. 父组件获取子组件的属性:props或者state4. 父组件调用子组件的方法我们从下面这个例子来详细了解:父组件var Father = React.createClass({ getDefaultProps: function (...
2018-03-20 21:41:01 5780
原创 Java项目中使用groovy的两种方式
可能还有更多的使用方式,在此只记录自己使用的两种方式:方式一 String type = "List<String>"; String jsonString = "[\"wei.hu\",\"mengna.shi\",\"fastJson\"]"; Binding binding = new Binding();
2018-03-14 17:23:09 8386
转载 Web 服务器网关接口
原文转自云栖社区我们知道Python有着许多的 Web 框架,而同时又有着许多的 Web 服务器(Apache, Nginx, Gunicorn等),框架和Web服务器之间需要进行通信,如果在设计时它们之间不可以相互匹配的,那么选择了一个框架就会限制对 Web 服务器的选择,这显然是不合理的。那么,怎样确保可以在不修改Web服务器代码或网络框架代码的前提下,使用自己选择的服务器,并且匹配多...
2018-03-12 17:41:10 2490
转载 API的HTTP Status Code
原文出自云栖社区原创最近看到很多的API错误码定义比较简单,只有一个200表示成功,400表示客户请求错误,500表示服务器端错误。其实HTTP协议中对Staut Code对不的错误做了详细的细分。 API设计也要尊许HTTP协议,这样做的好处在于,在接受到API的Response时,客户端只需要判断http Code而无需解析请求内容,即可知道如何进行下一步操作。 消息(1开头) 处...
2018-03-12 15:35:53 1617
转载 API网关的使用场景
看了 阿里云-API网关 官网,整理几个API网关的使用场景。场景一(拥抱API经济)面对用户日益膨胀而又碎片化的需求,企业需要不断探索新的商业模式,来解决客户一系列的场景化问题。通过API网关提供标准的 API 服务,让其他开发者将不同 API 服 务组合整合到自己的应用中,衍生出新的服务,促进企业建立商业生态、跨界创新。 场景二(建立企业API生态)如今企业面临更多的挑战,企...
2018-03-12 15:23:14 3792
转载 API大赛场景解读——API实战
相信大家已经看过一些关于“API经济”的先导文了,但是一涉及到“XX经济”就好像很虚,晦涩难懂。到底什么才是API经济?我理解,在云计算时代,API的价值越来越重要了。输出服务、数据、工具需要通过API,移动APP和后端的交互通讯需要API,系统间的深度对接需要API,智能终端跟云端服务的通讯需要API。API已经不只是简单的应用程序接口,API正逐渐演变成Paas云服务中的最大载体。那么一切围绕...
2018-03-12 15:09:44 479
转载 API网关统一管理企业内部API
互联网公司随着业务的发展,公司规模会日益扩张,公司的业务也会越来越丰富,公司内部的部门也会越来越多,不同的业务会有不同的部门来负责,每个部门都有自己的一亩三分地。作为互联网公司,每个部门也或多或少有一些能力对外开放。这些能力都会以API的形式提供给外部。这些API分散在各个部门的服务器上,可能提供的形式、协议、SDK都不一样。公司越大这些API就会变得越来越分散,形态差异越大,一个部门要使用其他部...
2018-03-12 14:58:44 3489
原创 mybatis报错:Cause: java.sql.SQLException: Operand should contain 1 column(s)\n;
mybatis配置:<select id="queryDubboConfig" parameterType="map" resultMap="DubboConfigDO"> SELECT (app_name, project_name, project_branch, interface_name, dubbo_app_name, dubbo_int...
2018-03-07 20:26:57 3337
翻译 fastjson json字符串和JavaBean、List、Map及复杂集合类型的相互转换(二)
前面一篇《fastjson json字符串和JavaBean、List、Map及复杂集合类型的相互转换》我们讨论了json和javabean之间的转换,在实际应用中发现,我们举得例子还不够复杂。 如果说javabean中嵌套了其他javabean,并且嵌套了复杂List、Map等的情况时,fastjson是否还能很好的支持这个转换呢?答案是肯定的,fastjson完全支持。 A.java...
2018-02-28 21:19:09 1807
原创 spring mvc底层通过消息转换器 解析json字符串/json对象成JavaBean
讲述一个自己写Controller层的接口的经历,到现在一共经历了三种改变: * 接口参数是基本类型; * 接口参数是JOSNObject类型; * 接口参数是JavaBean类型;每次改变都对spring有了更深入的了解,每次改变都让代码变得更加简化、更加易读。阶段一(接口参数是String类型)在初学spring-web的时候,Controller层的接口形参都是基本类型,比...
2018-02-27 11:40:17 2099
原创 fastjson json字符串和JavaBean、List、Map及复杂集合类型的相互转换。
本文主要示例两部分内容:JavaBean、List、Map、复杂集合 转换成 json字符串;json字符串 转换成 JavaBean、List、Map、复杂集合;定义POJO:public class A { private String usename; private String password; public A() { }...
2018-02-26 20:04:11 8750 1
原创 spring自带的HTTP工具
Spring自带的Http工具简单实例:public static void main(String[] args) { try { //TODO: 准备uri URI uri = new URI("http://maven.fraudmetrix.cn/nexus/service/local/repositories/sna...
2018-02-24 15:05:08 3526
原创 java.lang.NoClassDefFoundError: IllegalName
在使用URLClassLoader加载资源的时候,报错如下:Exception in thread "main" java.lang.NoClassDefFoundError: IllegalName: cn/fraudmetrix/forseti/biz/service/impl/ActivityAuditServiceImpl at java.lang.ClassLoader....
2018-02-24 15:01:54 2714 1
原创 java.io.File 类中file.toURI().toURL()的用法
File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问。只是URI和URL的应用范围不同,URI来的更广。那么为什么要使用toURI()而不是toURL()呢?? 因为此方法不会自动将链接中的非法字符转义。而在File转化成URI的时候,会将链接中的特殊字符如#或!等字符进行编码。虽说在浏览器中没有转译不会有问题,因为有的...
2018-02-24 13:56:00 14466
原创 从maven私服(nexus)下载jar包的两种方式
从maven私服(nexus)下载jar包有两种方式:通过添加maven配置的pom文件来下载;通过每个jar包对应的http地址来下载;方式一(通过pom文件来下载)这种方式很常见,也就是我们在开发maven项目时常用的方式。 在pom文件中的<dependency></dependency>标签中,添加需要的maven依赖,然后重新import项...
2018-02-24 10:59:19 19422 1
翻译 javass翻译之四《自省与定制》
CtClass提供了自省的方法。Javassist的内省能力与Java反射API兼容。CtClass提供了getName( ),getSuperclass( ),getMethods( )等方法。CtClass还提供了修改类定义的方法。 它允许添加一个新的字段,构造函数和成员方法。 检测方法体也是可以办到的。方法由CtMethod对象表示。 CtMethod提供了几种修改方法定义的方法。 请注...
2018-02-23 17:33:48 437
翻译 javassist翻译之三《类加载器》
如果事先知道哪些类必须被修改,修改这些类最简单的方法如下:通过调用ClassPool.get( ) 获取一个CtClass对象; 修改它; 对该CtClass对象调用writeFile( )或toBytecode( )方法以获取修改的类文件;但是如果在加载时确定类是否被修改,则用户必须使Javassist与类加载器协作。Javassist可以与类加载器一起使用,以便字节码在加载时可...
2018-02-23 15:50:10 859
翻译 javassist翻译之二《ClassPool》
一个ClassPool对象是一个包含很多CtClass对象的容器。一个CtClass对象只要被创建一次,它就会一直在ClassPool中。这是因为编译器在编译该CtClass表示的类的源代码时可能需要稍后访问CtClass对象。例如,假设一个新的方法getter( )被添加到代表Point类的CtClass对象中。稍后,程序将尝试编译源代码,包括在Point中调用getter( )方法,并使用...
2018-02-23 15:37:18 771
翻译 javassist翻译之一《读写字节码》
Javassist是一个处理Java字节码的类库。 Java字节码存储在类的二进制文件中。 每个类文件都包含一个Java类或接口。类Javassist.CtClass是一个类文件的抽象表示。CtClass(编译时类)对象则是处理类文件的句柄。下面的程序是一个非常简单的例子:ClassPool pool = ClassPool.getDefault();CtClass cc = pool....
2018-02-23 15:18:18 495
转载 Java对象的序列化与反序列化
Java对象的序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这个相反的过程又称为反序列化。Java对象的序列化与反序列化 在Java中,我们可以通过多种方式来创建对
2017-10-15 21:06:19 332
转载 java中几种常用的RPC框架介绍
JAVA中几种常用的RPC框架介绍 RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。 Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。 RPC还有一个特点就是能够跨语言,本文只以JAVA语言里的RPC为例。对于RPC有一个逻辑关系图,以RMI为例: 其他的框架结构也类
2017-10-13 09:35:51 3112
转载 java中的SPI机制
java中的SPI机制SPI机制简介 SPI的全名为Service Provider Interface. 大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。 简单的总结下java spi机制的思想。 我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,
2017-10-12 18:19:23 453
转载 maven打包生成可执行jar文件
maven打包生成可执行jar文件 maven默认打包生成的jar是不能够直接运行的,因为在jar文件的META-INF/MANIFEST.MF文中没有Main-Class一行. 为了生成可执行的jar文件,需要借助maven的插件,maven-shade-plugin. 配置该插件如下:<properties> <project.build.sourceEncoding>UT
2017-10-12 16:48:49 1258
转载 Maven打包生成包含所有依赖的jar包
Maven打包生成包含所有依赖的jar包 maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。 同时,maven提供以下方式生成包含所有依赖的jar文件,依赖以class的方式存在; 解决方案在pom.xml文件中添加插件: <plugin> <artifactId>maven-assembly-plugin</artifactId> <co
2017-10-12 16:18:15 4818 2
转载 Maven打包生成普通jar包
Maven打包生成普通jar包 普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖; 同时还包括pom文件,说明该包的依赖信息; 方法一在工程pom文件下这样写,可生成普通的jar包: <packaging>jar<packaging>方法二不写,因为packaging默认打包类型为jar
2017-10-12 15:53:33 1083
原创 docker简单操作
1.运行hello-world image docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world78445dd45222: Pull completeDigest: sha256:c5515758d4c5e1e838e9cd
2017-06-09 09:39:48 574
转载 spring-security for spring mvc
Updating dependenciespom.xml<dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactI
2017-05-26 21:55:59 333
转载 spring-security for Java-base configuration
1.updating dependencies<dependencies> <!-- ... other dependency elements ... --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId>
2017-05-26 20:40:52 373
原创 java引用外部程序简单demo
public class DealShellCmdUtil { private static Process process = null; private static BufferedReader bufferedReader = null; public static List<String> invokerShellCmd(String shellCommand) {
2017-04-10 08:29:51 404
原创 testng忽略测试
场景:在testng.xml文件中有如下内容:<?xml version="1.0" encoding="UTF-8" ?><suite name="autotest" parallel="methods" thread-count="1" verbose="1" time-out="600000"> <parameter name="test_url" value="${test_url}"
2017-04-08 16:30:50 1016
原创 testng超时测试
前提:在家办公使用VPN,testng在执行一个批量的写mysql的方法时,10分钟这个方法没有执行完,于是报错了,提示线程超时。testng线程调用一个方法时,是有默认的超时时间的,我使用的版本<testng.virsion>6.8.8</testng.virsion>是6000秒的超时时间。下列是报错信息:org.testng.internal.thread.ThreadTimeoutExcep
2017-04-08 16:06:47 778
转载 dubbo优雅停机
dubbo优雅停机Dubbo是通过JDK的ShutdownHook来完成优雅停机的,所以如果用户使用”kill -9 PID”等强制关闭指令,是不会执行优雅停机的,只有通过”kill PID”时,才会执行。原理服务提供方 停止时,先标记为不接受新的请求,新请求过来时直接报错,让客户端重试其他机器;然后,检测线程池中的线程是否正在运行,如果有,等待所有线程执行完成,除非超时,则强制关闭;服务消
2017-03-29 20:15:39 6740
原创 dubbo上下文信息
dubbo上下文信息上下文中存放的是当前调用过程中所需的环境信息。所有配置信息都将转换为URL参数。注意 RpcContext是一个ThreadLocal的临时状态记录器,当接收到RPC请求或发起RPC请求时,RpcContext的状态都会变化。 比如:A调用B,B再调用C。在B调用C之前,A调用了B,那么RpcContext中记录的是A调用B的信息;在B调用C之后,RpcContext记
2017-03-29 10:59:33 2889
空空如也
C++中链接SQL数据库的方法
2015-07-25
C++中成员函数、静态成员函数、虚函数都是怎么存储的?他们哪一个先被调用?
2015-07-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人