Spring
文章平均质量分 94
Mrkang1314
这个作者很懒,什么都没留下…
展开
-
Spring AOP的设计与实现——JDK动态代理、CGLIB动态代理
概念了解:Spring AOP面向切面编程、动态代理的理解深入理解SpringAOP中的动态代理JVM的动态代理特性在Spring AOP实现中,使用的核心技术是动态代理,这种动态代理实际上是JDK的一个特性。通过JDK的动态代理特性,可以为任意Java对象创建代理对象,通过Java Reflection API来完成。在代理模式的的设计中,会设计一个接口和目标对象一直的对象Proxy,它们都实现了同一个接口的方法。对目标对象方法的调用,往往就被代理对象给拦截了,通过这种拦截,为目标对象方法操原创 2021-01-13 17:08:25 · 768 阅读 · 1 评论 -
Spring IoC容器设计与实现——容器相关特性的实现(lazy-init属性和预实例化、FactoryBean、BeanPostProcessor、autowire、Bean依赖检查)
ApplicationContext和Bean的初始化及销毁对于BeanFactory,特别是ApplicationContext,容器自身也有一个初始化及销毁关闭的过程。ApplicationContext启动的过程是在AbstractApplicationContext中实现的,在这之前需要一些准备工作prepareBeanFactory()方法实现,这个方法中为容器配置了ClassLoader、PropertyEditor和BeanPostProcessor等,为容器启动做好了必要的准备工作。原创 2021-01-07 16:17:09 · 206 阅读 · 1 评论 -
Spring IoC容器设计与实现——IoC容器的依赖注入
Spring IoC容器设计与实现——IoC容器的初始化过程依赖注入的过程式用户第一次向IoC容器索要Bean时触发的,当然也有例外,就是可以通过控制lazy-init属性来让容器完成对Bean的预实例化,这个预实例化也是一个完成依赖注入的过程。getBean()方法就是触发依赖注入的接口定义。下来通过DefaultListableBeanFactory的基类 AbstractBeanFactory入手去看看getBean的实现。...原创 2021-01-06 17:05:39 · 182 阅读 · 0 评论 -
Spring IoC容器设计与实现——IoC容器的初始化过程
前言在面向对象系统中,对象封装了数据和对数据的处理,对象的依赖关系常常体现在对数据和方法的依赖上,这些依赖关系可以通过把对象的依赖注入交给框架或IoC容器来完成。依赖控制反转的实现有很多种方式,在spring中,IoC容器是实现这个模式的载体,它可以在对象生成或初始化时直接将数据注入对象中,也可以通过将对象引用注入到对象数据域中的方式来注入对方法调用的依赖。这种方案把对象的依赖关系有序地建立起来,简化了对象依赖关系的管理,很大程度上简化了面向对象系统的复杂性。IoC容器和依赖反转模式控制反转时关于原创 2021-01-04 20:10:09 · 314 阅读 · 0 评论 -
Spring——高级装配
环境与profile在不同的环境中某个bean会有所不同,我们必须要有一种方法来配置,使其在每种环境下都会选择最为合适的配置。配置profile bean在构建bean的过程中需要根据环境决定哪个bean创建、哪个bean不创建。不过spring并不是在构建的时候做出这样的决策,而是等到运行时再来确定。spring3.1引入bean profile功能,将所有不同的bean定义整理到一个或多个profile中,再将应用部署到每个环境中,要确保对应的profile处于激活状态。使用注解@Profi原创 2020-12-29 14:29:19 · 264 阅读 · 0 评论 -
从不同角度分析过滤器和拦截器的区别
拦截器和过滤器什么是过滤器?过滤器是以链的形式在容器中处理的,这意味着它们可以在请求达到servlet之前对其进行访问,也可以在响应返回客户端之前对其进行拦截,这种访问使得过滤器可以检查并修改请求和响应的内容。什么是拦截器?拦截器是AOP的一种实现策略,用于在某个方法或字段被访问前对它进行拦截,然后在其之前或之后加上某些操作,同样,Interceptor也是链式调用,每个interceptor的调用会依据它声明顺序依次执行。过滤器中的接口方法init():在Servlet容器创建过滤器实例的原创 2020-09-28 11:35:19 · 389 阅读 · 0 评论 -
深入理解spring容器扩展点BeanFactoryPostProcessor
spring官网是这样描述BeanFactoryPortProcessor的:BeanFactoryPortProcessor可以对Bean配置元数据进行操作,也就是说,spring容器允许BeanFactoryPortProcessor读取指定Bean的配置元数据,并可以在Bean被实例花钱修改它,这个的配置元数据就是BeanDefination。我们可以配置多个BeanFactoryPortProcessor,并且只要我们配置的BeanFactoryPortProcessor实现了Ordered.原创 2020-08-20 11:57:26 · 278 阅读 · 0 评论 -
Spring BeanDefinition
什么是BeanDefinitionBeanDefination包含了我们对bean做的配置,比如XML<bean/>标签的形式进行配置;Spring将我们对bean的定义信息进行了抽象,抽象后的实体就是BeanDefinition,并且Spring会以此作为标准来对Bean进行创建;BeanDefinition包含以下元数据:一个全限定类名,通常来说,就是对应的bean的全限定类名;bean的行为配置元素,这些元素展示了这个bean在容器中是如何工作的,包括scopelifec原创 2020-08-17 15:34:17 · 506 阅读 · 0 评论 -
Spring AOP面向切面编程、动态代理的理解
动态代理技术原始编写java代码方式.java -&amp;amp;amp;gt; javac -&amp;amp;amp;gt;.class -&amp;amp;amp;gt; 类加载代理的意义:通过生成代理,来避免访问真实的目标类,因为如果直接访问目标类,则目标类要实现的功能过于繁琐。代理类和目标类需要有相同的方法,想要使用目标类必须通过代理类来调用,代理类中是你想要对目标类做的逻辑处理。在静态代理中你必须对每个方法都进行处理,较为繁原创 2019-07-25 08:37:09 · 1015 阅读 · 0 评论 -
Spring BeanFactory和FactoryBean的区别、模拟BeanFactory实例化对象的过程
了解应用:https://blog.csdn.net/mashaokang1314/article/details/87365074BeanFactory从应用中我们可以了解到,使用Spring的好处就是,程序员不用再关心对象的创建过程与对象之间依赖关系,这些都交给Spring去管理了。spring通过BeanFactory来管理这些对象,我们只需做到以下几点:告诉spring哪些类是需要...原创 2019-07-27 18:50:13 · 325 阅读 · 0 评论 -
深入理解SpringAOP中的动态代理
代理什么是代理?买火车票,app就是一个代理;每个明星都有自己的经纪人,经纪人就是代理。个人理解:为了增强目标类的功能,但是不在目标类内部完成该功能的逻辑代码,根据开发原则单一原则和开闭原则,目标类有自己的主线任务要完成,而通过继承或聚合生成一个代理类,让代理类来完成非主线任务如:生成日志、使用事务等与主线任务无关的任务,实现无侵入式代码扩展。代理的意义通过生成代理,来避免访问真实的目标类...原创 2019-07-26 08:55:32 · 374 阅读 · 0 评论 -
Spring框架 IOC容器——基础概念了解
分层开发表现层:直接和用户打交道,大部分跟界面有关;服务层:业务逻辑,由一个到多个基本的增删改查组成;持久层(数据访问层):将数据永久的保存,jdbc、mybatis;Spring框架特点将其他的框架进行整合,便于开发,提高程序的扩展性;声明式的事务管理:不需要编码进行事务控制,可以用xml的配置文件、用注解的方式;spring 框架的核心思想IO...原创 2019-02-17 11:05:11 · 207 阅读 · 0 评论 -
Spring Data Elasticsearch
Elasticsearch提供的Java客户端不太方便:很多地方需要拼接json字符串;需要自己把对象序列化为json存储;查询到结果也需要自己反序列化为对象;所以不适用原生的Java客户端,而使用Spring提供的Spring Data Elasticsearch简介Spring Data Elasticsearch是Spring Data项目下的一个子模块。官网:http:...原创 2019-06-21 08:22:33 · 294 阅读 · 0 评论 -
SpringBoot——WebMvcConfigurer处理请求参数
参考文章:https://blog.csdn.net/weixin_43453386/article/details/83623242什么是WebMvcConfigurerSpring内部的一种配置方式,采用JavaBean的形式来代替传统xml配置文件形式,进行针对框架个性化定制;常用的方法/** 解决跨域问题 **/public void addCorsMappings(CorsRe...原创 2019-04-11 19:14:20 · 2817 阅读 · 0 评论 -
SpringMVC的执行流程
spring容器的启动加载流程首先解析配置文件spring.xml,把其中的&lt;bean&gt;解析为BeanDefinition对象并存入BeanFactory;把BeanDefinition中的定义读取到一个map集合中管理起来了,但还没有创建bean对象;&lt;bean id="" calss="" init-method="" de原创 2019-03-13 13:14:22 · 181 阅读 · 0 评论