Spring

ioc/di 控制反转/依赖注入

aop 面向切面

Spring是轻量级开发框架 网站:https://spring.io
1)轻量 -1M
2)控制反转 -IOC(依赖注入)
3)面向切面编程 -AOP
4)容器(创建管理bean)
5)框架

优点
1.方便解耦,不强制关联,简化开发
2.AOP的支持
3.声明式事务
4.方便程序测试
5.集成各种优秀框架 Redis MongoDB(nosql) hibernate mybatis activemq...
6.降低java ee API使用难度
7.Spring源码
优势
1.低侵入性
2.依赖注入
3.aop方便事务配置,动态为类添加方法
4.Spring可是全有或者全无的程序
5.一站式框架:每层都有自己的实现

webservice(SOA 跨语言 服务端 --xml--客户端 )

ioc:控制反转 (创建对象和给对象设置属性)
加载配置的方式

1.BeanFactory(IOC容器 底层 不推荐) 采用延迟加载 ,只有在第一次调用时才会运行,验证是否出现错误
2.ApplicationContext(应用程序上下文 推荐)

读取Spring上下文方式
1.ClassPathXmlApplicationContext("ApplicationContext.xml")
2.FileSystemXmlApplicationContext("classpath:ApplicationContext.xml")

依赖注入
1.属性的set方法
2.构造方法
3.接口
Spring支持前两种

注入属性
普通类型
对象类型
null类型
集合类型:list map set

bean的作用域 scope
singleton(默认单例)
prototype(多例 有状态bean使用,每次要创建一个新的实例)
request(web有效)
session(web有效)
global session (porlet不常用)

bean的延迟加载

application实现默认将所有singleton bean 提前实例化(也就是依赖注入)
如果 设置lazy-init 设置为true ,实现懒加载

bean的继承: 用parent属性继承公有的属性

AOP面向切面的编程:
一次性解决一类问题
在不修改原有代码的基础上扩展程序(开闭原则)

方式

1.针对有接口的类,采用jdk动态代理(横向扩展 接口-实现类)
2.针对没有接口的类,采用cglib代理(纵向代理 继承)

Aop关键名词
Joinpoint(连接点):一个类当中的方法,或者说一个类里的哪些方法是可以被扩展或增强的
Pointcut(切入点):(从哪下手) 类里面有很多方法都可以被扩展或增加,但是我这次要扩展或增加的哪个方法 (原有方法-写的)
Advice(通知/增强):扩展或增强的逻辑(比如我在add方法前加日志,那么这个日志功能就叫通知或增强) (新写了一个方法—写的)

*******通知或增强的类别(时机)  (配置的)**
前置增强:有原有方法执行前执行 before
返回后增强:有原有方法执行后执行 after-returning
异常:有原有方法执行产生异常  after-throwing
后置(最终):在后置之后(收尾)   after  after-returning ----?after
after的执行是在after returning之后,但无论方法是否正常结束, after通知都会被执行
环绕:在方法前和后都可以执行他可以把原方法包起来 他需要拿到原有方法 around

Aspect(切面)(配置实现):把增强应用到切点的过程。
也就是把新写的方法应用到原有方法的过程 (配置的 满足哪些条件的类和方法)
Target:目标对象- 被增强方法所在的类
Waving:织入-把增强应用到目标的过程
Proxy:代理-一个类被aop织入增强后,就会在底层产生一个代理类
如果有接口的类-动态代理
没有接口的类-cglib代理

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 12,296评论 6 86
  • IOC和DI是什么? Spring IOC 的理解,其初始化过程? BeanFactory 和 FactoryBe...
    justlpf阅读 3,477评论 1 21
  • 什么是Spring Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Jav...
    jemmm阅读 16,473评论 1 133
  • 初秋,阳光暖暖洒在正午时光。一时兴起去翻了门口的信件框,五颜六色的明信片与大小字体不一的内容,昭示出写信人的喜乐悲...
    谪酒步松烟阅读 252评论 0 3
  • 1.樱花针管笔:03号 1支 初学者一支03就够用,熟练之后可选择搭配01号+08号 淘宝链接: 【SAKURA樱...
    Sophie_Lyk阅读 430评论 0 0