[断点分析之spring-ioc]-xml文件解析(三)
一、前言
前面资源文件加载搞定了,来看看 spring 是如何把 xml 文件变成 bean 的吧.
二、分析
还是从4句代码看起.
@Test
public void testSpringLoadXml(){
// 加载xml
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("com/sjr/test/bean/MyTestBean.xml"));
// 获取bean
final MyTestBean testBean = factory.getBean("myTestBean",MyTestBean.class);
final String testStr =...
[断点分析之spring-ioc]-资源加载ResourceLoader(二)
一、前言
资源统一抽象为Resource对象.可曾记得在 spring 配置文件中的这种写法:classpath:com/sjr/test/bean/MyTestBean.xml,那么这种写法的意思是从classpath路径下加载xml,那么spring是如何定位到文件的?
上面这种写法相当于是个协议,在spring中默认支持9种文件协议.
URL_PROTOCOL_FILE
从文件系统中加载文件
URL_PROTOCOL_JAR
从jar包中加载文件
URL_PROTOCOL_WAR
从war包中加载文件
URL_PROTOCOL_ZIP
从zip中加载文...
[断点分析之spring-ioc]-资源对象Resource(一)
一、前言
在这个春回大地万物复苏的日子,在家里带着口罩,手持消毒液.分析spring是最好消磨时间的方式.不知道在这段时间里面,能否把IOC这个分析完.
Resource 这个接口抽象了资源的获取方式, spring 启动往往都是从这一步开始.
二、从那几句代码开始
简单的java bean
package com.sjr.test.bean;
public class MyTestBean {
private String testStr = "test--one";
public String getTestStr() {
return testStr;
}
public MyTestBean setTestStr(String tes...
java调用c# webservice
一、前言
最近落在手上一个对接任务,对方平台采用的是webservice,用.net写的.刚开始看文档的时候,感觉挺简单的,就几个xml发过去发过来的(之前没搞过webservice,全是个人愚见.).
但后面出现一个问题,接口上注明的参数类型是binarybase64,按照文档示例,不管怎么序列化都不对,一直在提示参数不对,不能序列化.后面才发现,这个二进制序列化格式是用的c#独有的序列化方式,是不跨平台的.emmm
二、BinaryFormatter
在c#里面常用的序列化方式是BinaryFormatter,这种序列化方式,是二进制形式,跟protocbuf差不多,但性能上要比protocbuf要好点.对比json就更不用说了.但为了提升性能,必将在其他地方作...
java调用c# webservice
一、前言
最近落在手上一个对接任务,对方平台采用的是webservice,用.net写的.刚开始看文档的时候,感觉挺简单的,就几个xml发过去发过来的(之前没搞过webservice,全是个人愚见.).
但后面出现一个问题,接口上注明的参数类型是binarybase64,按照文档示例,不管怎么序列化都不对,一直在提示参数不对,不能序列化.后面才发现,这个二进制序列化格式是用的c#独有的序列化方式,是不跨平台的.emmm
二、BinaryFormatter
在c#里面常用的序列化方式是BinaryFormatter,这种序列化方式,是二进制形式,跟protocbuf差不多,但性能上要比protocbuf要好点.对比json就更不用说了.但为了提升性能,必将在其他地方作...
Postgresql-CDC 方案踩坑
一、CDC概念
CDC(Changing Data Capture)意思是捕捉变化的数据,用流的方式持续捕捉.这与ETC有着本质上的区别,ETL则是定时拉取数据.
ETL 概念上是:抽取(E)、转换(T)、导入(L),ETL现在是比较成熟的,方案也比较多.但定时抽取就会意味着有时效性的问题,如果有一种方案,数据库数据出现更改就自动同步到OLAP引擎里面,岂不是美滋滋?那么CDC就是为此而生的,持续不断的监听数据库的变化情况,一旦变化就立马发出消息进行同步消息,但这种方案也并非完美,如遇到大事务的SQL,批量更新的这种,也会有延迟的问题,权衡一下估计两者差不多.
市面上常用的数据库有Mysql,PostgreSql等,Mysql的CDC方案比较多,通过监听binlog实...
centos7 修改limits限制
一、前言
最近在做压力测试,看看后面接口能跑到多少的qps,结果跑了一下下,接口就开始报错了,经过排查发现,后端是正常的,是nginx 打开文件数过多导致的nginx的错误,于是乎,就改呗.改着改着服务器就被改炸了.
二、修改limits
查看当前open files数量 ulimit -a
测试服务最高能到多少(当然这个数字并不是越大越好)
图中可以看到最大值在1000000左右.一定不要试图超过这个值,不然ssh会连接不上服务器的,哪怕物理终端都会登陆不上去,切记!
修改配置使之永久生效.打开vim /etc/security/limits.conf,在文件末尾添加以下两行参数.
...
BufferedInputStream与InputStream的区别
一、前言
最近在项目遇到一个BufferedInputStream和InputStream混用的问题,导致InputStream阻塞线程,于是为了解决问题,打算剥开BufferedInputStream的buffer观察内在的本质,凭啥都说BufferedInputStream比InputStream快?
二、事故线程
事故是发生在,抄袭的jsch下载文件的demo里,为了偷懒开发人员直接把demo里面的代码扒了下了,不过好在一点是开发人员觉得InputStream比较慢,换成了BufferedInputStream.这点还是比较好的,至少有点点常识.以下为部分代码.
读取文件代码
ChannelExec channel = null;
O...
共计 67 篇文章,9 页。