学习日记
SilenceCarrot
这个作者很懒,什么都没留下…
展开
-
我们发送一个请求时,服务端的javax.servlet.http.HttpServletRequest帮我们做了什么?
在web应用程序中,后台仅仅获取请求参数是远远不够的。比如,spring的controller层,我们可以通过@RequestMapping注解一个方法使其成为web借口,我们可以通过方法参数来获取匹配获取请求的参数。 但是,如果我们想要获取更多的信息怎么办呢? 没错,用javax.servlet.http.HttpServletRequest,HttpServletRequest帮我...原创 2018-07-12 10:28:38 · 2382 阅读 · 0 评论 -
Maven打包生成包含所有依赖的jar包
Maven打包生成包含所有依赖的jar包 maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。 同时,maven提供以下方式生成包含所有依赖的jar文件,依赖以class的方式存在; 解决方案在pom.xml文件中添加插件: <plugin> <artifactId>maven-assembly-plugin</artifactId> <co转载 2017-10-12 16:18:15 · 4786 阅读 · 2 评论 -
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 · 312 阅读 · 0 评论 -
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 · 358 阅读 · 0 评论 -
本地提供/调用服务与远程提供/调用服务(dubbo)的区别比较
本地提供/调用服务(spring)<bean id="demoService" class="com.demo.DemoServiceImpl" /><bean id="demoAction" class="com.action.DemoAction"> <property id="demoService" ref="demoService" /></bean>其中,id为demoServ原创 2017-03-27 08:45:10 · 5588 阅读 · 0 评论 -
dubbo配置文件解读
原文地址:http://blog.csdn.net/cpf2016/article/details/49795883<dubbo:service/>#用于服务提供方暴露服务位置<debbo:service/> 参数 解释 interface 提供服务的接口 ref 真正的服务实现类 group version 服务的版本 registry 指定使用的转载 2017-03-24 18:19:59 · 2253 阅读 · 0 评论 -
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 · 386 阅读 · 0 评论 -
dubbo优雅停机
dubbo优雅停机Dubbo是通过JDK的ShutdownHook来完成优雅停机的,所以如果用户使用”kill -9 PID”等强制关闭指令,是不会执行优雅停机的,只有通过”kill PID”时,才会执行。原理服务提供方 停止时,先标记为不接受新的请求,新请求过来时直接报错,让客户端重试其他机器;然后,检测线程池中的线程是否正在运行,如果有,等待所有线程执行完成,除非超时,则强制关闭;服务消转载 2017-03-29 20:15:39 · 6719 阅读 · 0 评论 -
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 · 2874 阅读 · 0 评论 -
dubbo参数配置解析
dubbo参数配置解析注意在dubbo中,group,version,interface是服务的匹配条件,也只有这三个参数来决定是不是同一个服务,其他的配置均为调优和治理参数。所有的配置项分为三大类:(参见下表中的“作用”一列)服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方;服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供便利条件;性能调优:表示该配置项用于性转载 2017-03-28 19:59:23 · 8467 阅读 · 0 评论 -
dubbo中的group与version的简单示例
group当一个接口有多种实现时,可以用group区分<!-- dubbo group 使用示例 --><bean id="demoA" class="com.xxx.IndexServiceImpl1" /><dubbo:service group="feedback" interface="com.xxx.IndexService" ref="demoA" /><bean id="demoB转载 2017-03-27 21:37:50 · 7653 阅读 · 0 评论 -
dubbo回声测试
dubbo回声测试回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否畅通,可用于监控。所有服务自动实现EchoService接口,只需要将任意服务引用强制转换为EchoService,即可使用。<!-- 服务引用 --><dubbo:reference id="memberService" interface="com.xxx.MemberService" />转载 2017-03-27 21:16:55 · 2195 阅读 · 4 评论 -
dubbo配置项简介及配置加载顺序
dubbo配置项 标签 介绍 - 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。 - 引用配置,用于引用一个暴露的远程服务,一个引用可以指向多个注册中心 - 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受.可以同时使用多个标签定义多种支持协议转载 2017-03-27 19:31:02 · 1991 阅读 · 0 评论 -
Maven打包生成普通jar包
Maven打包生成普通jar包 普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖; 同时还包括pom文件,说明该包的依赖信息; 方法一在工程pom文件下这样写,可生成普通的jar包: <packaging>jar<packaging>方法二不写,因为packaging默认打包类型为jar转载 2017-10-12 15:53:33 · 1069 阅读 · 0 评论 -
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 · 1244 阅读 · 0 评论 -
java中的SPI机制
java中的SPI机制SPI机制简介 SPI的全名为Service Provider Interface. 大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。 简单的总结下java spi机制的思想。 我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,转载 2017-10-12 18:19:23 · 441 阅读 · 0 评论 -
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 · 6616 阅读 · 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 · 41081 阅读 · 2 评论 -
自定义切面会吃掉异常,导致事务不生效的问题。
问题描述我们都知道,我们定义一个切面,然后绑定一个切点后,这个切面就能在合适的时间自动切入切点。对于@AfterThrowing和@Around,我们可以再切面中捕获异常,处理异常。 我们也知道,我们对一个方法添加事务,那么当此方法抛出异常后,事务会捕获异常,自动执行混滚。那么,如果添加事务的方法就是我们说的那个切点呢?这个方法(切点)在同时添加了事务和切面的情况下,如果这个方法抛出了异...原创 2018-06-12 10:56:40 · 4151 阅读 · 3 评论 -
Java中非静态成员变量、静态成员变量的初始化时机。
Java中非静态成员变量、静态成员变量的初始化时机。非静态变量我们在这里分析三种结构,着重分析这三种结构的初始化顺序:成员变量初始化语句;成员变量初始化块;构造函数;示例一:public class MyTest { private String name = "wei.hu"; public MyTest(String name) { ...原创 2018-05-22 11:48:11 · 2200 阅读 · 2 评论 -
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 · 3509 阅读 · 0 评论 -
java.io.File 类中file.toURI().toURL()的用法
File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问。只是URI和URL的应用范围不同,URI来的更广。那么为什么要使用toURI()而不是toURL()呢?? 因为此方法不会自动将链接中的非法字符转义。而在File转化成URI的时候,会将链接中的特殊字符如#或!等字符进行编码。虽说在浏览器中没有转译不会有问题,因为有的...原创 2018-02-24 13:56:00 · 14390 阅读 · 0 评论 -
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 · 1796 阅读 · 0 评论 -
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 · 3325 阅读 · 0 评论 -
spring mvc底层通过消息转换器 解析json字符串/json对象成JavaBean
讲述一个自己写Controller层的接口的经历,到现在一共经历了三种改变: * 接口参数是基本类型; * 接口参数是JOSNObject类型; * 接口参数是JavaBean类型;每次改变都对spring有了更深入的了解,每次改变都让代码变得更加简化、更加易读。阶段一(接口参数是String类型)在初学spring-web的时候,Controller层的接口形参都是基本类型,比...原创 2018-02-27 11:40:17 · 2080 阅读 · 0 评论 -
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 · 8716 阅读 · 1 评论 -
Java对象的序列化与反序列化
Java对象的序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对象。这个相反的过程又称为反序列化。Java对象的序列化与反序列化 在Java中,我们可以通过多种方式来创建对转载 2017-10-15 21:06:19 · 321 阅读 · 0 评论 -
java中几种常用的RPC框架介绍
JAVA中几种常用的RPC框架介绍 RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。 Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。 RPC还有一个特点就是能够跨语言,本文只以JAVA语言里的RPC为例。对于RPC有一个逻辑关系图,以RMI为例: 其他的框架结构也类转载 2017-10-13 09:35:51 · 3091 阅读 · 0 评论 -
javaEE创建一个空的web应用
准备创建应用名:webTest 启动应用容器:apache-tomcat-8.5.8步骤1.创建一个空目录:webTest;>mkdir webTest2、进入webTest目录,并在webTest目录下创建空目录WEB-INF;>cd webTEst>mkdir WEB-INF3、进入WEB-INF目录,并在WEB-INF分别创建空目录classes和空目录lib;>cd WEB-INF>m原创 2017-03-03 23:40:46 · 970 阅读 · 0 评论 -
mybatis - 条件查询的三种方式
随着系统的越来越复杂,对数据的查询也越来越灵活,所以动态查询,也就是条件查询的使用也越来越多,今天简单介绍下。条件查询的三种参数类型:传递map类型传递object类型传递参数序列号例子后续补充原创 2017-01-18 17:26:07 · 1699 阅读 · 0 评论 -
线程安全与共享资源(线程控制逃逸规则)
代码线程安全是指:当多个线程同时行某一个代码块时,不会引起竞态条件,也不会导致数据不一致等情况。那么这段代码就是线程安全的。在多线程中资源的共享一定要小心,因为不同的资源它的线程安全性都不一样,错误的使用容易引起线程的不安全。在这里有一个规则称为 ”线程控制逃逸规则“ ,是指:如果一个资源的创建,使用,销毁都在同一个线程内完成,且永远不会脱离该线程的控制,则该资源的使用就原创 2016-09-02 16:35:08 · 722 阅读 · 0 评论 -
证明synchronized同步的方法是可重入的
synchronized是用来在多线程程序中同步方法或同步类对象的关键字。使用synchronized同步一个方法时,当一个线程进入此方法时,需要先获取到当前实例的锁或当前类对象的锁,当获得锁则进入,其他线程就无法在在获得锁,知道已经获得锁进入方法的线程释放锁之后其他线程才有机会获得锁并进入方法。然而,锁又分为分为可重入锁和不可重入锁。肯定有人疑惑:”线程的同步不就是为了防止多个线程同时进入某原创 2016-09-02 15:58:23 · 2492 阅读 · 0 评论 -
并发编程模型
什么是并发编程模型?并发编程模型是一种如何使用并发来有效、高效处理任务的编程方式。也就是说如何使用并发。 并行工作者模型 流水线模型并行工作者模型并行工作者就是多个任务是并行执行的。用于个线程用于管理,当有任务来到时,通过某种策略来将任务分发给某一个worker线程。而真正的worker线程执行是并行的。并行工作者是一个线程完完全全的处理一个原创 2016-09-02 15:42:58 · 1412 阅读 · 0 评论 -
java多线程和并发性介绍
从单任务处理到多任务并发处理。多线程的优缺点。原创 2016-09-02 14:21:31 · 891 阅读 · 0 评论 -
【2016-08-10】{[POI],[java处理excel]}
java处理excel有很多第三方的包,我今天使用org.apcahe.poi 做实验。主要包含的对象:(本次试验主要用到红色表示几个类) HSSFWorkbookexcel的文档对象 HSSFSheetexcel的表单 HSSFRowexcel的行 HSSFCellexcel的单元格 HSSFFontexcel的字体 HSS原创 2016-08-10 20:37:22 · 1853 阅读 · 0 评论 -
【2016-08-09】{[Csrf token],[Redis]}
什么是CSRF?CSRF又叫“跨站点请求伪造(Cross-Site Request Forgeries,CSRF)”,CSRF攻击是指攻击者通过设置好的陷阱,前置对已完成认证的用户进行非预期的个人信息或者设定信息等某些状态的更新,属于被动攻击。跨站点请求伪造可能会造成一下影响: 利用已通过认证的用户权限更新设定信息等; 利用已通过认证的用户权限购买商品; 利用已通过原创 2016-08-09 09:44:18 · 1189 阅读 · 0 评论 -
【2016-08-08】
In addition to JMX and HTTP, Metrics also has reporters for the following outputs:STDOUT, using ConsoleReporter from metrics-coreCSV files, using CsvReporter from metrics-coreSLF4J loggers, us翻译 2016-08-08 19:53:38 · 1028 阅读 · 0 评论 -
java中的消息转换器--HttpMessageConverter
目录:HTTP请求响应模型;基于javax-servlet-api的请求、响应处理接口;基于SpringMVC的请求、响应接口;HTTP请求响应模型一般情况下,我们使用的最简单的HTTP请求响应模型就是B/S模型了。1、客户端发出http请求,http请求中包含着请求参数,发送到指定的HTTP Server;2、HTTP Server接受 http原创 2016-09-10 13:16:33 · 3642 阅读 · 0 评论 -
【2016-08-07】
=========================================================一、学习Metrics=========================================================1、Metrics可以称之为“度量”,它是用来为某个系统做性能监控的工具类。它可以统计QPS、RT等等,结合业务逻辑,从很多维度来原创 2016-08-08 01:15:18 · 645 阅读 · 4 评论 -
【2016-08-05】
要做监控统计,一定要了解的一个词是 Metrics,翻译为“度量”的意思。当我们对系统中的某一个服务做统计时,可以方便的使用Metrics对系统的各种性能指标以及自定义的一些维度进行统计。如统计TPS(系统每秒处理的事务数量)、QPS(系统每秒处理的请求数量)、RT(响应时间),或者是从业务层面,某一个方法的调用次数、对某一个用户所做的数据统计等等。原创 2016-08-05 18:45:20 · 823 阅读 · 0 评论