Spring重要知识点整理
一、IOC(Inversion of Control):控制反转
(1)Spring Core最核心部分
(2)需要先了解依赖注入(Denpendency Injection)/把底层类作为参数传递给上层类,实现上层对下层的“控制”
1.IOC、DI、DL的关系:
2.IOC容器的优势
(1)避免在各处使用new来创建类,并且可以做到统一维护
(2)创建实例的时候不需要了解其中的细节
3.Spring IOC支持的功能
(1)依赖注入 (2)依赖检查 (3)自动装配 (4)支持集合
(5)制定初始化方法和销毁方法 (6)支持回调方法
二、Spring IOC 容器的核心接口:
1.BeanFactory
(1)提供IOC的配置机制
(2)包含Bean的各种定义,便于实例化Bean
(3)建立Bean之间的依赖关系
(4)Bean生命周期的控制
2.ApplicationContext的功能(继承多个接口)
(1)Bean Factory:能够管理、装配Bean
(2)ResourcePatternResolver:能够加载资源文件
(3)MessageSource:能够实现国际化等功能
(4)ApplicationEventPublisher:注册监听器,实现监听机制
3.getBean方法的代码逻辑
(1)转化beanName
(2)从缓存中加载实例
(3)实例化Bean
(4)检测parentBeanFactory
(5)初始化依赖Bean
(6)创建Bean
4.Spring Bean的作用域
(1)Singleton:Spring默认作用域,容器里拥有唯一的Bean实例
(2)prototype:针对每个getBean请求,容器都会创建一个Bean实例
(3)request:为每个Http请求创建一个Bean实例
(4)session:为每个Session创建一个Bean实例
(5)globalSession:会为每个全局Http Session创建一个Bean实例,该作用域仅对Portlet有效
5.Spring Bean 的生命周期
(1)创建过程:
(2)销毁过程:a.若实现了DisposableBean接口,则会调用destroy方法
b.若配置了destroy-method属性,则会调用其配置的销毁方法
三、AOP
1.AOP的三种织入方式
(1)编译时织入:需要特殊的编译器,如AspectJ
(2)类加载时织入:需要特殊的编译器,如AspectJ和Aspectwerkz
(3)运行时织入:Spring采用的方式,通过动态代理的方式
2.Advice的种类
(1)前置通知(Before) (2)后置通知(AfterReturning) (3)异常通知(AfterThrowing)
(4)最终通知(After) (5)环绕通知(Around)
3.AOP的实现:JdkProxy和Cglib
(1)由AopProxyFactory根据AdvisedSupport对象的配置来决定
(2)默认策略如果目标类是接口,则用JDKProxy来实现,否则用后者
(3)JDKProxy的核心:InvocationHandler接口和Proxy类
(4)Cglib:以继承方式动态生成目标类的代理
JDKProxy:通过java的内部反射机制实现(反射机制在生成类的过程中比较高效)
Cglib:借助ASM实现(ASM在生成类之后的执行过程中比较高效)
四、Spring事务
(1)ACID
(2)隔离级别
(3)事务传播
Spring重要知识点整理的更多相关文章
- 2019年Spring核心知识点整理,看看你掌握了多少?
前言 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,在这里总结一下,理顺头绪. Spring 概述 Spr ...
- Spring MVC知识点整理
网上Spring MVC相关知识点的介绍已经有很多了,但是大部分文章都是介绍其中的一部分知识点. 本文希望能够向读者做一个基本整体的介绍,首先我们先来了解下Spring MVC的基础接口和组件. ...
- Spring MVC 知识点整理
extend:http://www.jianshu.com/p/bef0e52067d2 1. Redis 存储方式 Redis存储机制分成两种Snapshot 和 AOF.无论是那种机制,Redis ...
- Spring IOC知识点一网打尽!
前言 只有光头才能变强 回顾前面: 给女朋友讲解什么是代理模式 包装模式就是这么简单啦 单例模式你会几种写法? 工厂模式理解了没有? 在刷Spring书籍的时候花了点时间去学习了单例模式和工厂模式,总 ...
- JSP页面开发知识点整理
刚学JSP页面开发,把知识点整理一下. ----------------------------------------------------------------------- JSP语法htt ...
- JAVA 150道笔试题知识点整理
JAVA 笔试题 整理了几天才整理的题目,都是在笔试或者面试碰到的,好好理解消化下,对你会有帮助,祝你找工作顺利,收到满意的 offer . 1.Java 基础知识 1.1 Java SE 语法 &a ...
- Spring JdbcTemplate用法整理
Spring JdbcTemplate用法整理: xml: <?xml version="1.0" encoding="UTF-8"?> <b ...
- ACM个人零散知识点整理
ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...
- Android 零散知识点整理
Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...
随机推荐
- 二分优化lis和STL函数
LIS:最长上升子序列: 这个题我们很显然会想到使用dp, 状态设计:dp[i]代表以a[i]结尾的LIS的长度 状态转移:dp[i]=max(dp[i], dp[j]+1) (0<=j< ...
- springBoot整合jpa
https://blog.csdn.net/qq_35180973/article/details/82316438 总体来讲只是在service调用dao的时候用接口代替dao继承CrudRepos ...
- redis.exceptions.ConnectionError: Error 111 connecting to localhost:6379. Connection refused.
$ pip install redis>>> import redis>>> conn = redis.Redis()>>> conn.keys( ...
- 解决pycharm输入法不跟随的方法
先上图,这个pycharm编辑器默认条件下输入中文时输入法框的状态 这个是更改后的状态 修改方法就是将android studio中的jre目录 拷贝至 下,并更改名称为jre64 重新启动pycha ...
- volatility内存取证
最近参加了45届世界技能大赛的山东选拔赛,样题里有一个题如下: 师傅好不容易拿到了压缩包的密码,刚准备输入,电脑蓝屏 了... = =",题意简单明了,易于理解.一看就是内存取证的题并且已经 ...
- C#中的反射解析及使用(转)
原文:https://cloud.tencent.com/developer/article/1129356 1.对C#反射机制的理解 2.概念理解后,必须找到方法去完成,给出管理的主要语法 3.最终 ...
- week1总结
week1总结 1. 开发上线工具流程以及规范类 规范: css注释:/* Comment Text*/ Css嵌套选择器:请不要让嵌套选择器的深度超过 3 层! 再说一遍: 永远不要嵌套 ID 选择 ...
- windows服务器环境问题---api-ms-win-crt-runtimel1-1-0.dll缺失解决
安装VC++库 地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
- react的this.setState没有触发render
一.浅比较 出现情况: 明明改变了值, 并且回调函数也触发了, 但是就是不触发render import React, { PureComponent } from 'react' import { ...
- CF Manthan, Codefest 16 B. A Trivial Problem
数学技巧真有趣,看出规律就很简单了 wa 题意:给出数k 输出所有阶乘尾数有k个0的数 这题来来回回看了两三遍, 想的方法总觉得会T 后来想想 阶乘 emmm 1*2*3*4*5*6*7*8*9 ...