我在这里

传说中的软件工程师


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索
close

读spring源码深度解析(二)

发表于 2016-03-09   |   分类于 java   |     |   阅读次数

不明白
DefaultListableBeanFactory.java中使用了AccessController.doPrivileged()方法,个人理解此方法好像是以当前上下文执行一些代码。
javaUtilOptionalClass这个属性,是用了JDK8的java.util.Optional,此类是用来避免在Java中出现各种null的问题,但不知道为什么是写在了静态代码块中,而且是以动态加载的方式来加载的。

初始类
从DefaultListableBeanFactory.java类的getBean()中,开始对整个工厂类进分析。

类的关系调用图

静态导入,如果你多次用到某个工具类的静态方法,可以使用静态导入,这样使代码更整洁美观。
SimpleAliasRegistry.java这个类实现了对Alias的一些操作。
BeanFactory.java接口定义一些对Bean的基本操作。
DefaultSingletonBeanRegistry.java对spring对Bean的一些操作做了各种封装,创建,消毁,依赖等。
AbstractAutowireCapableBeanFactory.java对AutowireCapableBeanFactory定义的方法进行了实现,此类
XmlBeanDefinitionReader.java实现了用xml解析资源文件,并且实现了DefaultListableBeanFactory.java类

阅读全文 »

阅读ActiveMQ源码总结

发表于 2016-01-07   |   分类于 java   |     |   阅读次数

准备工作

  • 下载源码git clone https://github.com/apache/activemq.git
  • 使用maven编译源码并且下载依赖mvn clean install
  • 导入到开发工具eclipsemvn eclipse:eclipse 或者idea mvn idea:idea
  • 默认会去maven中央仓库下载jar包,如果下载速度慢可以翻墙或者改成开源中国的镜像仓库
    1
    2
    3
    4
    5
    6
    7
    8
    <mirrors>
    <mirror>
    <id>CN</id>
    <name>OSChina Central</name>
    <url>http://maven.oschina.net/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>
    </mirrors>
阅读全文 »

archLinux安装遇到的问题

发表于 2015-12-24   |   分类于 linux   |     |   阅读次数
  • pacman -Syy 更新之后才能用
  • 启动ssh服务需要安装openssh,pacman -S openssh
  • 启动sshd服务systemctl start sshd
  • 设置为开机启动服务systemctl enable sshd.service
  • 安装vim之后,显示libncursesw.so.6不能找到,运行pacman -Syu升级即可
    阅读全文 »

读activeMQ源码(一)

发表于 2015-12-09   |   分类于 java   |     |   阅读次数

最近的学习到了消息的阶段,查了下网上的资料,并没有很多具体介绍某一个消息中间件的源码是如何实现,帮自己下了源码想分析下去,希望能坚持。

源码GIT下载地址

下载完之后如果要导入eclipse 执行mvn eclipse:eclipse 或者导入IDEA mvn idea:idea

说下个人对rpc和消息的理解:

  • 这2种方式从架构上就是不同的,rpc一般都是同步的,消息都是异步的,用在不同的场景上。

mac树莓派安装kaliLinux

发表于 2015-12-04   |   分类于 树莓派   |     |   阅读次数

树莓派到手大概有一周了,想折腾下kali linux,记录下安装步骤。

准备工作,必须品:

  1. 树莓派板子一个
  2. 5V电源一个
  3. 8G SD卡一张
  4. kali linux img 下载地址 选择 “RaspberryPi 2” 版本即可
  5. 无线网卡或者网线
  6. 显示屏

windows安装

怎样在Windows下将Kali安装到SD卡上

  • 下载普通版的树莓派专用Kali Linux,并解压img。
  • 下载名为Win32DiskImager的压缩包并解压其中exe后缀的软件。
    将SD卡插入你的PC中(记得用读卡器)。
  • 双击打开Win32DiskImager.exe,如果你用的是WIN7或WIN8,则需要点击鼠标右键并选择“以管理员身份运行”。
  • 如果该软件无法自动侦测到你的SD卡,你就要在右上角的下拉菜单中找到SD卡并手动选择它。
  • 在软件的图像文件部分点击小文件夹的图标,找到你刚刚下载的Raspbian.img文件。
  • 点击“写入 or write”按键,Win32DiskImager就会帮你完成其它步骤。安装过程结束后,你就可以拔出SD卡然后将其插入树莓派了。
阅读全文 »

树莓派ntp时间同步问题

发表于 2015-11-30   |   分类于 树莓派   |     |   阅读次数

今天刚到手树莓派,看了下时间,于是上网搜了下时间同步的问题。
然而我按照网上修改的同步服务器并不能解决问题,于是自己试着改了一下。

前提:你要选择正确了时区,运行sudo raspi-config 选择第4项,回车,继续选择第2个,回车,然后选择Aisa,回车,再次选择重庆或者上海,这样时区就调整好了。
网上大部分都说在/etc/ntpd.conf 下

server 0.debain.pool.ntp.org iburst

server 1.debain.pool.ntp.org iburst

server 2.debain.pool.ntp.org iburst

server 3.debain.pool.ntp.org iburst

调整服务器为server asia.pool.ntp.org iburst,我自己试了并不可以,于是我参考了一下我的Mac,用了苹果的时间同步服务器,最终修改为server time.apple.com iburst然后重启ntp服务
sudo service ntp restart即可。

读spring源码深度解析

发表于 2015-11-12   |   分类于 java   |     |   阅读次数

工作也有几年了,以前也尝试过想要读spring源码,但由于前几年没有参考资料,所以很难去理解,最近发现一本spring源码深度解析,怀着试试看的心情,踏上了源码之路。

记录一下自己遇到的问题,初次读完之后感觉到了spring的强大之处,处处都是设计模式,把代码拆的很分散,但理解上就很难了。

  1. 源码下载,spring最新的git源码地址为spring源码
  2. 由于spring3.X以后就是使用gradle构建了,所以还需要安装gradle,Mac OS 可以使用HomeBrew brew install gradle 即可
  3. 安装好gradle以后,可以在想要查看的spring项目下执行gradle eclipse 生成eclipse的配置文件
  4. 最后在Eclipse->import->existing Eclipse projects进行导入就可以了
  5. 书中有一个查看类实现的接口图,一开始不知道在哪使用,后来发现对着想要查看的类右击,出现选项菜单,点击->Open Type Hierarchy 即可,默认是显示的子类实现,然后点击上方小图标show the supertype Hierarchy即可
  6. 书中作者看到了哪个类中没有做明确提示,如果找不到需要自行搜索,我用的STS,commond+shift+l 可按关键字搜索

hexo博客提交到搜索引擎

发表于 2014-06-22   |   分类于 hexo   |     |   阅读次数

使用了hexo搭建博客之后,于是想把博客地址提交到搜索引擎当中,让搜索引擎来收录,在提交搜索引擎的时候遇到了一些问题记录下来。
让搜索引擎收录的方式有以下几种:

  1. 提交某个html文件到你的博客根目录下
  2. 添加网站的meta标签
  3. CNAME方式

当我使用第1种方式时,发现其实上传的文件是在index文件中包含了进来,所以搜索引擎不会识别,所以使用了第2种方式。

阅读全文 »

hexo 搭建 github pages 问题

发表于 2014-05-31   |   分类于 hexo   |     |   阅读次数

由于自己想搭建一个免费的博客,所以找到了万能的github,但在搭建的过程中遇到了几个小问题,所以记下来
基本搭建的方法都是参考于利用github搭建博客
这个博主已经写的很全了,搭建的过程就不一一提了说下遇到的问题

  1. hexo上传后博客还是官方的
    建立了github pages的项目,并且使用了官方的建立建好了一个博客,官方默认会在master分支上开出一个gh-pages分支,然后查了官网资料说所有的内容都是显示gh-pages分支上的,但是我用hexo却传不到gh-pages分支上,并且传到了master分支内容也不会显示,后来找到原因是因为我建立的项目名字不是以#你的github帐户.github.io#命名的,所以会使hexo的上传程序传到master分支上也不会起作用,把项目名修改之后就可以了。
    阅读全文 »

我为什么开始写博客

发表于 2014-05-31   |     |   阅读次数

最近参加了几场印象笔记的活动,听大家分享了一些自己坚持做的事,由于最近自己也在整理自己琐碎的事情,感觉虽然自己在技术上一直在积累但那都是自己的眼光和认识,如果与大家分享出来之后这样可以帮助自己有很大的提升。
最近这一年来,在新的公司里自己有了很大的成长,但是发现这些成长记录其实只记录在我的印象笔记里或者是自己的经验上,并没有真正的分享出来,以后在这里记录自己遇到的问题以及一些正在学的技术,自己的理解和学习记录。
希望在这里可以记录下自己技术成长的轨迹,以便和大家共同成长。

12
klaus

klaus

java | 架构 |

20 日志
4 分类
27 标签
RSS
GitHub
Links
  • 龙哥的小站
© 2014 - 2017 klaus
由 Hexo 强力驱动
主题 - NexT.Muse