当前位置: 首页 > news >正文

cms网站开发实验报告什么都不懂做网站

cms网站开发实验报告,什么都不懂做网站,迎访问中国建设银行网站_,中国建筑官网站目录 AOP概念代理模式引出AOP实现方式xml方式实现注解方式实现 AOP 概念 事务管理#xff1a;比如可以抽取try catch的重复代码 日志监控#xff1a;比如业务逻辑前后打印关于当前订单数量的日志#xff0c;了解业务做了什么 性能监控#xff1a;比如业务前后打印时间比如可以抽取try catch的重复代码 日志监控比如业务逻辑前后打印关于当前订单数量的日志了解业务做了什么 性能监控比如业务前后打印时间相减可查看业务跑完所需时间 代理模式引出 用aop实现扩展功能 aop用代理模式实现但是代理模式里的扩展功能还是需要我们自己写 静态代理相当于一个中介只代理一个固定的房东的房源基本不用 动态代理默认没有使用的时候动态生成 AOP以上大方向 SpringAOPAOP的spring实现方式用动态代理方式实现。它的实现方式又有两种jdkCGLIBspring自动选择用其中哪种方式代理类自动生成也不用管有接口的时候默认使用jdk没有的时候用cglib(第三方jar包)现在一般service都有接口 AOP实现方式 xml方式实现 1.编写TxManager用来提供业务逻辑外的扩展功能 - 如事务管理 /*我们自己的扩展功能*/ public class TxManager {public void open (){System.out.println(开启事务);}public void commit (){System.out.println(提交事务);}public void rollback(Throwable e){e.printStackTrace();//处理异常System.out.println(回滚事务);}public void close(){System.out.println(关闭事务);}public void around(ProceedingJoinPoint point){try {open();point.proceed();//执行真正的业务commit();} catch (Throwable e) {e.printStackTrace();rollback(e);} finally {close();}} }2.准备xmlAOP环境在Spring配置文件中引入头支持以支持aop标签 SpringTest-Context.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:aophttp://www.springframework.org/schema/aopxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd3.配置的三要素 何时如在业务的执行前、后、catch 何地指的是在哪一个方法 做什么执行我们自定义扩展业务类的方法 面向切面编程面向扩展功能编程 其他 spring通过动态代理实现aop配置aop后只能注入接口通过接口找到被引用的代理类Spring容器中就只有代理类没有实现类 RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration//回到当前类的包下 查找当前类名-Context.xml的配置文件 public class SpringTest {AutowiredIUserService userService;Testpublic void testUser(){System.out.println(userService.getClass());} }SpringTest-Context.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:aophttp://www.springframework.org/schema/aopxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdbean iduserService classcn.itsource._03aopxml.service.impl.UserServiceImpl/bean iddepartmentService classcn.itsource._03aopxml.service.impl.DepartmentServiceImpl/!--将扩展功能交给Spring容器管理方便AOP使用--bean idtxManager classcn.itsource._03aopxml.TxManager/!--SpringAOP的核心配置--aop:config!--配置切点 配置何地 在哪一个方法执行expression表达式 通过表达式我们找在哪一个方法执行第一个*任意返回值I*Service:所有以I开头 Service结尾的类里面的所有方法都加上事物第三个*任意方法save(..):任意参数--!--execution(* cn.itsource._03aopxml.service.impl.UserServiceImpl.save(..))execution(* cn.itsource._03aopxml.service.impl.UserServiceImpl.*(..))--aop:pointcut idtxPoint expressionexecution(* cn.itsource._03aopxml.service.I*Service.*(..))/!--配置切面 --aop:aspect reftxManager!--配置前置通知 配置何时做什么--!--aop:before methodopen pointcut-reftxPoint/--!--配置后置通知--!--aop:after-returning methodcommit pointcut-reftxPoint/--!--配置异常通知--!--aop:after-throwing methodrollback pointcut-reftxPoint throwinge/--!--配置最终通知--!--aop:after methodclose pointcut-reftxPoint/--!--配置环绕通知 环绕通知一行顶上面四行--aop:around methodaround pointcut-reftxPoint//aop:aspect/aop:config /beans测试 详细见工程代码 注解方式实现 A 引入容器扫描头 Spring AOP SpringTest-Context.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:aophttp://www.springframework.org/schema/aopxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd!--开启Spring注解扫描--context:component-scan base-packagecn.itsource._04aopanno/!--开启SpringAOP 注解扫描--aop:aspectj-autoproxy//beans后面的几步都是在TxManager中完成 B 将扩展业务交给容器管理 Component C 申明pointcutPointcut需要提供一个空方法 D 配置各种通知 只用Around环绕通知其他四种通知不能确定执行顺序 /*我们自己的扩展功能*/ Component //组件 把当前类交给Spring容器管理 Aspect // aop:aspect reftxManager 配置切面 public class TxManager {//配置切点 aop:pointcut idtxPointPointcut(execution(* cn.itsource._04aopanno.service.I*Service.*(..)))public void txPoint(){/*这个方法指明在业务类中的每个方法*/}/*配置前置通知*//*Before(txPoint())*/public void open (){System.out.println(开启事物);}/*AfterReturning(txPoint())*/public void commit (){System.out.println(提交事物);}/*AfterThrowing(value txPoint(), throwing e)*/public void rollback(Throwable e){e.printStackTrace();//处理异常System.out.println(回滚事务);}/*After(txPoint())*/public void close(){System.out.println(关闭事物);}Around(txPoint())public void around(ProceedingJoinPoint point){try {open();point.proceed();//执行真正的业务commit();} catch (Throwable e) {e.printStackTrace();rollback(e);} finally {close();}} }测试 详细见工程代码
http://www.pierceye.com/news/170342/

相关文章:

  • 为什么有人做商城优惠券网站卖科技风格设计网站
  • 企业网站的需求分析是做网站编辑还是做平面设计
  • 超酷 flash 网站淮南网红餐厅
  • 湛江网站建设开发株洲关键词seo优化服务商
  • 女的有没有做网站的十大经典随身空间小说推荐
  • 江西做网站哪家好监理证查询网
  • 北京驾校网站建设网络哪里能接活做网站
  • 建设网站公司排名西宁网站建设优化案例
  • 外贸网站推广有用吗网络服务投诉平台
  • 网站制作价上传下载网站模板
  • 注册网站会员 我们的信息淘宝上可以做网站吗
  • 建筑材料价格查询网站做网站从哪方面入门
  • 百度百科网站怎么做360优化大师app下载
  • 那些网站用不着做优化个人网站设计案例
  • wordpress怎么釆集文章杭州seo百度关键词排名推广
  • 网站地址解析做好系部宣传和网站建设
  • 单页网站建设做淘宝优惠网站步骤
  • apache建立多个网站仿卢松松博客网站源码
  • 婚恋网站上海网络推广需要多少钱
  • 网站建设规划方案ppt模板wap浏览器安卓版
  • 网站关键词优化教程成都展厅设计公司
  • 百度网站排名软件怎么做网站竞价
  • 设计素材网站校园二手市场网站建设
  • 电子产品网站设计asp做微网站
  • 网站内部优化建设温州 网站制作
  • 怎么自己做网站地图网站涉及敏感视频等该怎么做
  • 个人网站建设主要功能南京自助建站网站
  • 替别人做设计的网站商业空间
  • 做网站很赚钱吗郴州网站定制
  • 霞浦建站公司建设通是个什么网站