
Spring
淡淡的倔强
不怕千万人阻挡,只怕自己投降!
展开
-
Spring源码-循环依赖与三级缓存
一、前言循环依赖:就是N个类循环(嵌套)引用。通俗的讲就是N个Bean互相引用对方,最终形成闭环。在日常的开发中,我们都会碰到类似如下的代码@Servicepublic class AServiceImpl implements AService { @Autowired private BService bService; ...}@Servicepublic class BServiceImpl implements BService { @Autowire原创 2020-10-08 23:56:54 · 826 阅读 · 1 评论 -
Spring BeanFactory和FactoryBean的区别
有些东西可能知其用,但也需知其所以然,特转载该篇Spring BeanFactory和FactoryBean的区别org.springframework.beans 及 org.springframework.context 包是 Spring IoC 容器的基础。一、BeanFactory是一个接口,public interface BeanFactory,提供如下方法:pack...转载 2018-09-07 11:48:14 · 973 阅读 · 1 评论 -
Spring的#和$的区别?
在Spring中有#的使用也有$的使用,那么这两个分别是做什么的呢?${key名称}:1、用户获取外部文件中指定key的值2、可以出现在xml配置文件中,也可以出现在注解@Value中3、获取properties中环境变量#{表达式}:1、SpEL表达式的格式,详情点击[Spring的EL表达式](http://blog.youkuaiyun.com/u012834750/article/det...原创 2018-02-27 14:55:20 · 6047 阅读 · 1 评论 -
Spring的EL表达式
SpEL简介 在Spring3中就已经支持EL表达式了, Spring Expression Language(SpEL)是类似于OGNL和JSF EL的表达式语言, 能够在运行时构建复杂表达式, 存取对象属性、调用对象方法等, 而且所有的SpEL都支持XML和Annotation两种方式, 使用的格式均为:#{SpEL expression}. 比如在XML中使用的例子:<bean id转载 2018-02-27 14:50:40 · 5916 阅读 · 1 评论 -
Spring—ConcurrentReferenceHashMap
ConcurrentReferenceHashMap与ConcurrentHashMap的区别是ConcurrentReferenceHashMap能指定所存放对象的引用级别,适用于并发下Map的数据缓存。注:Java四种对象引用级别:强引用、软引用、弱引用、虚引用测试代码:注:用弱引用来及时查看效果。public class TestConcurrentReferenceHashMap {原创 2017-05-17 16:36:25 · 12116 阅读 · 2 评论 -
Spring--LinkedCaseInsensitiveMap
在项目的配置文件中看到了LinkedCaseInsensitiveMap,查阅后了解到LinkedCaseInsensitiveMap继承于LinkedHashMap,LinkedCaseInsensitiveMap可以检测关键字(不区分大小写)的唯一性,源码如下:package org.springframework.util;import java.util.HashMap;import ja原创 2017-05-16 14:54:06 · 7724 阅读 · 2 评论 -
SpringAPI手动创建代理对象——ProxyFactory
可以通过注解的方式来自定义代理对象的创建,同时也可以通过SpringAPI,手动编程的方式来创建代理对象。几个重要的API: ProxyFactory MethodInterceptor Advice AfterReturningAdvice MethodBeforeAdvice public class Man implements Person{ @Ove原创 2017-05-12 21:24:42 · 6934 阅读 · 1 评论 -
Spring方法拦截器MethodInterceptor
前言实现MethodInterceptor 接口,在调用目标对象的方法时,就可以实现在调用方法之前、调用方法过程中、调用方法之后对其进行控制。MethodInterceptor 接口可以实现MethodBeforeAdvice接口、AfterReturningAdvice接口、ThrowsAdvice接口这三个接口能够所能够实现的功能,但是应该谨慎使用MethodInterceptor 接口,很可能原创 2017-05-12 22:07:08 · 37202 阅读 · 5 评论 -
Spring 的 BeanPostProcessor接口实现
前言 spring的BeanPostProcessor接口作用:如果我们需要在Spring容器完成Bean的实例化,配置和其他的初始化后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPostProcessor接口的实现。BeanPostProcessor是容器级生命周期接口方法,一般称它的实现类为“后处理器”。下面我们来看一个简单的例子:package com.spring.tes转载 2017-05-12 18:13:12 · 1707 阅读 · 1 评论 -
Spring Bean的生命周期
前言Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。一、生命周期流程图:若容器注册了以上各种接口转载 2017-05-12 17:58:08 · 1573 阅读 · 1 评论 -
任务执行监视器 StopWatch
StopWatch类在几种工具类里都提供了任务执行监视,但个人觉得org.springframework.util.StopWatch;所提供的工具类是最好用的,所以今天介绍的是如何使用org.springframework.util.StopWatch;去纪录程序详细运行耗时,先一起来看看源码吧,如下:package org.springframework.util;import java.tex原创 2017-03-28 15:42:59 · 2413 阅读 · 1 评论