![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 90
柳擎
苦行修士
展开
-
Spring源码深度解析(郝佳)-学习-jdk代理-cglib代理
在java中目前主要使用的是jdk代理和cglib代理,这两种代理是Spring AOP的精髓所在,不过在理解Spring AOP之前,先来看看这两种代理的使用。jdk代理使用示例创建业务接口,业务对外提供了接口,包含着业务可以对象提供的功能。public interface UserService { // 目标方法 public abstract void add();}创建原创 2021-04-15 20:29:31 · 244 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-源码解析-import标签
Boss.java@Datapublic class Boss { private Car car;}Car.java@Datapublic class Car { private Long id ; private String brand; private int maxSpeed;}spring30_child.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http原创 2020-10-05 15:26:48 · 156 阅读 · 1 评论 -
Spring源码深度解析(郝佳)-学习-源码解析-idref标签
vvv原创 2020-10-05 13:54:14 · 140 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-源码解析-abstract-bean
月 e原创 2020-10-05 13:36:02 · 239 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-循环依赖-(构造器-setter)源码分析
循环依赖分为构造器循环依赖,以及 setter 循环依赖。下面我们来举例两种循环依赖的具体实例,再来分析源码 。1.构造器循环依赖 表示通过构造器注入构成的循环依赖,此依赖是无法解决的,只能抛出 BeanCurrentlyIn-CreationException 异常表示循环依赖。 如在创建 TestA类时,构造器需原创 2020-10-01 10:37:36 · 419 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-FactoryBean 使用及源码解析
dsds原创 2020-09-30 10:28:17 · 230 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-源码解析-自定义标签解析
自定义标签使用在使用情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于 Spring 的标准 bean 来配置,但配置较为复杂或者需要更多的丰富的控制的时候,会显得非常的笨拙,一般的做法会用原生态的方式去解析定义好的 xml文件,然后转换为配置对象,这种方式当然可以解决所有的问题,但实现起来非常繁琐,特别是配置非常复杂的时候,解析工作是不个不得不都试的负担,Spring提供了可扩展 Schema 的支持,这是一个非常不错的折中方案,扩展 Spring 自定义标签配置大致需要以下的几个步骤(前提原创 2020-09-29 00:29:30 · 157 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-源码解析-factory-method
本文要解析的是Spring factory-method是如何来实现的,话不多说,示例先上来。Stu.javapublic class Stu { public String stuId; public Stu(String stuId) { this.stuId = stuId; }}StuFactory.javapublic class StuFactory { //动态创建类 public Stu getDynamicStu(Stri原创 2020-09-28 15:57:09 · 540 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-源码解析(二)-自定义ConversionService
本文主要想要说明的是如何自定义类型转换器我们先来做一个测试User.java@Datapublic class User { private Date birth;}spring114.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/原创 2020-09-27 18:09:22 · 465 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-数据转换-ConversionService源码解析一
为什么我们在xml配置的对象引用,Spring会帮我们实例化呢?为什么在xml配置的是一个字符串,Spring 却能帮我们转化成java对象中申明的属性类型呢?在比较新的Spring版本中与ConversionService有关,Spring 3.0 之前和PropertyEditor这个类相关,有兴趣的同学可以自行研究一下。今天,我们就来研究一下源码,Spring 是如何进行数据转换的。先上示例User.java@Datapublic class User { private Strin原创 2020-09-26 16:06:50 · 536 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-Spel源码解析(三)-Math
今天来讲讲对于Math函数的Spel分析@Testpublic void test2() { ExpressionParser parser = new SpelExpressionParser(); String randomPhrase = parser.parseExpression( "random number is #{T(java.lang.Math).round(30d)}", new TemplateParserConte原创 2020-09-18 15:15:35 · 1221 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-Spel源码解析(二)-String计算
之前的博客中解析了(21 + 3 ) * 4 是如何计算来的,今天来看一下字符串的拼接解析。直接上代码。本文的github地址是https://github.com/quyixiao/spring_tiny/blob/master/src/main/java/com/spring_101_200/test_111_120/test_113_conversion/spel/TestSpel.java...原创 2020-09-17 18:27:28 · 781 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-Spel源码解析(一)-运算符计算
本文的github地址是https://github.com/quyixiao/spring_tiny/blob/master/src/main/java/com/spring_101_200/test_111_120/test_113_conversion/spel/TestSpel.java原创 2020-09-16 18:54:45 · 1566 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-测试,线上环境区分源码分析
本文主要是想说明Spring 中如何区分线上线下环境,并且源码中是如何实现的。User.java@Datapublic class User { private String username; private Integer age; public User() { } public User(String username, Integer age) { this.username = username; this.age =原创 2020-09-14 00:24:27 · 363 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-字符串值解析-property解析
我们来分析一下User对象的解析<bean id="user" class="com.spring_101_200.test_111_120.test_112_env.User"> <property name="username" value="${username}" /> <property name="age" value="${age}" /></bean>我们继续默认标签的解析/** * 使用Spring的Bean规则原创 2020-09-13 18:24:17 · 251 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-Bean Id 获取
首先上图,我们要获取类PropertySourcesPlaceholderConfigurer的id属性值AbstractBeanDefinitionParser.javaprotected String resolveId(Element element, AbstractBeanDefinition definition, ParserContext parserContext) throws BeanDefinitionStoreException { if (shouldGenerat原创 2020-09-13 17:22:10 · 159 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-资源加载classpath和classpath*区别
pom.xml <dependencies> <dependency> <groupId>org.example</groupId> <artifactId>spring_jar</artifactId> <version>1.0-SNAPSHOT</version> </dependency>原创 2020-09-09 15:22:16 · 360 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-路径解析-cleanPath
import org.springframework.util.CollectionUtils;import java.util.*;public class SpringTest1_3 { private static final String FOLDER_SEPARATOR = "/"; private static final String WINDOWS_FOLDER_SEPARATOR = "\\"; private static final String.原创 2020-09-09 11:10:06 · 353 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-字符串值解析-parseStringValue
在Spring中有一个这样的工具方法,比如在xml 中的EL 表达式解析,资源加载,@Value注解内容解析,等都用到了一个重要的工具类方法parseStringValue()我们先来写一个main方法测试一下import org.springframework.util.PropertyPlaceholderHelper;import org.springframework.util.StringUtils;import java.util.HashMap;import java.util.原创 2020-09-09 09:54:38 · 969 阅读 · 0 评论 -
Spring源码深度解析(郝佳)-学习-资源匹配-doMatch
Spring中有一个这样的工具方法,在代码中很多的其他地方都用到过,比如资源加载,web url匹配,等AntPathMatcher.java这个类的doMatch方法那我们写一个main方法来测试一下import org.springframework.util.StringUtils;import java.util.LinkedList;import java.util.List;import java.util.Map;import java.util.concurrent.Conc原创 2020-09-09 09:29:17 · 345 阅读 · 0 评论