Spring框架[共44页]

上传人:哈**** 文档编号:136773082 上传时间:2020-07-02 格式:PPT 页数:44 大小:610.01KB
返回 下载 相关 举报
Spring框架[共44页]_第1页
第1页 / 共44页
Spring框架[共44页]_第2页
第2页 / 共44页
Spring框架[共44页]_第3页
第3页 / 共44页
Spring框架[共44页]_第4页
第4页 / 共44页
Spring框架[共44页]_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《Spring框架[共44页]》由会员分享,可在线阅读,更多相关《Spring框架[共44页](44页珍藏版)》请在金锄头文库上搜索。

1、1,Spring,2,Sping简介,Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架 2大核心概念IoC AOP E:zhengda各种资料spring-framework-referencehtml,3,Sping简介,Spring容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型 (prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该 被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以

2、使用。,4,Sping简介,控制反转(IoC)Inversion of Control, Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是 这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递 给它。,5,Spring简介,依赖注入(DI)Dependency Injection :所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象地说,即由容器动态地将某种依赖关系注入到组件之中。 高内聚低耦合 就是由容器控制程序之

3、间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。,6,Sping简介,面向切面(AOP)Spring提供了面向切面编程的 丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只 实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。,7,Sping简介,第一个Spring工程 配置文件:applicationContext.xml 路径:src T

4、est: BeanFactory factory=new ClassPathXmlApplicationContext(“applicationContext.xml”);/容器初始化,所以的bean被new出来 User u=(User)factory.getBean(user);,8,配置文件,配置文件applicationContext.xml的beans标签 xmlns: 命名空间,引用使用的模块,9,Sping简介,Xml配置里: Bean标签,相当于new一个class的对象 Java里 User u=(User)factory.getBean(user); u依赖于配置的clas

5、s,也就是依赖容器给注入。 程序里不用new,控制不在程序中,在容器。 所以叫控制反转,10,依赖注入方法,构造方法注入 Setter注入(调用set方法) 接口注入(基本不用),11,依赖注入方法,构造方法注入 ,12,依赖注入方法,Setter注入 当注入一个类的对象时 ,13,依赖注入方法,注入一个类对象的值 ,14,Bean的生命范围, Scope:bean的生命范围,15,Bean的生命范围,16,Bean的生命范围,Singleton:默认。无论拿多少次,都是同一个bean。(system.out.println(user1=user2)) prototype:每次都新new一个对

6、象出来 Struts2的action bean,应该用prototype,17,集合注入,List list1 list2 list3 ,18,集合注入,Map Set Array,19,Parent bean, ,20,自动装配AutoWire,byName:根据名字 byType:根据类型 ,21,生命周期, Bean在容器初始化时不初始化,用到的时候才初始化(new出来) Bean特别多,程序启动慢,则可设定,22,Init/destroy method,初始化时和销毁时调用的方法,23,面向切面编程AOP,Aspect Oriented Programming 事务管理 权限管理 异常

7、管理 效率管理,24,面向切面编程AOP,配置文件applicationContext.xml的beans标签里加 xmlns:aop=http:/www.springframework.org/schema/aop xsi:schemaLocation里加: http:/www.springframework.org/schema/aop http:/www.springframework.org/schema/aop/spring-aop-2.5.xsd,25,面向切面编程AOP,定义一个切面 定义一个切面对象 在切面的前或者后,切入执行某个方法 ,26,面向切面编程AOP,在执行 exp

8、ression 方法之前(before)执行切面对象“se”的checkSecurity方法,27,面向切面编程AOP,另一种写法: ,28,Spring整合hibernate,29,Spring整合hibernate,30,Spring整合hibernate,构建SessionFactory(annotation) ,31,Spring整合hibernate,构建SessionFactory(xml) ,32,Spring整合hibernate,事务处理 Beans标签里加入tx相关配置 xmlns:tx=http:/www.springframework.org/schema/tx htt

9、p:/www.springframework.org/schema/tx http:/www.springframework.org/schema/tx/spring-tx-2.5.xsd,33,Spring整合hibernate,事务管理器txMagager sessionFactory注入给txMagager,之后事务都用txManager来处理,34,Spring整合hibernate,事务的传播属性Propagation 通过配置事务的传播属性来达到精确控制事务行为的目的。既:当前执行环境里有无事务,执行到当前方法时,怎么处理事务。事务的属性总共有七种: Required Mandat

10、o RequiresNew Supports NotSupported Never Nested,35,Spring整合hibernate,Required属性告诉容器某个特定的方法需要一个事务,如果上下文中已经存在事务,则加入;否则,开启一个事务。这是一种使用最频繁的事务属性,适用于大多数情况,36,Spring整合hibernate,MANDATORY Mandatory属性告诉容器某个特定的方法需要一个事务。但是,不同于Required属性,它无论如何都不会开启新的事务;相反的,它会“强制”要 求该方法被调用时上下文中必须存在事务,否则会抛出TransactionRequiredExce

11、ption异常,提示需要一个事务但没有找到。何时选 择Mandatory,后面将会专门抽出一节来分析。 REQUIRESNEW RequiresNew属性告诉容器某个特定的方法需要一个新事务的支持。如果上下文中已经存在事务A,则该事务A挂起,并启动一个新的事务B。当事务B 结束后,事务A被唤醒并继续执行。事实上,使用RequiresNew违反了事务的ACID原则,因为新事务会导致原有事务的挂起。,37,Spring整合hibernate,设置传播特性 ,38,Spring整合hibernate, ,39,Spring整合hibernate,40,Spring整合hibernate,使用data

12、Source Jar包:commons-pool-1.6.jar commons-dbcp-1.4.jar 将dataSource注入给sessionFactory 将sessionFactory注入给txManager,41,Spring整合hibernate,给sessionFactory设置各种属性 org.hibernate.dialect.SQLServerDialect true - - model.User- - - ,42,Spring整合hibernate,引入properties文件 classpath:jdbc.properties ,43,ssh框架整合,Web.xml中配置Spring的用于初始化容器对象的监听器 contextConfigLocation classpath*:applicationContext.xml org.springframework.web.context.ContextLoaderListener ,44,ssh框架整合,struts.xml配置 /success.jsp /failed.jsp applicationContext.xml配置 ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号