随笔 - 1685  文章 - 624 评论 - 449 trackbacks - 0

随笔分类 - spring及其源码分析专辑
仅为业余分析研究spring之用
让你的spring-boot应用日志随心所欲--spring boot日志深入分析
摘要:1.spring boot日志概述 spring boot使用Commons Logging作为内部的日志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配置。如果使用了spring boot的Starters,那么默认会使用Logback用于记录日志。 阅读全文
posted @ 2019-06-10 19:05 一天不进步,就是退步 阅读 (1015) | 评论 (0) 编辑
spring面试问题与答案集锦
摘要:我收集了一些spring面试的问题,这些问题可能会在下一次技术面试中遇到。对于其他spring模块,我将单独分享面试问题和答案。 如果你能将在以前面试中碰到的,且你认为这些应该是一个有spring经验的人可能被问到的问题发给我,我将不胜感激! 我将把它们添加到这个列表中。这将对其他学习者也会有很大的 阅读全文
posted @ 2019-04-02 16:18 一天不进步,就是退步 阅读 (3498) | 评论 (0) 编辑
阅读源代码的一点小技巧
摘要:1. 在跟踪源代码的时候,要追着源代码打断点,不然不知道每一步执行到那里。 有时候有的方法被多个地方调用,这时无法确认走哪个方法,改怎么办呢? 可以提前通过打调用栈的方式把整个流程弄通,然后在关键点打断点,这样效率更高。 2.打印方法的调用链(堆栈)两种方式: 正常方式 打印结果 异常方式 举例: 阅读全文
posted @ 2019-03-25 16:25 一天不进步,就是退步 阅读 (232) | 评论 (0) 编辑
spring-session用redis实现session共享实践
摘要:什么是spring session? 简单一句话,spring session帮你管理用户的session信息。 为什么使用spring session? 通常情况下,Tomcat、Jetty等Servlet容器,会默认将Session保存在内存中。如果是单个服务器实例的应用,将Session保存在 阅读全文
posted @ 2019-02-12 10:10 一天不进步,就是退步 阅读 (615) | 评论 (0) 编辑
spring-session用mysql实现session共享实践
摘要:前段时间,写了篇<spring-session-data-redis解决session共享的问题>文章,介绍了spring-session使用redis存储实现session共享的内部机制, 遇到很多人提问到jdbc的实现或者为什么只有理论没有实践?索性就实践一下jdbc方式。 1.spring-s 阅读全文
posted @ 2019-02-11 15:30 一天不进步,就是退步 阅读 (2608) | 评论 (0) 编辑
开源任务调度平台elastic-job-lite源码解析
摘要:前段时间写过一遍文章<一文揭秘定时任务调度框架quartz>,有读者建议我再讲讲elastic-job这个任务调度框架,年末没有那么忙,就来学习一下elastic-job。 首先一点,elastic-job基于quartz,理解quartz的运行机制有助于对elastic-job的快速理解。 首先看 阅读全文
posted @ 2019-02-01 15:29 一天不进步,就是退步 阅读 (1151) | 评论 (0) 编辑
一文揭秘定时任务调度框架quartz
摘要:之前写过quartz或者引用过quartz的一些文章,有很多人给我发消息问quartz的相关问题, quartz 报错:java.lang.classNotFoundException quartz源码分析之深刻理解job,sheduler,calendar,trigger及listener之间的关 阅读全文
posted @ 2019-01-28 16:49 一天不进步,就是退步 阅读 (1521) | 评论 (0) 编辑
如何做自己的服务监控?spring boot 2.x服务监控揭秘
摘要:Actuator是spring boot项目中非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful api请求来监管、审计、收集应用的运行情况,针对微服务而言它是必不可少的一个环节。 spring 2.x actuator相对于spring 1.x actuator做了较大的改变。 阅读全文
posted @ 2019-01-22 17:28 一天不进步,就是退步 阅读 (1006) | 评论 (0) 编辑
web框架的前生今世--从servlet到spring mvc到spring boot
摘要:背景 上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式随之火爆发展起来。最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。 但是可以想象:根据用户请求的不同动态的处理并返回资源是理所当然必须的要求。 servlet的定义 Servl 阅读全文
posted @ 2019-01-21 17:53 一天不进步,就是退步 阅读 (937) | 评论 (0) 编辑
如何做自己的服务监控?spring boot 1.x服务监控揭秘
摘要:1.准备 下载可运行程序:http://www.mkyong.com/spring-boot/spring-boot-hello-world-example-jsp/ 2.添加服务监控依赖 3.启动spring boot项目 console 截图如下: 4.servlet和filter 4.1 使用 阅读全文
posted @ 2019-01-16 15:01 一天不进步,就是退步 阅读 (436) | 评论 (0) 编辑
spring-session-data-redis解决session共享的问题
摘要:分布式系统要做到用户友好,需要对用户的session进行存储,存储的方式有以下几种: 本地缓存 数据库 文件 缓存服务器 可以看一些不同方案的优缺点 1.本地机器或者本地缓存。优点:速度快 缺点:服务宕机后重启用户信息丢失,用户不优好 2.数据库。优点:技术栈简单 缺点:速度慢 3.文件。优点:技术 阅读全文
posted @ 2018-12-25 11:14 一天不进步,就是退步 阅读 (564) | 评论 (0) 编辑
Spring @Resource、@Autowired、@Qualifier区别
摘要:@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入; @Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用; 阅读全文
posted @ 2018-05-02 13:54 一天不进步,就是退步 阅读 (225) | 评论 (0) 编辑
Quartz框架多个trigger任务执行出现漏执行的问题分析--转
摘要:原文地址:http://blog.csdn.net/dailywater/article/details/51470779 一、问题描述 使用Quartz配置定时任务,配置了超过10个定时任务,这些定时任务配置的触发时间都是5分钟执行一次,实际运行时,发现总有几个定时任务不能执行到。 二、示例程序  阅读全文
posted @ 2017-06-15 13:35 一天不进步,就是退步 阅读 (7221) | 评论 (0) 编辑
spring-data-redis 使用过程中需要注意的地方
摘要:1.序列化问题 2. 设置一个键值及其过期时间 错误的设置方式: 正确的设置方式: 3.模糊删除 错误的方式: 正确的方式: 参考文献: 【1】http://www.cnblogs.com/shihaiming/p/6019795.html 【2】 阅读全文
posted @ 2017-04-24 11:45 一天不进步,就是退步 阅读 (396) | 评论 (0) 编辑
Spring 4 CustomEditorConfigurer Example--转
摘要:原文地址:http://howtodoinjava.com/spring/spring-core/registering-built-in-property-editors-in-spring-4-customeditorconfigurer-example/ A property editor i 阅读全文
posted @ 2017-04-10 14:34 一天不进步,就是退步 阅读 (558) | 评论 (0) 编辑
spring之DelegatingFilterProxy
摘要:DelegatingFilterProxy是一个标准servlet Filter的代理,代理实现了Filter接口的spring管理的Bean。支持一个在web.xml的init-param定义的"targetBeanName" filter,在spring applicationContext中指 阅读全文
posted @ 2017-03-06 18:59 一天不进步,就是退步 阅读 (8517) | 评论 (0) 编辑
CORS with Spring MVC--转
摘要:原文地址:http://dontpanic.42.nl/2015/04/cors-with-spring-mvc.html CORS with Spring MVC In this blog post I will explain how to implement Cross-Origin Reso 阅读全文
posted @ 2017-03-06 17:36 一天不进步,就是退步 阅读 (312) | 评论 (0) 编辑
CORS support in Spring Framework--官方
摘要:原文地址:https://spring.io/blog/2015/06/08/cors-support-in-spring-framework For security reasons, browsers prohibit AJAX calls to resources residing outsi 阅读全文
posted @ 2017-03-06 17:18 一天不进步,就是退步 阅读 (384) | 评论 (0) 编辑
Spring security工作流程及集成
摘要:A user enters their username and password into a login screen and clicks a login button. The entered information is placed into an object called Authe 阅读全文
posted @ 2017-03-06 12:22 一天不进步,就是退步 阅读 (2308) | 评论 (0) 编辑
是时候抛弃web.xml了?
摘要:你是否再为配置文件web.xml容易出错而烦恼?是否为web.xml文件存放位置而不知所措?是否为web.xml为什么要这样配?怎么才能更好的配置web.xml而烦恼?那么一种新的方式出现了: spring提供了支持servlet 3+以上的编程方式,它可以替换或者和web.xml共存的方式工作。其 阅读全文
posted @ 2017-03-02 16:02 一天不进步,就是退步 阅读 (7310) | 评论 (0) 编辑
Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler
摘要:原文地址:https://martinfowler.com/articles/injection.html n the Java community there's been a rush of lightweight containers that help to assemble compone 阅读全文
posted @ 2017-01-17 09:41 一天不进步,就是退步 阅读 (220) | 评论 (0) 编辑
spring源码分析之@Conditional
摘要:根源在AnnotationConfigApplicationContext和AnnotationConfigWebApplicationContext,以AnnotationConfigApplicationContext为例: 1.构造方法 一种是注解类方式,一种是扫描方式,殊途同归。以注解类来分 阅读全文
posted @ 2017-01-11 17:45 一天不进步,就是退步 阅读 (1367) | 评论 (2) 编辑
Spring Enable annotation – writing a custom Enable annotation
摘要:原文地址:https://www.javacodegeeks.com/2015/04/spring-enable-annotation-writing-a-custom-enable-annotation.html Spring provides a range of annotations wit 阅读全文
posted @ 2017-01-03 17:45 一天不进步,就是退步 阅读 (286) | 评论 (0) 编辑
spring源码分析之@ImportSelector、@Import、ImportResource工作原理分析
摘要:1. @importSelector定义: 实现线索: 具体代码实现: 2、@Import和@ImportResource的实现如下: ConfigurationClassParser.java 3.三种方式: ConfigurationClassParser.java 阅读全文
posted @ 2017-01-03 17:21 一天不进步,就是退步 阅读 (4593) | 评论 (0) 编辑
How those spring enable annotations work--转
摘要:原文地址:http://blog.fawnanddoug.com/2012/08/how-those-spring-enable-annotations-work.html Spring's Java Config is a great way to configure your applicati 阅读全文
posted @ 2017-01-03 16:13 一天不进步,就是退步 阅读 (117) | 评论 (0) 编辑
RXJava by Example--转
摘要:原文地址:https://www.infoq.com/articles/rxjava-by-example Key takeaways Reactive programming is a specification for dealing with asynchronous streams of d 阅读全文
posted @ 2016-12-14 14:14 一天不进步,就是退步 阅读 (205) | 评论 (0) 编辑
Reactor by Example--转
摘要:原文地址:https://www.infoq.com/articles/reactor-by-example Key takeaways Reactor is a reactive streams library targeting Java 8 and providing an Rx-confor 阅读全文
posted @ 2016-12-14 14:07 一天不进步,就是退步 阅读 (587) | 评论 (0) 编辑
spring源码分析之spring-core总结篇
摘要:1.spring-core概览 spring-core是spring框架的基石,它为spring框架提供了基础的支持。 spring-core从源码上看,分为6个package,分别是asm,cglib,core,lang,objenesis和util。 1.1 asm 关于asm的内幕参见博客: 阅读全文
posted @ 2016-11-22 12:13 一天不进步,就是退步 阅读 (9982) | 评论 (1) 编辑
spring @import和@importResource
摘要:@ImportResource in spring imports application xml in configuration file which is using @Configuration. All the beans and other properties defined in a 阅读全文
posted @ 2016-11-03 16:47 一天不进步,就是退步 阅读 (1015) | 评论 (0) 编辑
spring控制并发数的工具类ConcurrencyThrottleSupport和ConcurrencyThrottleInterceptor
摘要:官方文档: beforeAccess()实现 afterAccess()实现 ConcurrencyThrottleSupport是个抽象类,其具体的实现类ConcurrencyThrottleInterceptor 阅读全文
posted @ 2016-10-25 21:08 一天不进步,就是退步 阅读 (1164) | 评论 (2) 编辑
spring源码分析之<context:property-placeholder/>和<property-override/>
摘要:在一个spring xml配置文件中,NamespaceHandler是DefaultBeanDefinitionDocumentReader用来处理自定义命名空间的基础接口。其层次结构如下: <context>为开头的标签统一在ContextNamespaceHandler中进行解析,Contex 阅读全文
posted @ 2016-08-09 08:41 一天不进步,就是退步 阅读 (3356) | 评论 (0) 编辑
6-tips-for-managing-property-files-with-spring--转
摘要:原文地址:http://www.summa.com/blog/2009/04/20/6-tips-for-managing-property-files-with-spring What could be simpler than property files? In an enterprise a 阅读全文
posted @ 2016-08-09 08:36 一天不进步,就是退步 阅读 (201) | 评论 (0) 编辑
SPRING多个占位符配置文件解析源码研究--转
摘要:原文地址:http://www.cnphp6.com/archives/85639 Spring配置文件: settings.properties conf.properties 测试类: 执行上述测试类 报错: 为什么只能解析出第一个property-placeholder配置中的key?第二个p 阅读全文
posted @ 2016-08-04 09:38 一天不进步,就是退步 阅读 (1436) | 评论 (0) 编辑
Spring对事务管理的支持的发展历程--转
摘要:原文地址:http://www.iteye.com/topic/1123049 1、问题 Java代码 Connection conn = DataSourceUtils.getConnection(); //开启事务 conn.setAutoCommit(false); try { Object  阅读全文
posted @ 2016-08-03 15:23 一天不进步,就是退步 阅读 (307) | 评论 (0) 编辑
AOP的实现机制--转
摘要:原文地址:http://www.iteye.com/topic/1116696 1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP。 在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 类别 机制 原理 优点 阅读全文
posted @ 2016-08-03 13:47 一天不进步,就是退步 阅读 (563) | 评论 (0) 编辑
spring源码分析之cache注解
摘要:Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。 阅读全文
posted @ 2016-08-03 08:35 一天不进步,就是退步 阅读 (6185) | 评论 (0) 编辑
spring源码分析之context
摘要:重点类: 1、ApplicationContext是核心接口,它为一个应用提供了环境配置。当应用在运行时ApplicationContext是只读的,但你可以在该接口的实现中来支持reload功能。 定义 特点: 提供了一个bean工厂方法来访问应用组件,通过继承org.springframewor 阅读全文
posted @ 2016-08-02 08:35 一天不进步,就是退步 阅读 (6086) | 评论 (0) 编辑
spring源码分析之freemarker整合
摘要:FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 FreeMarker是免费的,基于Apache许可证2.0版本发 阅读全文
posted @ 2016-07-28 10:12 一天不进步,就是退步 阅读 (5387) | 评论 (0) 编辑
spring源码分析之cache demo
摘要:spring提供了对echache、guava、jcache的支持,先看一个echache的示例: 其中 echache.xml文件如下: 缓存的使用: 参考文献: 【1】http://www.mkyong.com/spring/spring-caching-and-ehcache-example/ 阅读全文
posted @ 2016-07-22 16:26 一天不进步,就是退步 阅读 (1543) | 评论 (0) 编辑
Spring 4 + Reactor Integration Example--转
摘要:原文地址:http://www.concretepage.com/spring-4/spring-4-reactor-integration-example Reactor is a framework to make event driven programming much easier. Th 阅读全文
posted @ 2016-07-21 09:25 一天不进步,就是退步 阅读 (1742) | 评论 (0) 编辑
@Async in Spring--转
摘要:原文地址:http://www.baeldung.com/spring-async 1. Overview In this article we’ll explore the asynchronous execution support in Spring – and the @Async anno 阅读全文
posted @ 2016-07-19 17:32 一天不进步,就是退步 阅读 (1170) | 评论 (0) 编辑
spring源码分析之定时任务概述
摘要:Spring框架提供了TaskExcutor的异步执行和TashScheduler的任务定时执行接口,同样spring也提供了线程池或者CommonJ的代理。 TaskExecutor的类型 SimpleAsyncTaskExecutor,没有复用线程,当触发时仅仅启动一个新的线程。支持并发。 Sy 阅读全文
posted @ 2016-07-19 08:53 一天不进步,就是退步 阅读 (2028) | 评论 (0) 编辑
spring源码分析之定时任务Scheduled注解
摘要:1. @Scheduled 可以将一个方法标识为可定时执行的。但必须指明cron(),fixedDelay(),或者fixedRate()属性。 注解的方法必须是无输入参数并返回空类型void的。 @Scheduled注解由注册的ScheduledAnnotationBeanPostProcesso 阅读全文
posted @ 2016-07-18 09:32 一天不进步,就是退步 阅读 (12327) | 评论 (0) 编辑
spring源码分析之spring-core-env
摘要:看一下源码整体: 抓住主要点,Environment、PropertyResolver、PropertySource,其结构如下: 其中, Environment:Interface representing the environment in which the current applicat 阅读全文
posted @ 2016-07-15 15:25 一天不进步,就是退步 阅读 (223) | 评论 (0) 编辑
spring websocket源码分析续Handler的使用
摘要:1. handler的定义 spring websocket支持的消息有以下几种: 对消息的处理就使用了Handler模式,抽象handler类AbstractWebSocketHandler.java 具体实现handler类BinaryWebSocketHandler(为例,其它略) 2.han 阅读全文
posted @ 2016-07-15 10:24 一天不进步,就是退步 阅读 (8768) | 评论 (0) 编辑
spring源码分析之spring-core-io
摘要:1. 看一下源码整体结构: 抓住主要点Resource、ResourceLoader和ResourceEditor 其中Resource作用 Interface for a resource descriptor that abstracts from the actual type of unde 阅读全文
posted @ 2016-07-11 16:54 一天不进步,就是退步 阅读 (377) | 评论 (0) 编辑
cglib源码分析--转
摘要:原文地址:http://www.iteye.com/topic/799827 背景 前段时间在工作中,包括一些代码阅读过程中,spring aop经常性的会看到cglib中的相关内容,包括BeanCopier,BulkBean,Enancher等内容,以前虽大致知道一些内容,原理是通过bytecod 阅读全文
posted @ 2016-07-08 17:22 一天不进步,就是退步 阅读 (2022) | 评论 (0) 编辑
spring源码分析之spring-core asm概述
摘要:ASM是什么? ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify existing classes or dynamically generate cla 阅读全文
posted @ 2016-07-08 09:02 一天不进步,就是退步 阅读 (5394) | 评论 (0) 编辑
spring源码分析之<context:component-scan/>vs<annotation-config/>
摘要:1.<context:annotation-config/> xsd中说明: 解析发生在在解析xml文件中,解析类为:AnnotationConfigBeanDefinitionParser.java 2.<context:component-scan/> 注意:红色的一行中,说明<context: 阅读全文
posted @ 2016-07-06 10:42 一天不进步,就是退步 阅读 (1545) | 评论 (0) 编辑
annotation-config vs component-scan – Spring Core--转
摘要:原文地址:http://techidiocy.com/annotation-config-vs-component-scan-spring-core/ <context:annotation-config> and <context:component-scan> are two of the mo 阅读全文
posted @ 2016-07-06 09:59 一天不进步,就是退步 阅读 (142) | 评论 (0) 编辑
spring源码分析之spring注解@Aspect是如何工作的?
摘要:1、@Aspect 在xml定义:<aop:aspectj-autoproxy />,其定义在http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 1.1 注册 的继承关系如下: 1.2 解析过程 AspectJAutoProxyB 阅读全文
posted @ 2016-07-05 18:20 一天不进步,就是退步 阅读 (3178) | 评论 (0) 编辑
Spring之LoadTimeWeaver——一个需求引发的思考---转
摘要:原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引发的思考 最近有个需求——记录应用中某些接口被调用的轨迹,说白了,记录下入参、出参等即可。 我选用A 阅读全文
posted @ 2016-07-01 16:43 一天不进步,就是退步 阅读 (1504) | 评论 (0) 编辑
spring 源码分析之BeanPostProcessor
摘要:1.官方解答: Factory hook that allows for custom modification of new bean instances, e.g. checking for marker interfaces or wrapping them with proxies. App 阅读全文
posted @ 2016-07-01 16:37 一天不进步,就是退步 阅读 (2778) | 评论 (0) 编辑
spring bean生命周期管理--转
摘要:Life Cycle Management of a Spring Bean 原文地址:http://javabeat.net/life-cycle-management-of-a-spring-bean/ 1) Introduction This article would brief about 阅读全文
posted @ 2016-07-01 14:00 一天不进步,就是退步 阅读 (877) | 评论 (1) 编辑
spring源码分析之spring jmx
摘要:JMX架构定义: https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/overview/architecture.html Architecture Outline JMX technology is defined by two c 阅读全文
posted @ 2016-06-17 08:30 一天不进步,就是退步 阅读 (1908) | 评论 (0) 编辑
spring注解源码分析--how does autowired works?
摘要:1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能。我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行debug。 2. Autowired的定义及作用 作用:Marks a constructor, f 阅读全文
posted @ 2016-06-12 11:18 一天不进步,就是退步 阅读 (2613) | 评论 (1) 编辑
How does Spring @Transactional Really Work?--转
摘要:原文地址:http://blog.jhades.org/how-does-spring-transactional-really-work/ In this post we will do a deep dive into Spring transaction management. We will 阅读全文
posted @ 2016-06-08 16:01 一天不进步,就是退步 阅读 (269) | 评论 (0) 编辑
Spring Annotation Processing: How It Works--转
摘要:找的好辛苦呀 原文地址:https://dzone.com/articles/spring-annotation-processing-how-it-works If you see an annotation, there must be some code somewhere to proces 阅读全文
posted @ 2016-06-08 15:01 一天不进步,就是退步 阅读 (290) | 评论 (0) 编辑
Example of ApplicationContextAware in Spring--转
摘要:原文地址:http://www.concretepage.com/spring/example_applicationcontextaware_spring In spring we can get ApplicationContext anywhere in our code with the h 阅读全文
posted @ 2016-06-03 10:47 一天不进步,就是退步 阅读 (194) | 评论 (0) 编辑
Example of BeanFactoryAware in Spring--转
摘要:原文地址:http://www.concretepage.com/spring/example_beanfactoryaware_spring If a bean in spring implements BeanFactoryAware then that bean has to implemen 阅读全文
posted @ 2016-06-03 10:30 一天不进步,就是退步 阅读 (149) | 评论 (0) 编辑
spring aop源码实现分析
摘要:1. 先分析Advice before执行Cglib2AopProxy的intercept方法: 第一步:获取target 第二步:获取拦截器和advice,返回定义好的org.springframework.aop.framework.adapter.MethodBeforeAdviceInter 阅读全文
posted @ 2016-05-30 10:19 一天不进步,就是退步 阅读 (4113) | 评论 (0) 编辑
基于@AspectJ配置Spring AOP之一--转
摘要:原文地址:http://tech.it168.com/j/2007-08-30/200708302209432.shtml 概述 在低版本Spring中定义一个切面是比较麻烦的,需要实现特定的接口,并进行一些较为复杂的配置,低版本Spring AOP的配置是被批评最多的地方。Spring听取这方面的 阅读全文
posted @ 2016-05-27 10:20 一天不进步,就是退步 阅读 (951) | 评论 (0) 编辑
spring remoting源码分析--Hessian分析
摘要:1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块。 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian远程服务调用过程 1.2.1 客户端 BurlapProxyFactoryBean,BurlapCl 阅读全文
posted @ 2016-05-18 10:58 一天不进步,就是退步 阅读 (1054) | 评论 (0) 编辑
Hessian 原理分析--转
摘要:原文地址:http://blog.csdn.net/zhtang0526/article/details/4788879 一. 远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http 、 tcp 、 ud 阅读全文
posted @ 2016-05-13 09:41 一天不进步,就是退步 阅读 (180) | 评论 (0) 编辑
Spring Remoting: Remote Method Invocation (RMI)--转
摘要:原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-rmi.jsp Concept Overview Spring provides four ways to develop remote services. Remot 阅读全文
posted @ 2016-05-11 13:00 一天不进步,就是退步 阅读 (175) | 评论 (0) 编辑
Spring Remoting: HTTP Invoker--转
摘要:原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-http-invoker.jsp Concept Overview In the earlier articles we saw an introduction to 阅读全文
posted @ 2016-05-11 09:47 一天不进步,就是退步 阅读 (595) | 评论 (0) 编辑
Spring Remoting: Burlap--转
摘要:原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-burlap.jsp Concept Overview In the earlier tutorials we saw an introduction to Sprin 阅读全文
posted @ 2016-05-11 09:44 一天不进步,就是退步 阅读 (528) | 评论 (0) 编辑
Spring Remoting: Hessian--转
摘要:原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-hessian.jsp Concept Overview The previous tutorial presents an overview of spring re 阅读全文
posted @ 2016-05-11 09:41 一天不进步,就是退步 阅读 (357) | 评论 (0) 编辑
spring源码分析之spring-web remoting模块概况及基本概念
摘要:spring-web总体分为三部分:caucho、httpinvoker、jaxws,其总体构造图如下: uml结构: 先看看网上搜索到的上述实现的原理吧:Spring RMI,Hessian/Burlap,HttpInvoker的区别 http://blog.csdn.net/arkblue/ar 阅读全文
posted @ 2016-05-11 08:46 一天不进步,就是退步 阅读 (1760) | 评论 (0) 编辑
spring websocket源码分析
摘要:什么是websocket? 摘录于wiki【1】: WebSocket is a protocol providing full-duplex communication channels over a single TCP connection. The WebSocket protocol wa 阅读全文
posted @ 2016-03-28 19:29 一天不进步,就是退步 阅读 (5949) | 评论 (2) 编辑
spring jdbctemplate源码跟踪
摘要:闲着没事,看看源码也是一种乐趣! java操作数据库的基本步骤都是类似的: 1. 建立数据库连接 2. 创建Connection 3. 创建statement或者preparedStateement 4. 执行sql,返回ResultSet 5. 关闭resultSet 5.关闭statement 阅读全文
posted @ 2015-06-07 15:46 一天不进步,就是退步 阅读 (5618) | 评论 (0) 编辑
spring transaction源码分析--事务架构
摘要:1. 引言 事务特性 事务是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性。事务通常是以begin transaction开始,以commit或rollback结束。Commint 阅读全文
posted @ 2015-05-08 08:26 一天不进步,就是退步 阅读 (30671) | 评论 (4) 编辑
spring源码分析之spring-jdbc模块详解
摘要:0 概述 Spring将替我们完成所有使用JDBC API进行开发的单调乏味的、底层细节处理工作。下表描述了哪些是spring帮助我们做好的,哪些是我们要做的。 工作模式 使用Spring进行基本的JDBC访问数据库有多种选择。Spring至少提供了三种不同的工作模式:JdbcTemplate, 一 阅读全文
posted @ 2015-05-06 08:48 一天不进步,就是退步 阅读 (11703) | 评论 (1) 编辑
spring源码分析之spring-jms模块详解
摘要:0 概述 spring提供了一个jms集成框架,这个框架如spring 集成jdbc api一样,简化了jms api的使用。 jms可以简单的分成两个功能区,消息的生产和消息的消费。JmsTemplate类用来生成消息和同步接受消息。和其它java ee的消息驱动样式一样,对异步消息,spring 阅读全文
posted @ 2015-04-27 11:42 一天不进步,就是退步 阅读 (16827) | 评论 (2) 编辑
spring源码分析之spring-messaging模块详解
摘要:0 概述 spring-messaging模块为集成messaging api和消息协议提供支持。 其代码结构为: 其中base定义了消息Message(MessageHeader和body)、消息处理MessageHandler、发送消息MessageChannel。 1. base模块 其结构如 阅读全文
posted @ 2015-04-23 10:50 一天不进步,就是退步 阅读 (17981) | 评论 (0) 编辑
spring源码分析之spring-web web模块分析
摘要:0 概述 spring-web的web模块是更高一层的抽象,它封装了快速开发spring-web需要的基础组件。其结构如下: 1. 初始化Initializer部分 1.1 Servlet3.0 的ServletContainerInitializer用来支持基于代码的servlet容器配置,它使用 阅读全文
posted @ 2015-04-21 11:55 一天不进步,就是退步 阅读 (5775) | 评论 (0) 编辑
spring4.x注解概述
摘要:1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能,因项目中用到不少注解,因此下定决心,经spring4.x中涉及到的注解罗列出来,供查询使用。 2. spring注解图 2.1 spring-context模块的注解图 2.2 spring-web注解 2.3 spring其它 阅读全文
posted @ 2015-04-16 16:12 一天不进步,就是退步 阅读 (36759) | 评论 (67) 编辑
spring源码分析之spring-web http详解
摘要:spring-web是spring webmvc的基础,它的功能如下: 1. 封装http协议中client端/server端的request请求和response响应及格式的转换,如json,rss,xml等。 2. 远程调用包括jaxws、caucho、httpinvoker 3. web相关的 阅读全文
posted @ 2015-04-14 11:57 一天不进步,就是退步 阅读 (6424) | 评论 (2) 编辑
spring core源码解读之ASM4用户手册翻译之一asm简介
摘要:第一章:ASM介绍 第一章:ASM介绍 1.1 ASM动机: 程序的分析,生成,转换技术可以应用到许多场景: 1.程序分析,从简单的语法解析到完整的语义分析,可以应用在程序中找到潜在的bug,发现无用的代码,工程代码的逆向等等。 2.代码生成应用在各种编译器中:既包括传统的编译器也包括分布式编程的s 阅读全文
posted @ 2015-01-18 21:33 一天不进步,就是退步 阅读 (2815) | 评论 (0) 编辑
spring beans源码解读之--总结篇
摘要:spring beans下面有如下源文件包: org.springframework.beans, 包含了操作java bean的接口和类。org.springframework.beans.annotation, 支持包,提供对java 5注解处理bean样式的支持。org.springframe 阅读全文
posted @ 2015-01-15 11:51 一天不进步,就是退步 阅读 (42884) | 评论 (13) 编辑
spring beans源码解读之--XmlBeanFactory
摘要:导读: XmlBeanFactory继承自DefaultListableBeanFactory,扩展了从xml文档中读取bean definition的能力。从本质上讲,XmlBeanFactory等同于DefaultListableBeanFactory+XmlBeanDefinitionRead 阅读全文
posted @ 2015-01-08 11:19 一天不进步,就是退步 阅读 (9079) | 评论 (0) 编辑
spring beans源码解读之--Bean的注解(annotation)
摘要:随着spring注解的引入,越来越多的开发者开始使用注解,这篇文章将对注解的机制进行串联式的讲解,不求深入透彻,但求串起spring beans注解的珍珠,展示给大家。 1. spring beans常用的注解: public @interface Autowired:可以对成员变量、方法和构造函数 阅读全文
posted @ 2015-01-05 20:50 一天不进步,就是退步 阅读 (23033) | 评论 (0) 编辑
spring beans源码解读之--Bean的定义及包装
摘要:bean的定义,包装是java bean的基础。再怎么强调它的重要性都不为过,因此深入 了解这块的代码对以后的代码研究可以起到事半功倍的功效。 1. Bean的定义BeanDefinition 1.1 BeanDefinition 作用 一个BeanDefinition描述了一个bean的实例,包括 阅读全文
posted @ 2014-12-30 17:14 一天不进步,就是退步 阅读 (17542) | 评论 (0) 编辑
spring beans源码解读之--bean definiton解析器
摘要:spring提供了有两种方式的bean definition解析器:PropertiesBeanDefinitionReader和XmLBeanDefinitionReader即属性文件格式的bean definition解析器和xml文件格式的bean definition解析器。 我们先从简单的 阅读全文
posted @ 2014-12-29 11:03 一天不进步,就是退步 阅读 (6900) | 评论 (2) 编辑
spring beans源码解读之--BeanFactory进化史
摘要:BeanFactory是访问bean容器的根接口,它是一个bean容器的基本客户端视图。 先让我们看看beanfactory的前生后世吧! beanFactory有四个重要的子接口: SimpleJndiBeanFactory是spring beanFactory接口的基于jndi的简单实现。不支持 阅读全文
posted @ 2014-12-08 23:47 一天不进步,就是退步 阅读 (4433) | 评论 (0) 编辑
spring mvc DispatcherServlet详解之三---request通过ModelAndView中获取View实例的过程
摘要:整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet第二步:通过request从Controller获取ModelAndView。现在来讲解第三步:request 从ModelAndView中获取view对象。 获取view对象一般是通过viewResolve 阅读全文
posted @ 2014-11-29 23:22 一天不进步,就是退步 阅读 (9478) | 评论 (0) 编辑
spring mvc DispatcherServlet详解之拾忆工具类utils
摘要:DispatcherServlet的静态初始化 配置文件加载 属性填充: 我们从这个可以得到什么呢? 我们可以直接拿过来作为读取属性文件的工具类。 DispatcherServlet的策略初始化 初始化策略代码: 我们再看一个这个方法结构图: 从上面的图中我们可以看出它们都共同使用一个方法: 阅读全文
posted @ 2014-11-27 19:49 一天不进步,就是退步 阅读 (1261) | 评论 (0) 编辑
spring mvc DispatcherServlet详解之前传---FrameworkServlet
摘要:做项目时碰到Controller不能使用aop进行拦截,从网上搜索得知:使用spring mvc 启动了两个context:applicationContext 和WebapplicationContext。 首先我们来了解applicationContext 和WebapplicationCont 阅读全文
posted @ 2014-11-26 11:38 一天不进步,就是退步 阅读 (43620) | 评论 (2) 编辑
spring mvc DispatcherServlet详解之一--request通过HandlerMaping获取控制器Controller过程
摘要:整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的第一步:获取控制器。 HandlerMapping 1. 初始化HandlerMapping 2.获取HandlerExecutionChain。 HandlerExecuti 阅读全文
posted @ 2014-11-23 10:35 一天不进步,就是退步 阅读 (17311) | 评论 (0) 编辑
spring mvc DispatcherServlet详解之四---视图渲染过程
摘要:整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的最后一步:视图渲染。视图渲染的过程是在获取到ModelAndView后的过程。 视图渲染的过程: DispatcherServlet.java doService() >doD 阅读全文
posted @ 2014-11-21 00:05 一天不进步,就是退步 阅读 (11833) | 评论 (4) 编辑
spring mvc DispatcherServlet详解之interceptor和filter的区别
摘要:首先我们看一下spring mvc Interceptor的功能及实现: http://wenku.baidu.com/link?url=Mw3GaUhCRMhUFjU8iIDhObQpDcbmmRy_IPeumazg0ppnbmwqFUtLp9kSpuPPpeysf6EnHBLYFeWrbjqMq 阅读全文
posted @ 2014-11-19 18:05 一天不进步,就是退步 阅读 (17638) | 评论 (0) 编辑
spring mvc DispatcherServlet详解之一---处理请求深入解析
摘要:要深入理解spring mvc的工作流程,就需要先了解spring mvc的架构: 从上图可以看到 前端控制器DispatcherServlet在其中起着主导作用,理解了DispatcherServlet 就完全可以说弄清楚了spring mvc。 为了加深对spring mvc的整个工作流程的理解 阅读全文
posted @ 2014-11-14 10:39 一天不进步,就是退步 阅读 (15855) | 评论 (0) 编辑
spring mvc DispatcherServlet详解前传---HttpServletBean类
摘要:从上章里我们已经看到: DispatcherServlet extends FrameworkServlet FrameworkServlet extends HttpServletBean implements ApplicationContextAware 那么HttpServletBean作为 阅读全文
posted @ 2014-11-12 15:50 一天不进步,就是退步 阅读 (5071) | 评论 (0) 编辑
spring mvc DispatcherServlet详解之前传---前端控制器架构
摘要:前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。 Dis 阅读全文
posted @ 2014-11-11 17:14 一天不进步,就是退步 阅读 (25603) | 评论 (1) 编辑
spring resource
摘要:1.resource的前生后世 前生:public interface Resource extends InputStreamSource 后世: 2.Resource辅助工具类ResourceUtils 3.resource的继承关系:(http://www.ibm.com/developerw 阅读全文
posted @ 2013-03-21 11:22 一天不进步,就是退步 阅读 (412) | 评论 (0) 编辑
spring aop实现过程之三Spring AOP中Aspect编织的实现
摘要:1.上节我们谈到拦截器起作用时,实现代码(ReflectiveMethodInvocation.java)如下: 2.前置Advice MethodBeforeAdviceInterceptor.java 3.后置Advice AfterReturningAdviceInterceptor.java 阅读全文
posted @ 2013-03-19 16:38 一天不进步,就是退步 阅读 (2110) | 评论 (1) 编辑
spring aop实现过程之二Spring AOP中拦截器链
摘要:1.开始步骤--获取AopProxy主流程 ProxyCreatorSupport.java 2.获取AopProxy实现 --DefaultAopProxyFactory.java ProxyFactoryBean类继承了AdvisedSupport类,后者继承了ProxyConfig类并定义了操 阅读全文
posted @ 2013-03-19 16:11 一天不进步,就是退步 阅读 (3675) | 评论 (0) 编辑
spring aop实现过程之一代理对象的生成
摘要:AOP实现中,可以看到三个主要的步骤,一个是代理对象的生成,然后是拦截器的作用,然后是Aspect编织的实现。 1.ProxyFactoryBean生成AopProxy ProxyFactoryBean生成AOP proxy 初始化Advisor chain 增加advisor chain(Advi 阅读全文
posted @ 2013-03-18 11:17 一天不进步,就是退步 阅读 (2228) | 评论 (0) 编辑
Aop获取bean的过程---spring debug
摘要:1.调试程序: 2.AbstractApplicationContext.java 执行 3.AbstractRefreshApplicationContext.java(getBeanFactory())和AbstractBeanFactory.java(doGetBean()) 阅读全文
posted @ 2013-03-15 11:43 一天不进步,就是退步 阅读 (5599) | 评论 (0) 编辑
spring aop小结(概念解析)
摘要:1.advisor 2.Advised 封装了Advisor的操作等等。 3.pointCut 我理解为位置 4.PointcutAdvisor 5.Advice 6.pointcut 7.PointcutAdvisor 8.图解(引用:http://www.iteye.com/topic/1114 阅读全文
posted @ 2013-03-15 10:49 一天不进步,就是退步 阅读 (422) | 评论 (0) 编辑
spring启动过程之源码跟踪(小结bean的生命周期)--spring Debug
摘要:spring in action 1.容器发现bean的定义,初始化bean 2.使用依赖注入的方式,spring根据bean定义,设置bean的所有属性 3.如果bean继承了BeanNameAware接口,则工厂调用setBeanName方法,把bean的Id传值过去 4.如果bean继承了Be 阅读全文
posted @ 2013-03-13 11:06 一天不进步,就是退步 阅读 (728) | 评论 (0) 编辑
spring启动过程之源码跟踪(续beanfactory)--spring Debug
摘要:1.初始化过程 2.入门 3.读取配置文件XmlBeanDefinitionReader.java 4.读取方法DefaultBeanDefinitionDocumentReader.java 阅读全文
posted @ 2013-03-12 17:58 一天不进步,就是退步 阅读 (487) | 评论 (0) 编辑
spring启动过程之源码跟踪(下)--spring Debug
摘要:在web应用启动入口是ContextLoaderListener,它是怎么完成启动过程的呢? 首先: 1.ContextLoaderListener.java 2.ContextLoader.java 3.ContextLoader.java 4.回到了我们上两节提到的AbstractApplica 阅读全文
posted @ 2013-03-12 17:24 一天不进步,就是退步 阅读 (3524) | 评论 (0) 编辑
spring启动过程之源码跟踪(中)--spring Debug
摘要:上节我们debug到 我们继续debug 下一步:配置beanfactory的上下文 下面是下一步要debug的内容: 初始化singletonbean(DefaultListableBeanFactory.java#preInstantiateSingletons()) 结束动作:发布事件 阅读全文
posted @ 2013-03-12 09:18 一天不进步,就是退步 阅读 (3200) | 评论 (0) 编辑
spring启动过程之源码跟踪(上)--spring Debug
摘要:1,初始化容器 步骤1:构造方法如下: 步骤2:重头戏到了! 步骤3:获取beanFactory 步骤3-1 步骤3-2 加载beans的定义(AbstractXmlApplicationContext.java) 步骤3-3 步骤3-4 XmlBeanDefinitionReader.java 步 阅读全文
posted @ 2013-03-11 20:04 一天不进步,就是退步 阅读 (4733) | 评论 (0) 编辑
spring定时器分析
摘要:spring定时器如何使用? 步骤1. 定义job bean 1.TaskScheduler构造 2.初始化相关服务 <bean id="xxxxScheduler" class="com.xxxx.TaskScheduler"> <property name="xxxxService" ref=" 阅读全文
posted @ 2013-01-21 19:55 一天不进步,就是退步 | 编辑