Spring
文章平均质量分 92
Spring
猎户星座。
花有重开日,人无再少年。
展开
-
Spring之AOP源码
AOP原理:EnableAspectJAutoProxy@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { /** * Indicate whether subclass-based (CGLIB) proxies are to原创 2020-11-28 21:47:48 · 97 阅读 · 0 评论 -
Spring之事务传播行为
Spring事务传播行为:spring特有的事务传播行为,spring支持7种事务传播行为,确定客户端和被调用端的事务边界(说得通俗一点就是多个具有事务控制的service的相互调用时所形成的复杂的事务边界控制)下图所示为7钟事务传播机制 传播行为 含义 PROPAGATION_REQUIRED(XML文件中为REQUIRED) 表示当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否转载 2022-01-26 13:41:37 · 372 阅读 · 0 评论 -
BeanFactory/FactoryBean
区别:BeanFactory是个Factory,也就是IOC容器或对象工厂,FactoryBean是个Bean。在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似1、 BeanFactoryBeanFactory定义了IOC容器的最基本形式,并提供了IOC容器应遵守的的最基本的接口,也就是Spring转载 2021-03-10 12:54:05 · 84 阅读 · 0 评论 -
Spring之事务
1. 什么是事务?事务是逻辑上的一组操作,要么都执行,要么都不执行。Guide 哥:大家应该都能背上面这句话了,下面我结合我们日常的真实开发来谈一谈。我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的 savePerson() 方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。 public void savePerson() { personDao.save(person); personDetailDao.sav转载 2021-02-27 21:17:19 · 91 阅读 · 0 评论 -
Spring之Bean生命周期
Spring bean生命周期13个环节 阶段1:Bean元信息配置阶段 阶段2:Bean元信息解析阶段 阶段3:将Bean注册到容器中 阶段4:BeanDefinition合并阶段 阶段5:Bean Class加载阶段 阶段6:Bean实例化阶段(2个小阶段) Bean实例化前阶段 Bean实例化阶段 阶段7:合并后的BeanDefinition处理 阶段8:属性赋值阶段(3个小阶段) Bean实例化后阶段转载 2020-07-26 10:54:57 · 248 阅读 · 0 评论 -
Spring之条件注解
我们新建一个项目,验证能否通过配置文件能否来控制bean的装配。项目总体结构KafkaConfig,添加@ConditionalOnProperty注解package com.yj.config;import java.util.HashMap;import java.util.Map;import org.apache.kafka.clients.producer.Pr...原创 2019-01-24 14:59:57 · 315 阅读 · 0 评论 -
Spring之循环依赖
前言 结合Spring Bean加载流程,本文对Spring单例构造器循环依赖及Field循环依赖进行分析。对于构造器循环依赖,目前Spring是无法解决的;Field循环依赖,Spring通过提前暴露实例化Bean及缓存不同阶段的bean(三级缓存)进行依赖排除。网上也有不少一些关于这方面的文章,但作者想从缓存生命周期及多例Bean循环依赖这方面另辟蹊径,深入理解下Spring Ioc的精髓。这是第二篇博文,希望能养成梳理笔记的好习惯。什么是循环依赖? 循环依赖,简单地说,就是循环..转载 2020-06-12 14:34:07 · 223 阅读 · 1 评论 -
Spring之IOC
什么叫控制反转为什么叫做控制反转呢。在传统的模式下,我想要使用另外一个非静态对象的时候会怎么做呢,答案就是 new 一个实例出来。举个例子,假设有一个 Logger 类,用来输出日志的。定义如下:public class Logger { public void log(String text){ System.out.println("log:" + text); }}那现在我要调用这个 log 方法,会怎么做呢。Logger logger =转载 2020-06-11 21:16:02 · 171 阅读 · 0 评论 -
Spring之静态属性注入
@Componentpublic class CommUtil { private static CommonDao commonDao; @Autowired public void setCommonDao(CommonDao commonDao) { CommUtil.commonDao = commonDao; }}se...原创 2018-11-09 15:29:40 · 379 阅读 · 0 评论 -
Spring之缓存
简介 内存的速度远远大于硬盘的速度,当我们需要重复获取相同的数据的时候,一次又一次的请求数据库或远程服务,导致大量时间都消耗在数据库查询或远程方法调用上面,性能下降,这时候就需要使用到缓存技术了。 本文介绍SpringBoot 如何使用redis做缓存,如何对redis缓存进行定制化配置(如key的有效期)以及初始化redis做缓存。使用具体的代码介绍了@Cacheable...原创 2018-09-20 09:32:29 · 522 阅读 · 0 评论 -
Spring之AOP在鉴权和日志记录中的应用
鉴权假设现有需求,要求如下: 可以定制地为某些指定的 HTTP RESTful api 提供权限验证功能. 当调用方的权限不符时, 返回错误. 根据上面所提出的需求, 我们可以进行如下设计: 提供一个特殊的注解 AuthChecker, 这个是一个方法注解, 有此注解所标注的 Controller 需要进行调用方权限的认证. 利用 Spring AOP, 以...原创 2018-09-08 11:10:47 · 645 阅读 · 0 评论 -
Spring之ApplicationContext的获取
Spring上下文(ApplicationContext)的获取有三种方式。 1.通过WebApplicationUtils工具类获取。WebApplicationUtils类是在Spring框架基础包spring-web-3.2.0. RELEASE.jar(我使用的是3.2.0版的jar包,大家可以去spring官网下载最新版的jar)中的类。使用该方法的必须依赖Servlet容器。 ...转载 2018-09-02 16:11:40 · 206 阅读 · 0 评论 -
Spring之AOP
AOP(Aspect Orient Programming),一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表,包括JDK动态代理和CGLIB动态代理。静态代理是编译期...原创 2018-09-04 08:49:33 · 1368 阅读 · 1 评论 -
Spring之Bean作用域
在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean的定义以及bean相互间的依赖关系将通过配置元数据来描述。 Spring中的bean默认都是单例的,这些单例Bean在多线程程序下如何保证线程安全呢?例...转载 2018-08-23 14:55:28 · 651 阅读 · 0 评论