spring下午代码_课堂笔记讲义框架应用技术_第1页
spring下午代码_课堂笔记讲义框架应用技术_第2页
spring下午代码_课堂笔记讲义框架应用技术_第3页
spring下午代码_课堂笔记讲义框架应用技术_第4页
spring下午代码_课堂笔记讲义框架应用技术_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章Spring 概述1.1 spring 简介Spring 是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程贯穿整个系统应用。Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 创建。简单来说,Spring 是一个分层的 JavaSE/EEfull-stack(一站式) 轻量级开源框架。1.2 Spring 与解耦合Spring 根据功能的不同,将代码划分为两类:主业务逻辑与系统级服务(交叉业务逻辑)。主业务逻辑间,及主业务逻辑与系统级服务间的耦合度是较高的。Spring 对于前述两种较高的耦

2、合度,采用了两种不同的技术进行解耦。使用 IoC 解耦主业务逻辑间的耦合度,使用 AOP 解耦主业务逻辑与系统级服务间的耦合度。1.3 Spring 框架的地址:官网:1.4 第一个 Spring 程序第2章Spring 与 IoCIoC,Inverof Control,控制反转。将传统上由程序代码直接操控的对象创建权交给容器,通过容器来管理对象的生命周期。控制反转是对对象控制权的转移,从代码本身转移到了容器。IoC 是一种,是一个概念,其实现方式有很多。当前比较流行的实现方式有两种:依赖注入与依赖查找。依赖查找:DL,Dependency Lookup,代码中需要给出目标对象的存放路径,系统

3、会根据路径到容器中查找相应的对象。典型的应用是 JNDI(Java Naming and Directoryerface,Java 命名与目录接口,这是一个第容器,是一个服务器)。依赖注入:DI,Dependency Injection,代码中无需给出目标对象的定位路径,只需给定对象名称或类型,系统就会直接到容器中进行查找。是目前最优秀的解耦方式。典型应用是 Spring。2.1 基于 XML 的 DI注入分类2.1.1(1)设值注入(2)构造注入命名空间注入2.1.2(1)p 命名空间设值注入(2)c 命名空间构造注入数组与集合属性注入2.1.3域属性的自动注入2.1.4SPEL 注入2.1

4、.5为应用指定多个 Spring 配置文件2.1.6(1)关系的配置文件(2)包含关系的配置文件2.2 基于注解的 DI2.2.1搭建环境(1) 导入 aop 的 Jar 包(2) 在 xml 文件中导入 context 约束2.2.2注解(1) Component与该注解功能相同,意义不同的注解还有三个:Reitory:注解在实现类上Service:注解在 Service 实现类上Controller:注解在 SpringMVC 的处理器类这四个注解都表示,将当前类的对象交给 Spring 容器来管理。(2) Value其在注入值时即没有使用设值注入,也没有使用构造注入,而就是注解注入。即,

5、与set 方法、带参构造器没有任何关系。(3) 域属性的自动注入AutowiredQualifier Reource2.2.3CodeConfig 容器类2.2.4使用 Spring 的 JUnit4 测试 Spring(1) 需要导入 spring-test 的 Jar 包(2) 在测试类头上添加两个注解(3) 在测试类中结合Autowired 使用2.2.5注解与 XML 共同使用时的优选级XML 的优选级要高于注解的。第3章Spring 与 AOP3.1 AOP 概述3.1.1AOP 简介在业,AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程

6、,通过预编译方式和运行期动态实现程序功能的的一种技术。AOP 是 OOP 的延续,是开发中的一个热点,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生范型。利用 AOP 可以对业务逻辑的各个部分进行,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP 底层采用两种动态模式实现:JDK 的动态,与 CGLIB 动态。3.1.2AOP 编程术语(1) 切面(Aspect)交叉业务逻辑,例如事务、安全、日志等,称为切面。(2) 目标对象()业务类的对象,称为目标对象。(3) 织入(Weaving)将切面到目标对象的目标方法的过程,称为织入。(4)

7、 连接点(JoinPo)目标对象中可以被切面织入的方法。(5) 切入点(Pocut)目标对象中真正被切面织入的方法。切入点一定是连接点,但连接点不一定是切入点。被标记为 final 的方法是不能作用连接点与切入点的。(6) 通知(Advice)通知是切面的一种,可以完成简单的织入功能。通知可以定义切面织入的时间点,切入点定义了切面织入的位置。(7) 顾问(Advisor)顾问是切面的一种,能够将通知以更为复杂的方式织入到目标对象中,是将通知包装为更复杂的切面的装配器。3.2 AspectJ 对 AOP 的实现3.2.1AspectJ 简介AspectJ 是一个面向切面的框架,它扩展了 Java

8、 语言。AspectJ 定义了 AOP 语法,所以它有一个专门的编译器用来生成遵守 Java 字节编码规范的 Class 文件。类型3.2.2AspectJ常用通知有五种:前置通知后置通知环绕通知异常通知最终通知3.2.3AspectJ 的切入点表达式通过切入点表达式可以过滤和选择切入点。execution(权限类型返回值类型 全限定性类名方法名(参数列表)抛出的异常类型)表达式:execution(public * *.*.*(.)意义:指定任意公共方法均为切入点。表达式:execution(* com.abc.service.*.*(.)意义:指定 com.abc.service 包中的何

9、意类的任意方法均为切入点。表达式:execution(*.service.*.*(.)意义:指定 service 包(该包前可以有多级父包)中的何意类的任意方法均为切入点。com.abc.service 是匹配的com.service 是匹配的service 是匹配的表达式:execution(*.service.*.*(.)意义:指定 service 包(该包前只能有一级父包)中的何意类的任意方法均为切入点。com.abc.service 是不匹配的com.service 是匹配的service 是不匹配的表达式:execution(*.*.doSome(.)意义:指定何意类的 doSome

10、()方法均为切入点。3.3 AspectJ 的开发环境搭建导入依赖3.3.1(1)AspectJJar 包(2)Spring 整合 AspectJ 的 Jar 包(3)Spring 对 AOP 的实现 Jar 包(4)AOP的 Jar 包3.3.2修改 Spring 配置文件(1) Spring 配置文件添加 AOP 约束(2)AOP 的 AspectJ 自动3.4 AspectJ 基于注解的 AOP 实现前置通知后置通知环绕通知异常通知最终通知3.5 AspectJ 基于 XML 的 AOP 实现前置通知后置通知环绕通知异常通知最终通知第4章Spring 与4.1 Spring 与 MyBa

11、tis 整合这是典型的 IoC 的应用。导入依赖4.1.1(1)Spring 的 5 个基本 Jar 包(2)Spring 的 JDBC 的 Jar 包(3)Spring 事务 Jar 包(4)spring 的 AOP 的 Jar 包(5)mybatis 的Jar 包(6)mybatis 与 Spring 整合的 Jar 包(7)驱动 Jar 包(8) Druid 数据源 Jar 包(9) log4j 的 Jar 包(10)slf4j 的 Jar 包(11)slf4j 与 log4j 整合 Jar 包编写代码4.1.2(1)定义实体类与 DB 表(2)定义 Service 接口及实现类(3)定义接口(4)定义测试类编写配置文件4.1.3(1)定义 MyBatis 的两个配置文件(2)定义 Spring 相关配置文件4.2 Spring 与事务这是典型的AOP 的应用。4.2.1Spring 事务管理的 API(1)事务管理器接口A、 常用的实现类DataSourceTranionManager:使用 JDBC、MyBatis、iBatis 等进行持久化时使用。HibernateTranionManager:使用 Hibernate 进行持久化时使用。B、 Spring 回滚方式Spring 事务默认的回滚方式是:发生运行时异常回滚,发生受查异常提交。(2) 事务定义接口默

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论