自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 字符集通俗易懂解读

何为字符集?字符是各种文字、标点符号、图形符号、数字等的统称。字符集那就是无数字符组成到一起形成的那个整体集合了。按照字符集中包含的字符个数、种类不同,肯定又会划分出个各种字符集。如:ascll字符集、gbk字符集、unicode字符集等。字符集中有这么多的字符 ,为了查找起来方便,所以又给字符集中的字符挨个做了一个序号,比如我举个例:从0开始,第一个位置的序号0表示a,第二个位置的序号1表示b 依次递增。这就是字符在字符集中的数字序号。我们的字符需要存储到计算机上,我们知道,计算机可没那么聪明,它只能

2022-02-19 16:22:00 571

原创 第25讲:总结

Spring处理事务核心的几个类的总结:TransactionDefinition:事务的定义,里面包含Transactionatribute(事务定义的属性)TransactionInfo:它是一个内部类,里面保存了TransactionStatus和另外一个TransactionInfo,另外的一个TransactionInfo代表了嵌套事务的时候的外出事务,供之后恢复使用TransactionStatus:描述当前事务运行期的一些状态,可以获取到事务运行时的一些信息PlatformTr

2021-03-16 14:42:44 116

原创 第25讲:经典模板方法设计模式在spring中的应用

代码块1:getTransaction注意:这里用到了模板方法设计模式AbstractPlatformTransactionManager.class /** * This implementation handles propagation behavior. Delegates to * {@code doGetTransaction}, {@code isExistingTransaction} * and {@code doBegin}. * @see #doGetT

2021-03-16 14:41:08 368

原创 第23讲:Spring事务底层实现

代码块1:invoke TransactionInterceptor.class @Override @Nullable public Object invoke(MethodInvocation invocation) throws Throwable { // Work out the target class: may be {@code null}. // The TransactionAttributeSource should be passed the targe

2021-03-16 14:13:46 283

原创 第22讲:Spring事务管理代码详解

代码块1:afterPropertiesSet()小结:通过下面代码可以看出spring的afterPropertiesSet()方法很实用,它就像spring给bean实例化时创建的一个监听,当bean对象实例化好,对属性都赋值完成后就会执行这个方法。我们可以根据自己的需要在这个回调方法中执行很多自己需要的代码。试想,如果没有这个回调函数,那很多bean实例化完成后写在哪里呢?写在实例化完成后的后面?这样不是这个bean的实例化就和后面的代码有耦合了?看起来bean的实例化就根本不是一气呵成的了。所以

2021-03-16 11:55:03 215

原创 第21讲:Spring数据访问源码解剖

代码块1:TransactionProxyFactoryBean:/** * Proxy factory bean for simplified declarative transaction handling. * This is a convenient alternative to a standard AOP * {@link org.springframework.aop.framework.ProxyFactoryBean} * with a separate {@link Tra

2021-03-16 11:30:21 174

原创 第19讲-第20讲:SpringIoc与Aop总结与回顾

bean工厂的创建(向ioc容器中注册好beanDefinition(Bean的定义信息))bean实例的创建、aop的解析

2021-03-15 16:27:42 80

原创 第18讲:拦截器链的获得与递归执行

代码块1:this.advised.getInterceptorsAndDynamicInterceptionAdvice(method, targetClass);AdvisedSupport.class/** * Determine a list of {@link org.aopalliance.intercept.MethodInterceptor} objects * for the given method, based on this configuration. * @p

2021-03-15 16:24:03 255

原创 第17讲:AOP 执行流程与机制详解

代码块1:invoke()JdkDynamicAopProxy.class/** * Implementation of {@code InvocationHandler.invoke}. * <p>Callers will see exactly the exception thrown by the target, * unless a hook method throws an exception. */ //调用者可以看到被代理方法本身抛出的异常,但是代理

2021-03-15 15:48:02 197

原创 第16讲:JdkDynamicAopProxy与CglibAopProxy详解

要点:cglib和jdk动态代理它们都是通过运行时,动态创建出来的代理对象的class,然后创建出代理对象。不同点在于:jdk创建出的代理对象是和被代理对象平级的,因为它们都是同一个接口的实现类;cglib创建出来的代理对象是被代理对象的子类(父子关系)代理方法的不同实现原理:jdk动态代理方法的原理是通过invock方法实现的。代理对象执行任何方法时,都会被 invock方法所拦截,然后都去执行invoke方法;cglib是通过监听执行回调,来达到动态代理方法的代码块1:createAopPr

2021-03-15 15:40:33 712

原创 第15讲:ProxyFactoryBean与Aoproxy详解

FactoryBean类的核心是通过getObject()方法来创建对象的,所以我们直接研究这个方法(源码分析来自于Spring5.1.5):ProxyFactoryBean.class主代码块:/** * Return a proxy. Invoked when clients obtain beans from this factory bean. * Create an instance of the AOP proxy to be returned by this f.

2021-03-15 15:18:00 279

原创 第14讲:ProxyFactoryBean介绍

ProxyFactoryBean是创建AOP代理对象的FactoryBean。相信看了前面的ioc,你应该对FactoryBean和BeanFactory有所了解和对比。总的来说:ProxyFactoryBean的作用就是创建目标对象的代理对象。将对目标对象方法的调用转到对应的代理对象的方法,而且代理对象方法调用前后会执行与之匹配的各个通知器中定义好的方法ProxyFactoryBean的属性:target:需要被切面增强的对象proxyInterfaces:代理对象所需要实现的接.

2021-03-15 14:41:36 1127

原创 第12讲-第13讲:Spring AOP中的几个概念

Pointcut(切点):要切割连接的地方Advice(通知):定义了连接点出要做的行为Advisor(通知器):组合Advice和Pointcut

2021-03-15 14:26:44 89

原创 第11讲:ApplicationContext

applicatonContext是一个父类 ,应用程序提供配置的中央接口,它为什么能提供很多功能的接口呢?因为它实现了很多接口,如:ListableBeanFactory、ApplicationEventPublisher、ResourcePatternResolver等。它有一个子类:WebApplicationContext。它是我们做web开发时用到的一applicationContext,它里面有一个方法getServletContext()。在web程序启动过程中会绑定上根上下文。与通用应用程序

2021-03-15 10:19:27 265

原创 第10讲:Spring Ioc的缓存

没什么要说的,就是直接从缓存中取bean就完了,第9讲的代码块1中有讲

2021-03-14 15:49:09 93

原创 第9讲:Spring Bean的创建与获取

好了,通过前面几章的讲解,我们才把BeanDefinition的定义给讲解完,下面接着讲解如何通过这些创建好的BeanDefinition来创建bean的实例(另外这章内容会比较多,看之前请做好心理准备@_@)1、Spring的Bean实际上是缓存在CurrenthashMap对象中2、创建Bean之前,首先需要将该bean的创建标识设定好,表示该bean已经或即将被创建,为的是增强缓存的效果3、通过bean的scope属性来确定是singleton还是prototype等范围,然后创建相.

2021-03-14 15:45:50 530 3

原创 第8讲:spring配置文件的读取与容器装配详解

第6讲中的代码块1中的parseBeanDefinitions(root, this.delegate)方法解析:protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) { if (delegate.isDefaultNamespace(root)) { NodeList nl = root.getChildNodes(); for (int i =

2021-03-13 15:40:56 121

原创 第7讲:BeanDefinitionParserDelegate深入解读

什么都没做,就是通过debuge查看了ioc容器的启动过程注意:每次new对象的时候都会先执行类加载器加载类

2021-03-13 11:33:08 140

原创 第6讲:BeanDefinitionParserDelegate与资源解析

第五讲的代码块4:registerBeanDefinitions(doc, resource)的内部代码块2的最后已经提到了BeanDefinitionParserDelegate才是真正用于解析BeanDefinition的,下面我们来详解下这个类1、简述这个类的作用:这个类是真正解析BeanDefiniton的类(它是一个被委托的类):属性:它里面的属性定义了要解析的xml文件中出现的所有名字,如:元素名、属性名等。如:String NAME_ATTRIBUTE = "name";Str

2021-02-18 17:39:06 275

原创 第5讲:XmlBeanDefinitionReader与Resource

1、观察defaultlistablebeanfactory的属性2、分析ClasspathResource的创建3、分析DefaultListableBeanFactory的创建1、classPathResource的构造方法2、分析DefaultListableBeanFactory的创建3、XmlBeanDefinitinRead的创建1、classPathResource内部结构很简单,有两个重要属性:String path:存储资源路径的地址ClassL..

2021-02-03 18:25:02 191 2

原创 第4讲:BeanFactory的一个重要的实现类,DefaultListableBeanFactory,及资源的载入

为什么提这个类呢?直接说这个类可能会感到陌生,但是提到XmlBeanFactory,可能就有点感觉了吧,实际上DefaultListableBeafFactory是XmlBeanfFactory的父类。不管是哪个BeanFactory,他们的启动过程都类似,这里以DefaultListableBeanFactory为例启动Ioc容器的方式:XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"))

2021-02-03 18:00:15 395

原创 第3讲:BeanFactory与FactoryBean简介

1、BeanFactory是一个最顶层的Ioc容器,它管理对bean的操作方法:(批量生产bean的工厂)BeanFactory中的方法:1》查找bean ————> getBean()2》判断BeanFactory中是否包含某个bean ——> containsBean()3》判断bean是否是单例类型 ——> isSingleton()4》bean是否是原型类型 ——> isPrototype()5》bean是否匹配某个类型 ——> isTypeMa

2021-02-03 17:45:55 266

原创 第2讲:IOC根容器BeanFactory简介

beanFactory是所有ioc容器的根接口1》它是所有Ioc容器的根接口,根据业务场景的不同,Ioc容器有不同的实行类(如:ClassPathAppcationContext、xmlPathApplicationContext等)。2》它鼓励所有实行该接口的Ioc容器尽可能支持Bean创建的生命周期方法,在BeanFactory类的注释里面列举了很多生命周期方法,并且是按照生命周期方法执行的顺序列举出来的。3》它里面定义的Ioc容器的通用规范方法,如:getBean()等具体了解该接口的

2021-02-03 17:30:49 174

原创 Spring框架源码解析

目录:SpringIOC:第2讲:IOC根容器BeanFactory详解第3讲:BeanFactory与FactoryBean详解第4讲:BeanFactory的一个重要的实现类,DefaultListableBeanFactory,及资源的载入第5讲:XmlBeanDefinitionReader与Resource第6讲:BeanDefinitionParserDelegate与资源解析第7讲:BeanDefinitionParserDelegate深入解读第8讲:spri

2021-02-03 17:26:40 187

转载 http请求 url 传递特殊参数(特殊字符)解决方法

url中有些特殊字符存在特殊的意义,不能直接传递(比如:#号会被解析为一个锚点,&号会被解析为分隔符)。所以如果想要无差别传递这些字符就需要对这些特殊字符做编码(spring mvc在取参数的时候会默认对url进行一次解码)。另外jquery的serialize方法在序列化的同时也会做一次编码特殊字符参考链接:https://blog.csdn.net/lipei1220/article/details/78407596...

2020-11-02 17:12:04 1793

原创 Shiro session过期跳转到登录页面问题

shrio session过期跳转到登录页面问题shrio的session过期后(工程重启或者用户长时间没进行任何操作),当客户端再次向服务端发起请求时,shrio会判断用户没有登录授权,然后对请求做一个重定向(重定向到登录页面)。上面的过程是对浏览器地址栏的请求或者form表单的请求生效,如果是ajax请求则不会重定向成功。因为ajax请求是做局部刷新的,不会重新加载页面,ajax不支持重定向。解决方法:步骤一:https://blog.csdn.net/nanyanglu/artic

2020-10-30 14:56:38 2154

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除