day37jdbc支持代理模式.aop编程教程方案.docxVIP

  • 4
  • 0
  • 约1.05万字
  • 约 13页
  • 2017-05-07 发布于湖北
  • 举报

day37jdbc支持代理模式.aop编程教程方案.docx

共性问题: 1. 服务器启动报错,什么原因? * jar包缺少、jar包冲突 1) 先检查项目中是否缺少jar包引用 2) 服务器: 检查jar包有没有发布到服务器下; 用户库jar包,需要手动发布到tomcat. (每次新建项目) 3) 重新发布项目 * 配置文件错误 (web.xml / struts.xml /bean.xml /hibernate.xml / *.hbm.xml) 明确的提示 * 端口占用 * webapps项目过多 当前项目没有问题,有可能是其他项目出错,这样启动也会报错!但这个错误不是当前错误报的,所以不影响当前项目运行. 注意: 一般开发中,一个tomcat下只有一个项目。 2. 一般启动报错: ClassNotFoundException异常 少jar包。 3. 访问404,什么原因? 1)客户端路径写错,或跳转错误。 2)启动报错 Web项目中,启动后一定要看下,是否报错。 4. 点击某个功能报错。 后台代码错误: ? 找到页面,点击哪个操作,提交到哪个地址 --》后台在提交地址的第一行打断点 Spring提供了一站式解决方案: 1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系 2) Spring Web Spring对web模块的支持。 -à 可以与struts整合,让struts的action创建交给spring -à spring mvc模式 3) Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】 4) Spring ORM spring对orm的支持: à 既可以与hibernate整合,【session】 à 也可以使用spring的对hibernate操作的封装 5)Spring AOP 切面编程 6)SpringEE spring 对javaEE其他模块的支持 目标: 1) 代理模式 静态代理 动态代理 Cglib代理 2)手动实现AOP编程 【代理模式】 3)AOP编程 * 注解方式实现 * XMl配置方式实现 4) Spring DAO Spring对jdbc操作的支持 1. 代理模式 1.1 概述 代理(Proxy)是一种设计模式, 提供了对目标对象另外的访问方式;即通过代理访问目标对象。 这样好处: 可以在目标对象实现的基础上,增强额外的功能操作。(扩展目标对象的功能)。 举例:明星(邓紫棋)?---经纪人-------用户 目标 (代理) 代理模式的关键点: 代理对象与目标对象。 1.2 静态代理 静态代理, 1) 代理对象,要实现与目标对象一样的接口; 2) 举例: 保存用户(模拟) Dao , 直接保存 DaoProxy, 给保存方法添加事务处理 总结静态代理: 1)可以做到在不修改目标对象的功能前提下,对目标对象功能扩展。 2)缺点: --》 因为代理对象,需要与目标对象实现一样的接口。所以会有很多代理类,类太多。 --》 一旦接口增加方法,目标对象与代理对象都要维护。 解决: 代理工厂? 可以使用动态代理。 1.3 动态代理 动态代理, 1)代理对象,不需要实现接口; 2)代理对象的生成,是利用JDKAPI, 动态的在内存中构建代理对象(需要我们指定创建 代理对象/目标对象 实现的接口的类型;); 3) 动态代理, JDK代理, 接口代理; JDK中生成代理对象的API: |-- Proxy static Object newProxyInstance( ClassLoader loader, 指定当前目标对象使用类加载器 Class?[] interfaces, 目标对象实现的接口的类型 InvocationHandler h 事件处理器 ) 动态代理总结: 代理对象不需要实现接口,但是目标对象一定要实现接口;否则不能用动态代理! (class $Proxy0 implements IuserDao) 思考: 有一个目标对象,想要功能扩展,但目标对象没有实现接口,怎样功能扩展? Class UserDao{} // 子类的方式 Class subclass extends UserDao{} 以子类的方式实现(cglib代理) 1.4 Cglib代理 Cglib代理,也叫

文档评论(0)

1亿VIP精品文档

相关文档