源码

MyBatis源码解读-SqlSessionFactory

孤街浪徒 提交于 2020-03-02 08:59:53
0.从配置文件开始 要了解MyBatis的的源码,我们可以看看我们平时在Spring容器中使用MyBatis的配置文件,找到最基本的入口. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:configuration.xml"></property> <property name="mapperLocations" value="classpath:com/sage/mybatis/mapper/*.xml"/> <property name="typeAliasesPackage" value="com.sage.entity" /> </bean> Spring会调用SqlSessionFactoryBean这个工厂bean的无参构造函数,同时注入dataSource,Mapper文件的路径,进行sqlSessionFactory的初始化.这里面的SqlSessionFactoryBean,使用的是mybatis-spring包. 1.创建SqlSessionFactory

redis研究日志

白昼怎懂夜的黑 提交于 2020-03-02 08:13:16
2020年3月1日的感悟 redis的开发模式是特性追加,当需要一个新特性的时候,就新加一个.h和.c文件。 然后把必要的代码插入的之前所写的代码当中,比如特别能够看出意思的文件: bio.h bio.c expire.h expire.c aof.h aof.c 等等 这样的写法我感觉还是比较乱的,因为不需要重新整理之前的代码。 3月2日到3月8日计划 计划研究redis的sentinel模式,通过源码层面来理解哨兵模式。 涉及到的主要源码文件是sentinel.c 这个文件有4000行,需要慢慢理解吸收消化!!! 来源: https://www.cnblogs.com/weiguangyue/p/12393703.html

java.lang包源码阅读之一:类目综述以及源码阅读第一个类Boolean

爷,独闯天下 提交于 2020-03-02 07:42:27
java.lang包下直属类,从Java Platform Standard Edition 7 Documentation中一查便知: **Interfaces** Appendable AutoCloseable CharSequence Cloneable Comparable Iterable Readable Runnable Thread.UncaughtExceptionHandler **Classes** Boolean Byte Character Character.Subset Character.UnicodeBlock Class ClassLoader ClassValue Compiler Double Enum Float InheritableThreadLocal Integer Long Math Number Object Package Process ProcessBuilder ProcessBuilder.Redirect Runtime RuntimePermission SecurityManager Short StackTraceElement StrictMath String StringBuffer StringBuilder System Thread ThreadGroup ThreadLocal

Spring源码学习笔记(7)

孤者浪人 提交于 2020-03-02 06:25:55
Spring源码学习笔记(七)    前言--     最近花了些时间看了《Spring源码深度解析》这本书,算是入门了Spring的源码吧。打算写下系列文章,回忆一下书的内容,总结代码的运行流程。推荐那些和我一样没接触过SSH框架源码又想学习的,阅读郝佳编著的《Spring源码深度解析》这本书,会是个很好的入门       写前说句话, 开篇不尴尬 ---- 接下的这一篇当中, 我们将来回顾 Spring 中 AOP 功能的实现流程。 早上精力充沛, 开始新一天的学习 \(^o^)/~        接触过 Spring 框架的同学都知道, Spring 中使用的两个功能无非就是依赖注入的 DI 以及面向切面编程的 AOP, 其中 AOP 又包括了动态 AOP 和静态 AOP 两个方向。 首先,我们来看看 Spring 是如何实现我们最常接触到的动态 AOP 的。 动态AOP     启用 Spring 的 AOP 功能, 需要我们在 Spring 的配置文件中添加 <aop:aspectj-autoproxy/> 。我们将从这个配置为入口看看 AOP 的实现过程。      在 AopNamespaceHandler 中, 有一下初始化代码: 1 public class AopNamespaceHandler extends NamespaceHandlerSupport {

Google Chrome Source Code 源码下载

一曲冷凌霜 提交于 2020-03-02 04:06:59
Goolgle 于 2008.09.02 发布了浏览器 Google Chrome 。Google Chrome 使用的 内核源码 来自 开源浏览器引擎 WebKit Open Source Project 。Google Chrome 的源码,同样亦是开源的。在 Google 的中文官方 Blog - Google 黑板报 中,提到: QUOTE: 我们对很多开发开源项目的人心存感激,我们承诺会沿着前人的路继续前行。 我们借鉴了一些源自 Apple WebKit 和 Mozilla Firefox 的技术,怀着同样开源的精神,谷歌浏览器所有的代码全部开源。我们希望能与整个业界合作从而促进互联网的健康发展。   目前 Google Chrome 源码 已经公布了,有兴趣的 软件开发者 、 程序员 可以从 chromium.org 服务器使用 SVN checkout Google Chrome Source Code ,自定义自己的浏览器。 Google Chrome 源码下载地址 (Google Chrome Source Code Download)   地址: http://www.xiaohui.com/dev/vccool/internet/google-chrome-source-code-download.htm   1. Google Chrome 源码 SVN

SocketServer源码学习(二)

走远了吗. 提交于 2020-03-02 02:59:59
SocketServer 中非常重要的两个基类就是:BaseServer 和 BaseRequestHandler 在SocketServer 中也提供了对TCP以及UDP的高级封装,这次我们主要通过分析关于TCP的处理逻辑来对SocketServer模块进行一个很好的理解和学习 TCPServer TCPServer 继承了BaseServer,初始化的时候,进行了socket套接字的创建。 def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True): """Constructor. May be extended, do not override.""" BaseServer.__init__(self, server_address, RequestHandlerClass) self.socket = socket.socket(self.address_family, self.socket_type) if bind_and_activate: try: self.server_bind() self.server_activate() except: self.server_close() raise 在这里我们看到了我们非常熟悉的关于socket的创建的内容:

eclipse查看class文件

岁酱吖の 提交于 2020-03-02 02:32:19
在使用第三方jar包的时候没有源码的时候,报错是一件头疼的事情,没有源码不知道问题出在哪里。 现在可以通过jad集成到eclipse中,用来debug 的时候查看源码。 一:下载插件(转) JAD : http://www.kpdus.com/jad.html#download (选择与操作系统对应的版本)网页貌似打不开了,这里给大家上传了一份,免费供大家下载使用 http://download.csdn.net/detail/sushengmiyan/6885693 JadClipse: http://sourceforge.net/project/showfiles.php?group_id=40205 (选择Eclipse支持的版本) 在上面的下载中也保护了JADeclipse插件,就是net.sf.jadclipse_3.3.0.jar 二:安装 1,将下载到的JAD反编译工具解压,将得到的jad.exe放置到系统某一目录下,如C:/Java/jre1.5.0_07/bin;(位置可以随便放,以后配置要用,推荐放到java目录下) 2,将下载到的JadClipse压缩包net.sf.jadclipse_3.3.0.jar(对应你刚才下载的版本)放置到Eclipse目录下plugins内(该目录是专门放置插件的,你也可以自己建立个文件夹来放置插件,但要记住路径,后面需要配置)

Eclipse中查看没有源码的Class文件的方法

安稳与你 提交于 2020-03-02 02:31:50
本文地址: http://blog.csdn.net/sushengmiyan/article/details/18798473 本文作者:sushengmiyan 我们在使用Eclipse的时候,经常是会使用别人的Jar包,然后,通常情况下,我们是不会得到他们的源码的,出发是个开源项目。但是有时候很多异常会从jar包里爆出来,我们没有源代码,就无法去查找具体原因,那么有没有一个工具可以让我们直接就像自己写的代码一样在Eclipse中按住Ctrl+鼠标,就直接查看源码呢? 对,这个工具就是JAD编译器。 看看如何让使用吧!~ 一:下载插件 JAD : http://www.kpdus.com/jad.html#download (选择与操作系统对应的版本)网页貌似打不开了,这里给大家上传了一份,免费供大家下载使用 http://download.csdn.net/detail/sushengmiyan/6885693 JadClipse: http://sourceforge.net/project/showfiles.php?group_id=40205 (选择Eclipse支持的版本) 在上面的下载中也保护了JADeclipse插件,就是net.sf.jadclipse_3.3.0.jar 二:安装 1,将下载到的JAD反编译工具解压,将得到的jad.exe放置到系统某一目录下

Eclipse中查看没有源码的Class文件的方法

一曲冷凌霜 提交于 2020-03-02 02:31:09
本文地址: http://blog.csdn.net/sushengmiyan/article/details/18798473 本文作者:sushengmiyan 我们在使用Eclipse的时候,经常是会使用别人的Jar包,然后,通常情况下,我们是不会得到他们的源码的,出发是个开源项目。但是有时候很多异常会从jar包里爆出来,我们没有源代码,就无法去查找具体原因,那么有没有一个工具可以让我们直接就像自己写的代码一样在Eclipse中按住Ctrl+鼠标,就直接查看源码呢? 对,这个工具就是JAD编译器。 看看如何让使用吧!~ 一:下载插件 JAD : http://www.kpdus.com/jad.html#download (选择与操作系统对应的版本)网页貌似打不开了,这里给大家上传了一份,免费供大家下载使用 http://download.csdn.net/detail/sushengmiyan/6885693 JadClipse: http://sourceforge.net/project/showfiles.php?group_id=40205 (选择Eclipse支持的版本) 在上面的下载中也保护了JADeclipse插件,就是net.sf.jadclipse_3.3.0.jar 二:安装 1,将下载到的JAD反编译工具解压,将得到的jad.exe放置到系统某一目录下

Map,Map.Entry<K,V>源码分析

Deadly 提交于 2020-03-02 02:15:15
一、简单介绍。 1、Map是java中的接口,Map.Entry是Map的一个内部接口。 2、Map提供了一些常用方法,如keySet()、entrySet()等方法 ,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。 3、Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。 二、源码分析。 Map源码(包含Entry的定义): package java.util; public interface Map<K,V> { int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(Object key); V put(K key, V value); V remove(Object key); void clear(); Set<K> keySet(); Collection<V> values(); Set<Map.Entry<K, V>> entrySet(); interface Entry<K,V>