spring
小果冻。。
这个作者很懒,什么都没留下…
展开
-
spring aop常用图示
原创 2020-06-19 23:21:05 · 176 阅读 · 0 评论 -
spring事物阅读入口
spring事物阅读入口 入口:TxAdviceBeanDefinitionParser#doParse方法原创 2020-06-19 23:16:50 · 69 阅读 · 0 评论 -
Spring aop产生的代理对象执行流程及相关核心类的作用
spring aop产生的代理对象执行流程及相关核心类的作用入口:JdkDynamicAopProxy#invoke方法 重要代码分析: List<Object> chain = this.advised.getInterceptorsAndDynamicInterceptionAdvice(method, targetClass); chain集合中存储的是【Advice】类封装之后MethodInterceptor或者想要的Adapter 在该代码执行之前,我们已经针对该t原创 2020-06-19 23:15:31 · 742 阅读 · 0 评论 -
Spring aop产生代理对象的流程以及相关核心类的作用
spring aop产生代理对象的流程的入口执行时机:发生在ioc三步创建流程中的第三步初始化之后去触发aop流程 AspectJAwareAdvisorAutoProxyCreator接口继承体系: |-BeanPostProcessor postProcessBeforeInitialization---初始化之前调用 postProcessAfterInitialization---初始化之后调用 |--InstantiationAwar原创 2020-06-19 22:23:18 · 606 阅读 · 0 评论 -
aop源码图示
原创 2020-06-18 22:02:07 · 64 阅读 · 0 评论 -
Aop源码分析
spring中aop的用法有两种(spring aop方式【aop:advice】、spring整合AspectJ的方式【aop:aspect】)<aop:advisor advice-ref=""/> <aop:aspect ref="myAdvice"/>获取十个BeanDefinition的流程(xml中的aop标签)创建代理对象的流程代理对象执行流程...原创 2020-06-18 21:58:49 · 93 阅读 · 0 评论 -
Spring-Aware接口和其它面试问题
Aware接口BeanNameAware BeanFactoryAware ApplicationContextAwareBeanFactory和FactoryBean的区别BeanFactory:工厂,是ioc容器的基础,可以管理和创建任意类型的对象; FactoryBean:特殊的bean,存在于ioc容器中,也就是存在于BeanFactory。FactoryBean只能针对某一类bean进行存储。 通过BeanFactory去管理的bean实例,都需要在xml中或者注解方式进行配置;原创 2020-06-17 21:06:46 · 149 阅读 · 0 评论 -
Spring循环依赖面试问题
循环依赖循环依赖、循环调用 循环依赖是针对成员变量---单例才可以解决setter方法循环依赖,多例是无法解决循环依赖 构造方法循环依赖----无法解决,只有将构造依赖改为setter方法依赖 setter方法循环依赖---可以解决 循环调用是针对方法---无法解决的 结论: 循环调用就是A方法调用B方法,B方法调用A方法,这是一个闭环,是死循环,只能规避,无法解决 解决setter方法循环依赖 A对象依赖B对象、B对象依赖A对象 A对象创建(实例化) 在1和2之原创 2020-06-17 20:33:28 · 645 阅读 · 0 评论 -
循环依赖
循环依赖创建bean的流程 bean的实例化 bean的属性填充 bean的初始化(非循环依赖场景下,如果要产生代理对象,在这个子流程中产生) Spring解决setter方法循环依赖的方式(三级缓存) 三级缓存的作用 三级缓存同一个时间段内,同一个beanName,只会存在于一个缓存中 如果不是循环依赖的场景下,二级缓存和三级缓存是使用不到到 如何判断是否是处于循环依赖的场景下? 正在创建中的标识(Set集合) 一级缓存,存储的是最终的单例bean原创 2020-06-15 21:30:17 · 126 阅读 · 0 评论 -
AOP核心概念
AOP的基础概念详解AOP:面向切面编程 OOP:面向对象编程 AOP的作用:可以针对目标对象进行无感知(在不修改代码的情况下)功能增强 功能分为业务功能和系统功能 业务功能:业务操作 系统功能:事物、日志、安全等 AOP可以将业务功能和系统功能进行拆分、专人干专事 AOP是一种思路,它的实现产品有多种:AspectJ、spring AOP、spring和AspectJ整合 AOP是通过哪种实现无感知的功能增强? 静态织入 使用字节码拼接技术,在编译期间,针对目标对原创 2020-06-10 22:27:41 · 288 阅读 · 0 评论 -
spring循环依赖
spring循环依赖依赖:引用、成员变量 ClassA类---->ClassB类 ClassB类---->ClassA类 依赖注入有两种注入方式:构造方法\setter方法注入 循环依赖分为构造方法 setter方法循环依赖的例//订单OrderService { UserService userService; saveOrder(){ //插入订单表(需要用户名称、而页面只传递一个用户ID) /...原创 2020-05-30 20:06:18 · 103 阅读 · 0 评论 -
ApplicationContext接口
ApplicationContext接口原创 2020-05-28 08:43:05 · 209 阅读 · 0 评论 -
BeanFactory接口
BeanFactory接口图解原创 2020-05-28 08:15:58 · 144 阅读 · 0 评论 -
spring事物
spring.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:t原创 2020-05-27 14:40:56 · 74 阅读 · 0 评论 -
aop基于xml开发
aop基于xml开发<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" ..原创 2020-05-25 19:54:26 · 79 阅读 · 0 评论 -
aop常用术语
aop常用术语Joinpoint(连接点): 指那些被拦截器的点。 在spring中这些点指的是方法,因为spring只支持方法类型的连接点 Pointcut(切入点) 我们要对哪些Joinpoint进行拦截的定义 Advice(通知/增强) 是指拦截到Joinpoint之后所要做的事情就是通知 通知分类 前置通知 后置通知 异常通知 最终通知 环绕通知(切面要完成的功能) Introduction(引介) 引介是一种特殊的通知在不修改原创 2020-05-23 20:32:23 · 258 阅读 · 0 评论 -
aop入门
AOP入门AOP,面向切面编程 作用:在不修改代码的情况下,可以通过aop技术去增强目标类的功能。通过【预编译方式】和【运行期动态代理】实现程序功能的统一维护的一种技术 优势:重复性代码被抽取出来之后,维护更加方便 利用aop可以对业务代码中【业务逻辑】和【系统逻辑】进行隔离,从而使得【业务逻辑】和【系统逻辑】之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率 纵向继承体系 横向继承体系 ...原创 2020-05-23 18:58:48 · 156 阅读 · 0 评论 -
手写ioc代码
bean.xml<beans> <bean id="studentService" class="com.hgd.spring.service.StudentServiceImpl"> <property name="studentDao" ref="studentDao"/> </bean> <bean id="userService" class="com.hgd.spring.service.Use原创 2020-05-23 16:56:24 · 166 阅读 · 0 评论 -
手写ioc的思路分析
手写ioc的思路分析BeanDefinition解析阶段 将bean标签解析成BeanDefinition对象 将BeanDefinition对象存储到Map集合 Bean实例创建阶段(只是针对单例bean存储) 根据beanName读取存储单例BeanDefinition信息的Map集合,查找是否有指定beanName的bean实例 有则返回 没有则进行bean实例的创建 根据beanName读取存储BeanDefinition信息的Map集合,获取对应的BeanDefin原创 2020-05-17 14:53:38 · 131 阅读 · 0 评论 -
Spring中使用简单工厂模式去管理bean的分析
Spring中使用简单工厂模式去管理bean的分析public class BeanFactory { public Object getBean(String name) { if ("cat".equals(name)) { return new Cat(); }else if ("dog".equals(name)) { return new Dog(); }else{ return null } }}public class BeanFactor原创 2020-05-16 20:05:08 · 344 阅读 · 0 评论 -
Spring循环依赖
循环依赖(A--->B,B--->A) 构造方法的循环(无法解决) set方法的循环(spring中可以通过缓存去解决掉)原创 2020-05-16 13:24:58 · 190 阅读 · 0 评论 -
Spring核心概念
Spring核心概念 IOC:扩展反转,new对象的权利的由使用者改为spring去创建。spring要想使用IOC去创建对象,必须使用到DI DI:依赖注入,就是给new出来的对象设置成员变量 AOP:就是将项目中的业务代码(提交订单)和系统代码(事物、记录日志)进行解耦,也是给业务代码进行一样,功能增强的一种途径 AOP是和OOP,都是编程思想 AOP的实现有哪些? spring AspectJ spring整合AspectJ原创 2020-05-16 10:44:13 · 68 阅读 · 0 评论 -
Spring 、Springboot、SpringClould
Spring 、Springboot、SpringClould区别Spring.io spring基础(IOC、DI、AOP) springboot spring framework===========》(spring,包含springmvc) 分成很多组件(jar包) spring应用组件 spring data spring clould spring security ...原创 2020-05-16 10:17:44 · 114 阅读 · 0 评论 -
spring-junit
Junit@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext.xml")public class DemoTest { @Autowired private UserService userService; @Test public void hello(){ userService.save(原创 2020-05-15 11:42:32 · 92 阅读 · 0 评论 -
ioc基于纯注解实现
IOC基于纯注解常用注解Configuration 相当于xml文件 Bean bean标签 ComponentScan 注解扫描 PropertySource 引入properties文件 Import 引入其它的spring标签 代码@Configuration@ComponentScan(basePackages = "com.hgd")@Import(JdbcConfig.class)public class Spri原创 2020-05-15 11:23:37 · 101 阅读 · 0 评论 -
IOC基于注解和xml方式
IOC常用的注解@Component @Controller @Service @Repository DI常用的注解@Autowired 自动装配 @Qualifier 自动装配 @Resource 自动装配 @Inject 根据类型自动装配 @Value 基本类型和String类型赋值 @Scope bean的作用范围注解 ...原创 2020-05-15 08:57:13 · 83 阅读 · 0 评论 -
DI
依赖依赖指的是Bean实例中的属性 属性: 简单类型(8种基本类型+String类型) POJO类型 集合数组类型 依赖注入的方式构造函数注入 private Integer id; private String name; public UserServiceImpl(Integer id, String name) { this.id = id; this.name = name; } public v原创 2020-05-14 11:45:34 · 90 阅读 · 0 评论 -
bean实例化三种方式
bean实例化三种方式第一种:无参构造 <!--无参数构造--> <bean id="userService" class="com.hgd.spring.service.UserServiceImpl"></bean> 第二种:静态工厂 第三种:实例工厂原创 2020-05-14 10:52:09 · 156 阅读 · 0 评论 -
Spring-ioc bean
bean标签 作用 用于配置被spring容器管理的bean的信息 默认情况下它调用的是类中的【无参构造函数】,如果没有无参构造则不能创建成功 属性 id:容器中的唯一标识 class:类的全限定名 init-method:类的初始化方法名称 destroy-method:类的销毁方法名称 scope:指定对象的作用范围 single:默认值,单例 prototype:多例(每次访问对象时,都会重新创建对象实例) ...原创 2020-05-13 16:25:25 · 63 阅读 · 0 评论 -
spring
Spring特点方便解耦,简化开发 AOP编程支持 声明式事物编程 方便程序的测试 方便集成各种优秀的框架 降低Java EE API的使用难度 JAVA源码是经典学生范例Spring体系结构 Spring核心概念介绍IOC(控制反转)。对象的创建权力由程序反转给spring框架 DI(依赖注入)。在spring框架中负责创建Bean对象时,动态的将依赖对象注入到Bean组件中 AOP(面向切面编程)。在不修改目标对象的源代码情况下,增强IOC容器中Bean的功能 ...原创 2020-05-13 15:14:35 · 90 阅读 · 0 评论