Spring依赖注入及AOP简介.

Slides:



Advertisements
Similar presentations
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
Advertisements

第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
浙江省县级公立医院改革与剖析 马 进 上海交通大学公共卫生学院
第二章 环境.
教师招聘考试 政策解读 讲师:卢建鹏
了解语文课程的基本理念,把握语文素养的构成要素。 把握语文教育的特点,特别是开放而有活力的语文课程的特点。
北台小学 构建和谐师生关系 做幸福教师 2012—2013上职工大会.
福榮街官立小學 我家孩子上小一.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
历史人物的研究 ----曾国藩 组员: 乔立蓉 杜曜芳 杨慧 组长:马学思 杜志丹 史敦慧 王晶.
教育部高职高专英语类专业教学指导委员会 刘黛琳 山东 • 二○一一年八月
淡雅诗韵 七(12)班 第二组 蔡聿桐.
第七届全国英语专业院长/系主任高级论坛 汇报材料
小數怕長計, 高糖飲品要節制 瑪麗醫院營養師 張桂嫦.
制冷和空调设备运用与维修专业 全日制2+1中等职业技术专业.
会计信息分析与运用 —浙江古越龙山酒股份有限公司财务分析 组员:2006级工商企业管理专业 金国芳 叶乐慧 魏观红 徐挺挺 虞琴琴.
第六章 人体生命活动的调节 人体对外界环境的感知.
芹菜 英语051班 9号 黄秋迎 概论:芹菜是常用蔬菜之一,既可热炒,又能凉拌,深受人们喜爱。近年来诸多研究表明,这是一种具有很好药用价值的植物。 别名:旱芹、样芹菜、药芹、香芹、蒲芹 。 芹菜属于花,芽及茎类。
2012年 学生党支部书记工作交流 大连理工大学 建工学部 孟秀英
北京市职业技能鉴定管理中心试题管理科.
2014吉林市卫生局事业单位招聘153名工作人员公告解读
各類所得扣繳法令 與申報實務 財政部北區國稅局桃園分局 103年9月25日
初級游泳教學.
爱国卫生工作的持续发展 区爱卫办 俞贞龙.
第八章 数学活动 方程组图象解法和实际应用
本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响. 本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响.
散文鉴赏方法谈.
比亚迪集成创新模式探究 深圳大学2010届本科毕业论文答辩 姓名:卓华毅 专业:工商管理 学号: 指导老师:刘莉
如何撰写青年基金申请书 报 告 人: 吴 金 随.
点击输 入标题 点击输入说明性文字.
國際志工海外僑校服務 越南 國立臺中教育大學 2010年國際志工團隊.
痰 饮.
學分抵免原則及 學分抵免線上操作說明會.
教 学 查 房 黄宗海 南方医科大学第二临床医学院 外科学教研室.
评 建 工 作 安 排.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
首都体育学院 武术与表演学院 张长念 太极拳技击运用之擒拿 首都体育学院 武术与表演学院 张长念
现行英语中考考试内容与形式的利与弊 黑龙江省教育学院 于 钢 2016, 07,黄山.
第5讲:比较安全学的创建 吴 超 教授 (O)
彰化縣西勢國小備課工作坊 新生入學的班級經營 主講:黃盈禎
重庆市西永组团K标准分区基本情况介绍.
西貢區歷史文化 清水灣 鍾礎營,楊柳鈞,林顥霖, 譚咏欣,陳昭龍.
所得稅扣繳法令與實務 財政部北區國稅局桃園分局 102年12月19日 1 1.
角 色 造 型 第四章 欧式卡通造型 主讲:李娜.
走进校园流行 高二15班政治组 指导老师:曾森治老师.
医院文化建设 广东省中医院 2011年3月26日.番禺.
案例:海底捞模式 ——把服务做到极致.
医疗法律法规培训 连云港市东辛农场医院 周卫平 二0一四年十二月.
史泰博出货检验员面试中·········
09英本2班 罗芬.
个人所得税 扣缴申报表填报讲解.
主講人:孫台義 教授 哈薩克大學國際關係學院 客座教授
土地增值税清算业务培训 主讲人:吴金娟 怀集地税.
实训报告 财务管理二班 第三小组 组长:董文芳 执笔人:王瑾 组员:汲伦 庞宁宁 姜美.
基于SSH的web开发 AND 企业级WEB应用开发新技术
第一页是课程的标题 Spring入门示例.
J2EE Struts 和Spring 的区别.
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
SDA(Standard development architecture)框架介绍
基于struts和hibernate的网上新 闻发布系统
機構督導: 范盛翔 督導 實習生: 佛光大學社會學系江佳穎 實習日期: 7/1(二)~8/29(五)
第21章 Spring 的MVC框架 Spring不但一个很好的集成框剪,它还提供了构建Web应用程序的全功能MVC模块。Spring 的MVC框架非常强大并不逊色于其他专业的Web框架,如Struts、WebWork。但在国内Spring MVC应用的并不是特别多,原因可能是Struts太深入人心的缘故吧。
Presentation transcript:

Spring依赖注入及AOP简介

Spring是什么 一个开源框架 一个轻量级的DI和AOP容器框架 如果将一个j2ee构建的应用简单分为表示层、业务逻辑、数据持久层、数据层,我们所熟悉的ssh框架中的struts用在表示层,hibernate用在数据持久层,而spring则是贯穿整个

依赖注入和AOP 依赖注入(DI):Spring提供了一种松耦合的技术。使用DI,对象是被动接受依赖类而不是自己主动去找(不同于“委派”),对象不是从容器中查找它的依赖类,而是容器在实例化的时候主动加载对象并将其依赖类注入给它 面向切面(AOP):通过将业务逻辑从应用服务(如监控和事务管理)中分离出来,实现了内聚开发。应用对象只关心业务逻辑,而不负责系统问题(如日志和事务支持)

依赖注入 在Spring的核心配置文件applicationContext.xml中通过DI来装配bean applicationContext:bean工厂,继承了BeanFactory接口,单例类 Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的“图纸”。Java EE程序员必须学会并灵活应用这份“图纸”准确地表达自己的“生产意图”。Spring配置文件是一个或多个标准的XML文档

依赖注入 bean元素的作用是,当我们的spring框架加载时候,spring就会自动的创建一个bean对象,并放入内存: UserService userSerivce=new UserService(); userSerivce.setName(“邹方杰"); <bean id="userService" class="com.service.UserService"> <!-- 这里就体现出注入的概念. --> <property name="name"> <value>邹方杰</value> </property> </bean> 属性id表示javabean的名字,与类变量名对应 Property元素设置属性值,容器实例化时候加载类并赋值

依赖注入 <beans> <bean id="foo" class="...Foo"/> <bean id=“department” class=“*.Department"> <property name="empList"> <list> <ref bean="emp1" /> <ref bean="emp2"/> </list> </property> </bean> <beans> <bean id="foo" class="...Foo"/> <bean id="bar" class="...Bar"/> </beans> 对应所依赖类的属性id

依赖注入 DI也被称为控制反转(IoC),即我们获得以来对象的方式反转了 使用DI,对象的依赖都是在对象创建时由负责协调应用中各个对象的外部实体提供的。DI的关键优点是松耦合 得到spring 的applicationContext对象(容器对象) ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); UserService us=(UserService) ac.getBean("userService"); us.sayHello(); 调用getBean方法获取bean实例

依赖注入 依赖反转的实现:Java的反射机制 spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系 所谓依赖注入(控制反转)就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护 DI配合接口编程,的确可以减少层(web层) 和 业务层的耦合度 bean的生命周期(略)

AOP简介 AOP( aspect oriented programming ) 面向切面(方面)编程,是对所有对象或者是一类对象编程,核心是( 在不增加代码的基础上, 还增加新功能 ) 程序语言发展:面向过程(c语言)——面向对象(java)——面向切面,编程粒度越来越大,但程序员知道的底层细节被隐藏了

AOP简介 通知bean

创建切面 AOP介绍 通知 通知 连接点 切 入 切 入 程序执行 定义AOP术语 1.切面(aspect):要实现的交叉功能,是系统模块化的一个切面或领域。如日志记录。 2.连接点:应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出,或者要修改的 字段。 3.通知:切面的实际实现,他通知系统新的行为。如在日志通知包含了实 现日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。 4.切入点:定义了通知应该应用在哪些连接点,通知可以应用到AOP框架支持的任何连接点。 5.引入:为类添加新方法和属性。 6.目标对象:被通知的对象。既可以是你编写的类也可以是第三方类。 7.代理:将通知应用到目标对象后创建的对象,应用系统的其他部分不用为了支持代理对象而 改变。 8.织入:将切面应用到目标对象从而创建一个新代理对象的过程。织入发生在目标 对象生命周期的多个点上: 编译期:切面在目标对象编译时织入.这需要一个特殊的编译器. 类装载期:切面在目标对象被载入JVM时织入.这需要一个特殊的类载入器. 运行期:切面在应用系统运行时织入. 通知 通知 连接点 切 入 切 入 程序执行

创建通知 通知类型 接口 描述 Around org.aopalliance.intercept. MethodInterceptor 拦截对目标方法调用 Before Org.springframework.aop. MethodBeforeAdvice 在目标方法调用前调用 After AfterReturningAdvice 在目标方法调用后调用 Throws ThrowsAdvice 当目标方法抛出异常时调用

创建切面 前置通知 public interface MethodBeforeAdvice{ void before(Method m,Object[] os ,Object target){ } 该接口提供了获得目标方法、参数和目标对象的机会。不能够改变运行时参数,即不能替换参数对象和目标对象。 注意在方法结束后不返回任何值东西。原因是该接口返回后,目标方法将会被调用,应该返回目标对象的返回值。 ProxyFactoryBean是一个在BeanFactory中显式创建代理对象的中心类,可以给它一个要实现的接口、一个要代理的目标对象、一个要织入的通知,并且他将创建一个崭新的代理对象。

创建切面 定义切入点: 如果不能表达在应用系统的什么地方应用通知的话,通知将毫无用处,这就是切入点的用处。切入点决定了一个特定的类的特定方法是否满足一定的规则。若符合,通知就应用到该方法上。 <bean id="xxxService" class="…ProxyFactoryBean"> <property name="proxyInterfaces"> <value>……xxxService</value> </property> <property name="interceptorNames"> <list><value>xxxAdvisor</value></list> <property name="target"><ref bean="xxxTarget" /></property> </bean>

创建切面 Spring的目标不是提供最完善的AOP实现(虽然Spring AOP非常强大);而是要提供AOP实现与Spring IoC的紧密集成,以便帮助解决企业应用中的常见问题。 spring只支持方法连接点:不提供属性接入点,spring的观点是属性拦截破坏了封装。面向对象的概念是对象自己处理工作,其他对象只能通过方法调用得到私有属性。

Thank You !