上下文

记录截取tableview图的方法

霸气de小男生 提交于 2019-12-04 05:37:28
// 截图 - (void)screenShots{ UITableView *shadowView = mainTab; // 开启图片上下文 UIGraphicsBeginImageContextWithOptions(shadowView.contentSize, NO, 0.f); // 保存现在视图的位置偏移信息 CGPoint saveContentOffset = shadowView.contentOffset; // 保存现在视图的frame信息 CGRect saveFrame = shadowView.frame; // 把要截图的视图偏移量设置为0 shadowView.contentOffset = CGPointZero; // 设置要截图的视图的frame为内容尺寸大小 shadowView.frame = CGRectMake(0, 0, shadowView.contentSize.width, shadowView.contentSize.height); // 获取当前上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 截图:实际是把layer上面的东西绘制到上下文中 [shadowView.layer renderInContext:ctx]; //iOS7+ 推荐使用的方法

java web中各种context的关系

China☆狼群 提交于 2019-12-04 04:24:02
我举得这篇文章解决了我的很多疑惑,理清了我以前不太清楚的Context关系,读懂这篇文章很有助于理解源码, 原文链接在这里: https://www.jianshu.com/p/2537e2fec546 我把它转载在自己博客里,害怕以后找不到,原文如下 网上博客中看到一句话,很形容的描绘了web程序和上下文的关系,这里引用一下来说明:如果对“上下文”不太了解的,我这边说下,程序里面所谓的“上下文”就是程序的执行环境,打个比方:你有家吧?如果家都没有就别学编程了,租的也行啊!你就相当于web程序,家就相当于web程序的上下文,你可以在家里放东西,也可以取东西,你的衣食住行都依赖这个家,这个家就是你生活的上下文环境。 该博客地址: Spring和SpringMVC配置中父子WebApplicationContext的关系 Spring启动过程 第一步:  首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是 ServletContext ,其为后面的spring IoC容器提供宿主环境; 第二步:  其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听到这个事件,其contextInitialized方法会被调用

策略模式-设计模式

跟風遠走 提交于 2019-12-04 04:07:47
在讲述之前,我们首先看小例子: 现实生活中我们去商场上买东西的时候,卖场经常根据不同的客户来制定不同的报价策略,比如新客户不打折扣,针对老客户打9折,针对VIP打8折…… 现在我们做一个报价管理模块,简要点就是针对不同的客户,提供不同的报价。 假如是有你来做,你会怎么做? 在日常的开发中,我们大部分会写出如下的代码片段: public class QuoteManager { public BigDecimal quote(BigDecimal originalPrice,String customType){ if ("新客户".equals(customType)) { System.out.println("抱歉!新客户没有折扣!"); return originalPrice; }else if ("老客户".equals(customType)) { System.out.println("恭喜你!老客户打9折!"); originalPrice = originalPrice.multiply(new BigDecimal(0.9)).setScale(2,BigDecimal.ROUND_HALF_UP); return originalPrice; }else if("VIP客户".equals(customType)){ System.out.println(

作用域与作用域链

烈酒焚心 提交于 2019-12-03 23:42:32
理解 就是一块“地盘”,一个代码段所在的区域 它是静态的(相对于上下文对象,上下文是动态产生的,函数执行前),在编写代码时就确定了。           但是你调用两个fn(),作用域就一个,在你写代码时就确定了 分类 全局作用域 函数作用域 没有块作用域(ES6有了)if(true){ var a = 3} 作用 隔离变量,不同作用于下变量不会有冲突 产生多少作用域:N+1 来源: https://www.cnblogs.com/lucy-xyy/p/11709077.html

常用系统监控命令

对着背影说爱祢 提交于 2019-12-03 23:05:27
$ vmstat 5 1 重点参数含义: cs(context switch)是每秒上下文切换的次数。 in(interrupt)则是每秒中断的次数。 r(Running or Runnable)是就绪队列的长度,也就是正在运行和等待 CPU 的进程数。 b(Blocked)则是处于不可中断睡眠状态的进程数。 可以看到,这个例子中的上下文切换次数 cs 是 9892 次,而系统中断次数 in 则是 124 次,而就绪队列长度 r 和不可中断状态进程数 b 都是 0。 vmstat 只给出了系统总体的上下文切换情况,要想查看每个进程的详细情况,就需要使用我们前面提到过的 pidstat 了。给它加上 -w 选项,你就可以查看每个进程上下文切换的情况了。 $ pidstat -w 5 1 这个结果中有两列内容是我们的重点关注对象。一个是 cswch ,表示每秒自愿上下文切换(voluntary context switches)的次数,另一个则是 nvcswch ,表示每秒非自愿上下文切换(non voluntary context switches)的次数。 这两个概念你一定要牢牢记住,因为它们意味着不同的性能问题: 1.自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换。 2.非自愿上下文切换

设计模式 - 策略模式

谁都会走 提交于 2019-12-03 22:35:42
在理解策略模式之前我们假设有这样一个需求场景:我们在写订单支付场景的代码时,客户可以选择多种支付方式,有银联支付、支付宝支付、微信支付、京东白条等等。然后我们就很可能就会编写出类似下面这样的代码: /** * 订单类,拥有一个支付方法 * * @author eamon.zhang * @date 2019-11-06 上午9:18 */ public class Order { // 订单id private String orderId; // 支付方式 private String payType; // 订单金额 private long amount; public Order(String orderId, String payType, long amount) { this.orderId = orderId; this.payType = payType; this.amount = amount; } /** * 订单支付方法 * * @return */ public boolean pay() { // 是否支付成功 boolean payment = false; if ("aliPay".equals(payType)) { System.out.println("用户选择 支付宝 支付,订单号为:" + orderId + " ,支付金额:" +

struts2值栈与action上下文

孤街醉人 提交于 2019-12-03 19:57:15
原文 http://blog.sina.com.cn/s/blog_87216a00010137t0.html 1、值栈的简单定义: (1)简单的说,值栈是对应每一个请求对象的轻量级的数据存储中心,在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样数据被集中管理起来而不凌乱。 (2)当有请求的时候,Struts2会为每个请求创建一个新的值栈,也就是说,值栈和请求是一一对应的,不同的请求,值栈也不一样, 而值栈封装了一次请求所有需要操作的相关的数据。 (3)正是因为值栈和请求的对应关系,因此值栈能保证线程安全的为每个请求提供公共的数据存取服务。 (4)就是ROOT根对象,ognl访问值栈不用加任何的访问前缀,只需action中声明相应的属性,并且生成属性对应的set和get方法,页面中通过struts2标签就可以存放/取出值栈中的值,EL表达式${username}如果没有加访问范围,访问的也是值栈,这只是最简单的值栈应用 (5)值栈的特点:如果访问的值栈里有多个对象,且相同的属性在多个对象中同时出现,则值栈会按照从栈顶到栈底的顺序,寻找第一个匹配的对象。 2、actionContext(action上下文)的简单定义: (1)ActionContext对象,非根对象,是Action运行的上下文

打走企业级落地微服务的拦路虎:数据

风流意气都作罢 提交于 2019-12-03 19:19:02
▲扫码报名活动 数人云11月Meetup报名开启, 看中西方大神如何论道云原生与微服务! 数人云 上几天给大家分享了:《踢开绊脚石:微服务难点之服务调用的解决方案》剖析了微服务的难点之一:服务调用的解决方案。今天再来跟大家聊聊微服务的另外一个难点:数据。 在尝试使用微服务架构的因由中,最主要的是允许团队能够以不同的速度在系统的不同部分进行工作,而且尽量将影响团队的相关因素最小化。因此,我们希望团队能够自治,做出关于实现和运营服务最好的决策,并且可以自由地进行更改。 为了获得这种自主权,需要“摆脱依赖”,很多人在某种程度上都引用了这句话,因为“每个微服务都应该拥有和控制自己的数据库,而不是两个服务去共享一个数据库。”这种理念是合情合理的,不要在服务之间共享一个数据库是因为会遇到读/写模式冲突、数据模型冲突、协调性问题等等。 当构建微服务时,如何安全地将数据库分切成多个小的数据库?首先对于企业级构建微服务,需要明确以下内容: 域是什么?它实现了什么 事物边界在哪里? 微服务如何跨越边界进行通信? 如果将数据库打开,会怎样? 什么是域 这似乎在很多地方都被忽视了,但在互联网公司如何实践微服务和传统企业如何(或者可能因为忽视了这一点而失败)实现微服务之间存在的巨大差异。 在构建微服务之前,以及它使用的数据(产品/消费等)的原因,需要对数据的表示有一个明确清晰的理解,例如

java web牛刀小试之spring

扶醉桌前 提交于 2019-12-03 16:49:30
一、Spring 框架 1.1 Spring 框架模块组成: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory ,它是工厂模式的实现。 BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 Spring ORM:Spring

react-intl 实现 React 国际化多语言

你。 提交于 2019-12-03 15:37:38
效果预览 React Intl 国际化步骤 创建国际化资源文件 根据语言获取国际化资源 引入 react-intl 的 local data 创建 LocaleProvider 国际化上下文组件 创建 react-intl 国际化上下文组件 使用 react-intl's components & apis,进行国际化开发 1. 创建国际化资源文件 目前我们管理资源文件的方式是在 src/locales 文件夹下: . ├── en-US.js ├── en-US.messages.js ├── zh-Hans.js └── zh-Hans.messages.js *.messages.js 是我们的资源文件(这里我们采用了 js 格式,你也可以使用 json 等等),返回的是一个对象,key 为我们翻译用的 id,value 为具体语言的翻译,内容是: export default { 'page.localeProvider.react': '{ name }, a JavaScript library for building user interfaces.', 'page.localeProvider.react.html': '<p>{ name } makes it painless to create interactive UIs. Design simple