引子:项目中需要对按钮点击事件进行统计分析,现在项目中就是在按钮的响应代码中添加点击事件,非常繁琐.所以使用了AOP(面向切面编程),将统计的业务逻辑统一抽离出来. 项目中添加的开源库:https://github.com/steipete/Aspects Method Swizzling 利用runtime交换了函数 SEL A,IMP A 与 SEL  B,IMP B,这一黑魔法使得抽离业务逻辑变的可能. 更多资料可以参考:http://www.cocoachina.com/ios/2015…
Method Swizzling(方法调配) 怎么说呢,先了解什么是钩子为什么用钩子,学过C++的朋友应该清楚,hook就是用来获得(截断/改变)底层调用的方法.这样我们可以自由的修改或者读取一些想要的东西.(个人理解) 下面是百度百科的解释:钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到达后,在目标窗口处理函数之前处理它.钩子机制允许应用程序截获处理window消息或特定事件 那io…
前言: Linux中的文件管理子系统的权限管理,想必大家都知道:rwx分别代表read(可读),write(可写), execute(可执行,如果是可执行程序的话),其中rxw可以按照数字表示: r  -------------  4 w -------------  2 x  -------------  1 如果有可读,可写,可执行权限,则用7表示... 在最近的项目中,就遇到了这样的问题:我们做是IOT的硬件报警设备,现在一共有7种报警类型,每种设备报警的可能有:1种,多种或者0种,后台返…
点击红色框内的按钮,就能定位当前文件在项目中的位置, 另外, 找到位置后记得再点击一下这个按钮, 要不然每次打开一个文件都会自动定位…
一.首先在自己的项目中创建一个类类中创建一个构造方法构造方法中传入一个字符串参数(这个字符串参数是为了传入路径) 在方法体内通过file类创建文件夹(换而言之就是项目中的包) 二 .就是对这个项目中的类进行生成jar包 对这整个的项目进行右键 点击 OpenModuleSettings 接下来点右侧的选择Artifacts l点击绿色加号 + 选择jar包 jar包中的第二个 l 选择 标注的 第二项 l 点击 选择你刚刚 写代码的 那个类 l 选择完成之后 将底下的那个路径 src 以前的删除…
安装express npm install express --save-dv 建议安装到dev依赖里面 安装body-parse npm install body-parser --save-dev 当你使用post方法提交请求数据时你可能会需要rq.body来查看你提交的请求数据,但是body-parse是一个中间件必须安装一下,可以先不安装用到再安装 在项目中创建一个与src同级的server文件夹(文件夹名字随便取),然后在文件夹里创建index.js文件用于启动express cons…
整体思路: 一 具体接口,可以自定义一个注解,配置限流量,然后对需要限流的方法加上注解即可! 二 容器初始化的时候扫描所有所有controller,并找出需要限流的接口方法,获取对应的限流量 三 使用拦截器或者aop,对加上注解的方法进行限流,采用配置的信号量 自定义注解 /** * 限流注解 */ @Target(ElementType.METHOD) //作用与方法上 @Retention(RetentionPolicy.RUNTIME) //注解不仅被保存到class文件中,jvm加载cl…
构建过程参考: http://blog.csdn.net/smilevt/article/details/8215558/ http://www.cnblogs.com/dcba1112/archive/2011/05/01/mave.html http://blog.rockcms.com/archives/159  Maven笔记(四)– eclipse+tomcat构建web工程 (比较全,推荐!) 构建过程中遇到的问题: 1. 配置项目添加src/main/java,src/test/j…
简介 CSS中Grid是一种二维网格式布局方式.我们常规使用table.float.position.inline-block等布局,但它们遗漏了很多功能,例如垂直居中.后来css3中flexbox的出现解决了很多布局问题,但是它也是一维布局,而不是复杂的二维布局,Grid是为了解决二维布局问题而创建的CSS模块. 使用Gird的好处 1.布局清晰明了,摆脱了模板中使用不同标签下基于浮动,定位的手动计算过程. 2.类似于talbe布局,不同点在于Gird在css中实现,而table在html中实…
 <!--尾部开始--> <iframe src="http://172.16.24.11:9000/cartoon-web/footer_new"    marginheight="0" marginwidth="0" frameborder="0" scrolling="no"   width='100%' height='392' id="iframepage"…
v-for绑定src的数据如下: data() { return { img_src:"../../assets/images/mirror-service.png" } } 渲染之后,发现图片不显示,上网查找之后发现是因为本地图片链接是需要通过 require包裹的 data() { return { img_src:require("../../assets/images/mirror-service.png)" } } 然后就会发现好使了…
//1.1获取在Xcode项目打开的情况下创建的Plist文件 NSString *path = [[NSBundle mainBundle]pathForResource:@"ProfessionClassify" ofType:@"plist"]; //1.2定义数组接收文件 NSMutableArray *tempArray = [NSMutableArray arrayWithContentsOfFile:path]; //2.1获取ios项目沙盒中的Pli…
Android N发布时同时发布了一个新的编译工具Jack(AS2.1+支持),基于Jack我们可以使用Java 8 的部分特性,在低版本机器上能使用的更少,同时Jack也有诸多不完善,工具链的改变难免会引入不可预知的问题,目前我个人也只是玩玩而已,并未在项目中使用. 目前在项目中尝试使用的是Github上的retrolambda,基于它有人开发了gradle plugin,使用起来更方便,目前最新版本3.4.0,支持Android gradle plugin 1.5.0+. retrolamb…
微博项目中的键盘工具条 项目中的键盘工具条不能使用inputAccessoryView,因为inputAccessoryView不能实现键盘隐藏的时候,工具条还显示在眼前,如图: 所以,果断决定将工具条添加到控制器View上面 /// 初始化键盘工具条 - (void)setupKeyboardToolBar { ChaosKeyboardToolbar *keyboardToolbar = [[ChaosKeyboardToolbar alloc] init]; keyboardToolbar…
Method Swizzling和AOP(面向切面编程)实践 参考: http://www.cocoachina.com/ios/20150120/10959.html 上一篇介绍了 Objective-C Messaging.利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题.这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧.这些技巧中最具争议的或许就是 Method Swizzling . 介绍一…
上一篇介绍了 Objective-C Messaging.利用 Objective-C 的 Runtime 特性,我们可以给语言做扩展,帮助解决项目开发中的一些设计和技术问题.这一篇,我们来探索一些利用 Objective-C Runtime 的黑色技巧.这些技巧中最具争议的或许就是 Method Swizzling . 介绍一个技巧,最好的方式就是提出具体的需求,然后用它跟其他的解决方法做比较. 所以,先来看看我们的需求:对 App 的用户行为进行追踪和分析.简单说,就是当用户看到某个 Vie…
  阅读器 iOS开发iOS   本文由TracyYih[博客]翻译自NSHipster的文章Method Swizzling.   在上周associated objects一文中,我们开始探索Objective-C运行时的一些黑魔法.本周我们继续前行,来讨论可能是最受争议的运行时技术:method swizzling.   Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(disp…
Ajax.js /**通用ajax服务的定义对象 * services可以是单个服务对象,也可以是service服务数组 * 具体服务的定义请参考appendServices成员函数 */ function Service(services){ this.services=[]; this.shareParameters={}; /**添加共享参数,在这里统一设置共享参数 */ this.addShareParameters=function(shareParameters){ this.sha…
近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 /  所代表的含义不同,导致在调试路径上浪费了大量时间. 在JavaWeb项目中尽量使用绝对路径  由于使用绝对路径是绝对不会出错的,而使用相对路径可能会出现错误. 首先 说下在JavaWeb项目中的绝对路径和相对路径的含义 绝对路径: 相对于当前Web应用根路径的路径  也就是不论什么路径都必需要带上contextPath =  http://localhost:8080/WebProject/ 相对路径: 相对于当前文件…
01项目训练目标 * A: 项目训练目标 * a: 项目目标 * 综合运用前面所学习的知识点 * 熟练View层.Service层.Dao层之间的方法相互调用操作. * 熟练dbutils操作数据库表完成增删改查 * 了解公司项目开发的流程,充分的掌握项目需求分析.设计与功能的代码实现.提高独立分析需求与功能实现的能力. 02项目中的功能模块 * A: 项目中的功能模块 * a: 五大模块 * 查询账务 * 多条件组合查询账务 * 添加账务 * 编辑账务 * 删除账务 03技术的选择和相关jar…
本文首发于个人网站:在Spring Boot项目中使用Spock测试框架 Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring Boot项目中使用该框架写优雅.高效以及DSL化的测试用例.Spock通过@RunWith注解与JUnit框架协同使用,另外,Spock也可以和Mockito(Spring Boot应用的测试--Mockito)一起使用. 在这个小节中我们会利用Spock.Mockito一起编写一些测试用例(包括对Contro…
本文首发于个人网站:Spring Boot项目中如何定制PropertyEditors 在Spring Boot: 定制HTTP消息转换器一文中我们学习了如何配置消息转换器用于HTTP请求和响应数据,实际上,在一次请求的完成过程中还发生了其他的转换,我们这次关注将参数转换成多种类型的对象,如:字符串转换成Date对象或字符串转换成Integer对象. 在编写控制器中的action方法时,Spring允许我们使用具体的数据类型定义函数签名,这是通过PropertyEditor实现的.Propert…
pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.…
经常会接触到vo,do,dto的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,vo对应于页面上需要显示的数据(表单),do对应于数据库中存储的数据(数据表),dto对应于除二者之外需要进行传递的数据. 一.实体类 百度百科中对于实体类的定义如下: 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关. 根据以上定义,我们可以了解到,实体类有两方面内容,存储…
1.VC2010项目中附加包含目录 上图项目中附加了两个文件夹,一个是上级目录下的CommonClass,一个是下级目录下的invengo. 使用这两个目录下的类时直接在include后面写头文件名即可,不用写路径了. 如:要使用CommonClass目录下的CADOAccess类,直接在要使用的文件中#include "ADOAccess.h" 2.VC6中如何包含其他目录下的文件 在Options->Directories->Include files中添加路径 在文件…
iconfont是很多设计以及前后端人员编写页面时经常用到的网站,阿里不仅为我们提供了免费的图标库,并且有一套完整的图标库体系.很多初学者只知道从图标库中下载图标放入项目中,但在实际项目应用中,过多的图片会导致页面加载速度的变慢以及很多其他问题.今天我介绍一下如何使用Iconfont建立项目并使用图标. 如果要自己新建项目,首先选择图标添加入库 之后,点击右上角的 右侧会出现你当前已添加入库的图标栏,如图 点击添加至项目 创建新项目或加入已有项目: 确定之后,进入我的项目页面 图中每个图标所对应…
我在做javaweb项目的时候,有个项目中需要进行图片的上传,有次我重新部署项目后,发现之前上传的图片不见了,最后找出原因:图片上传在服务器目录上,而不是绝对路径,所以特别想弄清楚javaweb项目中有关路径的一些问题. 首先,在做项目的时候我们最好用相对路径,如果写成绝对路径,当项目发布到其他环境时,绝对路径就错了. Java中传统方式取资源时,有很多的方法: 先来看一看Class.getResource(String path), path 不以'/'开头时,默认是从此类所在的包下取资源:…
之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧.记录步骤如下: 1.创建OC项目 (1)启动 xcode -> 创建singleView新项目 -> 命名为: objcASwift (2)创建 NextViewController.swift 继承于 UIViewController (3)创建 Demo.swift 继承于 NSObject 注意勾选创建 ** -Briging-Hea…
web项目中nicedit富文本编辑器的使用 一.为什么要用富文本编辑器? 先说什么是富文本编辑器吧,普通的html中input或textarea标签只能进行简单的输入,而做不到其他的文本调整功能,甚至 连空格与回车都要另写工具类去识别,更谈不上字体大小和颜色的修改.整体排版都功能了.其实一般读入文段类型的输入框都需 要富文本编辑器,没错,你们平时写博客用的就是富文本编辑器.如果还是无法理解富文本与普通输入框的区别,请看下图:  二.为什么要选nicedit 同类富文本编辑器有很多,这里选nic…
1. Cannot set property 'captcha' of undefined 在node项目中使用svg-captcha生成验证码报错 captcha的代码,这里有一个session.captcha,检查app.js,发现session没设置 exports.captcha = async(req, res, next) => { // 创建验证码 const captcha = svgCaptcha.create() // 验证码文本 req.session.captcha =…