南京定制网站哪个好广告设计公司绩效考核

bicheng/2026/1/18 9:56:30/文章来源:
南京定制网站哪个好,广告设计公司绩效考核,标题正文型网站,北仑网站推广一、前言 最近公司新项目#xff0c;需要搭架构进行开发#xff0c;其中需要保证事务的一致性#xff0c;经过一番查找#xff0c;发现很多博文都是通过Spring.Net、Unity、PostSharp、Castle Windsor这些方式实现AOP的。但是这不是我想要的#xff0c;因此一番查找后需要搭架构进行开发其中需要保证事务的一致性经过一番查找发现很多博文都是通过Spring.Net、Unity、PostSharp、Castle Windsor这些方式实现AOP的。但是这不是我想要的因此一番查找后使用Autofac、DynamicProxy该方式实现AOP。 二、使用AOP的优势 博主觉得它的优势主要表现在 将通用功能从业务逻辑中抽离出来就可以省略大量重复代码有利于代码的操作和维护。在软件设计时抽出通用功能切面有利于软件设计的模块化降低软件架构的复杂程度。也就是说通用的功能就是一个单独的模块在项目的主业务里面是看不到这些通用功能的设计代码的。 三、引用库 Autofac4.6Autofac.Extras.DynamicProxy4.1.0Castle.Core3.2.2 四、实现思路 4.1 定义属性 定义属性通过当前方法是否包含该属性进行判断开启事务如果存在该属性则开启事务否则忽略事务。事务属性可以设置超时时间、事务范围以及事务隔离级别。代码如下 /// summary/// 开启事务属性/// /summary[AttributeUsage(AttributeTargets.Method,Inherited true)]public class TransactionCallHandlerAttribute:Attribute{    /// summary/// 超时时间/// /summarypublic int Timeout { get; set; }    /// summary/// 事务范围/// /summarypublic TransactionScopeOption ScopeOption { get; set; }    /// summary/// 事务隔离级别/// /summarypublic IsolationLevel IsolationLevel { get; set; }    public TransactionCallHandlerAttribute()    {Timeout 60;ScopeOptionTransactionScopeOption.Required;IsolationLevelIsolationLevel.ReadCommitted;} } 4.2 切面实现 获取当前方法是否包含TransactionCallHandlerAttribute该属性如果有该属性则开启事务。本人在此处加入开发模式判断用于没设置MSDTC产生异常的问题如果不需要可忽略。另外日志功能自行实现即可。代码如下 /// summary/// 事务 拦截器/// /summarypublic class TransactionInterceptor:IInterceptor{      //可自行实现日志器此处可忽略/// summary/// 日志记录器/// /summaryprivate static readonly ILog Logger Log.GetLog(typeof(TransactionInterceptor));    // 是否开发模式private bool isDev false;    public void Intercept(IInvocation invocation)    {         if (!isDev){MethodInfo methodInfo invocation.MethodInvocationTarget;            if (methodInfo null){methodInfo invocation.Method;}TransactionCallHandlerAttribute transaction methodInfo.GetCustomAttributesTransactionCallHandlerAttribute(true).FirstOrDefault();            if (transaction ! null){TransactionOptions transactionOptions new TransactionOptions();                //设置事务隔离级别transactionOptions.IsolationLevel transaction.IsolationLevel;                //设置事务超时时间为60秒transactionOptions.Timeout new TimeSpan(0, 0, transaction.Timeout);                using (TransactionScope scope new TransactionScope(transaction.ScopeOption, transactionOptions)){                                           try{                        //实现事务性工作invocation.Proceed();scope.Complete();}                                          catch (Exception ex){                        // 记录异常throw ex;}}}            else{                // 没有事务时直接执行方法invocation.Proceed();}}        else{            // 开发模式直接跳过拦截invocation.Proceed();}} } 4.3 切面注入 博主对Autofac进行了封装可能与你们的配置不一样但是Load(ContainerBuilder builder)该方法内容是一致的因此注入方式一致的。通过定义IDependency空接口方式需要注入的类则继承该接口即可。代码如下 /// summary/// 应用程序IOC配置/// /summarypublic class IocConfig : ConfigBase{    // 重写加载配置protected override void Load(ContainerBuilder builder)    {        var assembly this.GetType().GetTypeInfo().Assembly;builder.RegisterTypeTransactionInterceptor();builder.RegisterAssemblyTypes(assembly).Where(type typeof(IDependency).IsAssignableFrom(type) !type.GetTypeInfo().IsAbstract).AsImplementedInterfaces().InstancePerLifetimeScope().EnableInterfaceInterceptors().InterceptedBy(typeof(TransactionInterceptor));} } 五、例子 /// summary/// 添加文章/// /summary/// param namename/param[TransactionCallHandler]public void AddArticle(string name){BasArticle modelnew BasArticle();model.ArticleID Guid.Empty;//故意重复判断是否会回滚。model.Code TimestampId.GetInstance().GetId();model.Name name;model.Status 1;model.Creater 测试;model.Editor 测试;    this._basArticleRepository.Insert(model);             } 相关文章  ASP.NET Core 整合Autofac和Castle实现自动AOP拦截为了支持AOP的编程模式我为.NET Core写了一个轻量级的Interception框架[开源]Dora.Interception: 一个为.NET Core度身定制的AOP框架Asp.Net Core轻量级Aop解决方案AspectCore.Net中的AOP系列之《AOP实现类型》 原文地址http://www.cnblogs.com/jianxuanbing/p/7199457.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress 下载页面某网站搜索引擎优化

新质生产力是创新起主导作用,摆脱传统经济增长方式、生产力发展路径,具有高科技、高效能、高质量特征,符合新发展理念的先进生产力质态。 **风口情报:**近日,中央经济工作会议首次提出“发展新质生产力”;…

浦口区建设局网站wordpress本地安装教程

题意 xzyzx∗y∗zk( y>x&&z>1) 给我们这个等式让我们找出这里面有多少个不同的可行解 分析 表面上数据范围比较大 但由于k最大都在int范围内 由于后面还有一个x*y*z 于是这个式子的指数不会超过31 再来分析x和y 这里必定是一个y大x小 那么假如我们先枚举一个…

网页跳转到其它网站如何销售游戏网站建设

收藏点赞不迷路 关注作者有好处 文末获取源码 一、系统展示 二、万字文档展示 基于springboot医院管理系统 开发语言:Java 数据库:MySQL 技术:SpringSpringMVCMyBatisVue 工具:IDEA/Ecilpse、Navicat、Maven 编号:…

餐饮网站建设公司网站seo外链怎么做

目录 一、核心代码解释 二、代码 三、运行截图 一、核心代码解释 1、hex() 函数 参数说明: x -- 10进制整数 返回值: 返回16进制数,以字符串形式表示。 实例: 以下实例展示了 hex 的使用方法: >>>h…

哪些网站适合做外贸网站推广精灵网站建设

上海震坤行:水泥行业数字化采购的趋势、策略与实践 在中国水泥协会发布的《2023年上半年水泥行业经济运行及下半年展望》中提到了水泥行业的发展现状——2023年上半年,在全球经济增长放缓、国内经济延续恢复态势、但市场需求不足的宏观环境下&#xff0…

住房和建设厅网站成都模板网站建设

总分结构回答,突出关键接口、类、方法名 run -> AbstractApplicationContext.refresh()程序的入口 在IOC中的操作都是基于DefaultListableBeanFactory bd对象保存在map集合中 refresh方法宝包括了整个Spring的执行流程和bean的完整生命…

宁波网站扔优化百度平台官网

人工智能研究生前置知识—科学计算库numpy numpy是python中做科学计算的基础库,对数组进行操作 整个numpy的操作和使用比较简单因此可以通过案例的学习掌握基本的用法在之后的学习中不断的进行熟悉和补充 创建数组(矩阵 ) 创建的ndarray数组…

怎么办一个网站个人博客网页设计html模板

【30天】Python从入门到精通详解版—第一天—Python 基础语法详细讲解-上 Python变量Python数据类型数字类型(Number)字符串类型(String)列表类型(List)元组类型(Tuple)字典类型&…

城市门户网站怎样盈利怎样查网站和增加网站

深入学习Pod Pod配置文件 写一个自己的配置文件,nginx-po.yaml apiVersion: v1 #api文档版本 kind: Pod #资源类型对象,也可以配置为像Development,StatefulSet这一类的对象 metadata: # Pod相关的元数据,用于描述Pod的数据name: nginx-po…

做网站要学什么语言方太网站谁做的

tomcat和servlet的关系 Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提…

成都网站建设四川推来客网络图展网站源码

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师&#xff0…

扬中网站建设好么一级a做爰片 网站就能看

在mysql中,可以利用select语句配合group by和count查询数据出现的次数,count能够返回检索数据的数目,语法为“select 列名,count(*) as count from 表名 group by 列名”。 count函数是用来统计表中或数组中记录的一个函数,count…

三明购物网站开发设计wordpress 树莓派

转载自 JFreeChart气泡图表 本章演示如何使用JFreeChart从一个给定的业务数据创建气泡图表。使用气泡图显示在三维方式的信息。气泡绘制在其中(x,y)坐标相交的地方。气泡的大小被认为是范围或X和Y轴的数量。 业务数据 考虑不同的人的年龄,体重和工作…

开发一个网站需要几个人福州seo推广外包

mac使用brew安装flink时出现报错,是下载openjdk11报错的 原因是openjdk11依赖包下载不成功,使用brew单独下载该依赖包即可 brew install openjdk11

python建立简易网站商务网站的类型一共有几大类

项目简介在我们构建 SOA 或者 微服务系统的过程中,我们通常需要使用事件来对各个服务进行集成,在这过程中简单的使用消息队列并不能保证数据的最终一致性, CAP 采用的是和当前数据库集成的本地消息表的方案来解决在分布式系统互相调用的各个环…

阿里云个人网站建设网站交互怎么做的

uCos中的时钟节拍可以基于软中断实现或者基于时钟节拍任务(但是这个任务要给予很高的优先级)对于STM32(Cortex-M3)来说这个就是SysTick中断0x0000003C当中断发生时调用OS_CPU_SysTickHandler函数,这样就提供了系统的时…

电子商务网站建设需求分析微信网站名

1.事务性 从事务性上来说,iceberg具有更高的数据质量。 因为iceberg本质是一种table format,屏蔽了底层的存储细节,写入数据时候需要严格按照schema写入。而hive可以先写入底层数据,然后使用load partition的方式来加载分区。这样…

建设网站要用到什么语言受欢迎的福州网站建设

在外贸行业中,客户关系管理尤为关键。在当下的大数据背景下,所有规模的外贸公司都迫切地需要进行数字化改造。无论是大型公司还是小型业务,他们都希望通过深入分析客户数据,为用户提供更优的体验,并据此调整企业战略。…

网站建设开发团队介绍软件项目管理平台

问题截图: 解决方法: 找到settiings.gradle文件,修改文件名称,比较项目名大小写,更改之后,果然解决了

建设工程质量监理协会网站青羊建站报价

1、什么是交叉编译 1.1、两种开发模式 非嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发布给A(类)机运行。 嵌入式开发,A(类)机编写&am…