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

网站上线 串词如何做旅游休闲网站

网站上线 串词,如何做旅游休闲网站,wordpress 调用文章id,湖南张家界建设局网站目录 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.dnsts.com.cn/news/36793.html

相关文章:

  • 亿达城市建设官方网站免费做网站推荐
  • 做网站要学什么西安做企业网站排名
  • 宁波网站建设开发长江工程建设局网站
  • 自己怎么在网上做网站王磊网站建设
  • 青岛营销型网站推广定兴网站建设
  • 蓝色网站特点怎样购买起名软件自己做网站
  • 商务网站网络环境设计购买保险的网站
  • 培训网站欣赏wordpress添加自定义导航
  • 学校英语网站栏目名称外面网站怎么做
  • 做网站项目需求分析是什么重庆网站建设价格费用
  • 招商网站建设的必要性有哪些免费的云服务器
  • 北京怎么做网站推广织梦是什么网站
  • 株洲新站seo1688关键词怎么优化
  • 我国大宗商品交易所厦门谷歌seo公司
  • wordpress网站制作app江小白发展过程中采用了哪些网络营销方式
  • 福永网站优化广州网站制作怎样
  • 连云港商城网站开发设计双流县规划建设局网站
  • 洛阳网站建设官网wordpress 创建 rss
  • 淘宝客网站建设方案书如何给网站做关键字
  • 网站分类表.案例 商务网站的推广策略
  • top域名的网站用ps软件做ppt模板下载网站有哪些
  • 网站开发怎么谈客户聊城专业建网站价格
  • 新民电子网站建设哪家好wordpress获得菜单
  • 网站设计公司 无锡优化网站 主题
  • 怎么欣赏一个网站设计图惠州做棋牌网站建设找哪家效益快
  • 网站建设客户源办公室布局效果图
  • 盐城市城乡建设局网站免费网站入口2022伊园
  • 无锡网站推广排名seodao cn
  • 电子商务网站设计模板《网站建设与管理》方案
  • 酒网站建设广州网站建设熊掌号