美丽涵涵童装店--说我博客名字,给你们打折!
随笔 - 82  文章 - 266  trackbacks - 0
<2014年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456


点击这里给杨爱友发消息
美丽涵涵童装店
说我博客名字,给你们打折!

常用链接

留言簿(6)

随笔分类

随笔档案

文章档案

好友的BLOG

搜索

  •  

最新评论

阅读排行榜

评论排行榜

vim
1. 删除行命令
dd: 删除游标所在的一整行(常用)
ndd: n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
d1G: 删除光标所在到第一行的所有数据
dG: 删除光标所在到最后一行的所有数据
d$: 删除光标所在处,到该行的最后一个字符
d0: 那个是数字0,删除光标所在到该行的最前面的一个字符
x,X: x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键) 
2. 插入命令
I 在当前行首插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
3. 移动命令
w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。

b 向后移动一个单词 2b 向后移动2个单词
到指定行,冒号+行号,回车,比如跳到240行就是 :240回车
Ctrl + e 向下滚动一行
Ctrl + y 向上滚动一行
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏    
4. 拷贝和粘贴
yy 拷贝当前行
nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。
p  在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。
shift+p 在当前行前粘贴
...
posted @ 2019-01-29 13:59 杨爱友 阅读(42) | 评论 (0)编辑 收藏
参考文章:
http://wenku.baidu.com/link?url=kq8VcGwEedCn5hHdSDbPsQrJCapBZje0DRRzyvEOkpqVOEP5XV--dtSL3RNC9a5Mf9K3mSJOGVwYt8VHjpUoBVTQ0L5z3WOSV-dTpSgs-My

用一张空的U盘,利用支持软件和ISO镜像文件制作安装盘,然后将USB3.0驱动程序放进U盘

在格式化步骤,格式化完之后要加载USB3的驱动程序,否则安装WIN7后无法使用鼠标和键盘
参考文章:http://bbs.feng.com/read-htm-tid-8203477.html

启动WIN7后,可能出现黑屏“无法验证签名文件”,把windows\system32\drivers 里面那个AppleSSD.sys干掉
参考文章:
http://bbs.feng.com/read-htm-tid-9791867.html

最后进入WIN7系统,此时之后一个盘符,需要再进行分盘,按照网上介绍,“压缩卷--新建简单分区“进行,发现竟然把原有MAC系统干掉了,这里千万注意!

然后就是到bootcamp/drivers下面找一些网络、显卡等的驱动进行点击安装。
posted @ 2015-09-25 16:48 杨爱友 阅读(204) | 评论 (0)编辑 收藏
     摘要: 先在客户端注册一个callback, 然后把callback的名字传给服务器。

此时,服务器先生成 json 数据。
然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp.

最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。

客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数)
美丽涵涵童装店
  阅读全文
posted @ 2014-10-29 14:57 杨爱友 阅读(9199) | 评论 (5)编辑 收藏
     摘要: Spring源代码解析(一):IOC容器:http://www.javaeye.com/topic/86339
Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.javaeye.com/topic/86594
Spring源代码解析(三):Spring JDBC:http://www.javaeye.com/topic/87034
Spring源代码解析(四):Spring MVC:http://www.javaeye.com/topic/87692
Spring源代码解析(五):Spring AOP获取Proxy:http://www.javaeye.com/topic/88187
美丽涵涵童装店
  阅读全文
posted @ 2014-10-29 14:54 杨爱友 阅读(2643) | 评论 (0)编辑 收藏
     摘要: 提高淘宝店铺访问量办法  阅读全文
posted @ 2014-10-29 14:34 杨爱友 阅读(4612) | 评论 (0)编辑 收藏
     摘要: Spring源码学习-bean加载
一个applicationContext.xml配置文件,这个不可少
一个bean,这里我没用接口,直接用一个普通的类做为Spring的bean
一个Junit测试类  阅读全文
posted @ 2014-08-29 10:47 杨爱友 阅读(10668) | 评论 (3)编辑 收藏

学习源码是一件非常耗时费力的事情,需要有足够的时间和持久的耐心,下面是我阅读郝佳老师的《Spring源码深度解析》所做的记录,书中以Spring3.2讲解,使用jdk1.7。

准备工作

1. 安装github:现在spring源代码都在github管理,所以首先需要下载githup,下载地址http://windows.github.com;

2. 安装gradle构建工具:下载地址http://www.gradle.org/downloads,下载完后进行解压到任意盘符,然后增加环境变量GRADLE_HOME,并在环境变量bin中增加%GRADLE_HOME%/bin,打开DOS窗口,运行gradle -v,出现版本号等信息,表示安装成功;

3. 下载Spring源码:首先打开git shell,切换到你的工作目录,然后输入以下命令:git clone git://github.com/SpringSource/Spring-framework.git,后面一串是源码下载地址。大概半小时的样子,就可以下载完成,这时候在你的工作目录中就会出现Spring-framework的目录,里面有Spring各组件的源码包;

4. 构建导入:下载下来的代码不能直接导入Eclipse,要先转换成Eclipse能读取的形式。因为所有组件都会依赖spring-core,所有我们首先要转换Spring-core工程,在命令窗口切换到Spring-core工程,运行gradle cleanidea eclipse命令,我们会看到开始下载工程所依赖的jar包,几分钟后执行完毕,再来看Spring-core文件夹,多了.classpath、.project等文件,这是Eclipse工程所必须的,然后可以把他导入到eclipse。因为大部分Spring组件都会用到 spring-beans、spring-context、spring-aop,而他们又依赖spring-expression、spring-instrument,所以我们干脆先把这些工程都进行转换并导入eclipse。

我初次导入过程并不顺利,拿spring-core为例,其中以来的一个jar包是Spring-framework/spring-core/build/libs/spring-asm-repack-4.0.jar,但我工程里面并没有他,只好在网上下载了一个,并加入构建路径,其次我还发现少commons-pool-1.5.3.jar、spring-cglib-repack-3.0.jar,都一一下载,最后还是报错没有java.util.concurrent.ForkJoinPool类,发现这个版本必须使用jdk1.7以上,1.6没有这个包。折腾半天,终于几个工程没变异错误了,向前迈进了一步。




posted @ 2014-08-21 16:04 杨爱友 阅读(5612) | 评论 (2)编辑 收藏

场景1:aService里面有个savePerson方法,里面将调用bService中的保存方法进行保存;

    aService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void savePerson() {
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
messageBean.saveTwo(p1, p2);
messageBean.savePerson(null);
}
     bService代码:
      @Transactional(propagation=Propagation.REQUIRED)
public void saveOne(Person p){
this.dao.save(p);
}
@Transactional(propagation=Propagation.REQUIRES_NEW)
public void saveTwo(Person p1,Person p2){
this.dao.save(p1);
this.dao.save(p2);
}
    因为saveTwo的传播特性设置为requires_new,saveTwo方法单独起一个事务,所以当调用saveOne抛出异常之后,不会影响saveTwo事务提交,事实上,在saveTwo返回之前已经将事务提交,所以p1、p2对象能保存入库;
    如果将saveTwo方法的传播特性设置为required,这时候三个方法公用一个事务,当saveOne抛出异常后,整个事务回滚,数据不能入库;

场景2:
 aService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void savePerson() {
try{
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
messageBean.saveTwo(p1, null);
}catch(Exception ex){
ex.printStackTrace();
}
}
 bService代码:
        @Transactional(propagation=Propagation.REQUIRED)
public void saveTwo(Person p1,Person p2){
this.dao.save(p1);
this.dao.save(p2);
}
     因为异常被catch了,所以事务不回滚,p1正常入库;
场景3:
 aService代码:
@Transactional(propagation=Propagation.REQUIRED)
public void savePerson() {
try{
Person p1 = new Person();
p1.setName("yangay");
Person p2 = new Person();
p2.setName("lisan");
messageBean.saveOne(p1);
messageBean.saveTwo(p2, null);
}catch(Exception ex){
ex.printStackTrace();
}
}
 bService代码:
        @Transactional(propagation=Propagation.REQUIRED)
public void saveOne(Person p){
this.dao.save(p);
}
@Transactional(propagation=Propagation.REQUIRED)
public void saveTwo(Person p1,Person p2){
this.dao.save(p1);
this.dao.save(p2);
}
        开始以为有了try catch,p1能保存进去,但经过测试,发现会报错。因为saveTwo时抛出异常,首先被spring框架个catch住,将事务标记为rollbackonly,然再往出抛异常,最后被savePerson方法catch住,所以事务能够提交,但当提交的时候,发现标志位已经被设置了,不应该去提交了,然后吭哧吭哧的回滚调,再提示你已经被设置成rollback-only了。
        但如果saveTwo的传播特性改为require_new,因为他单起一个事务,不会影响父事务的提交,所以p1能保存,p2失败;

场景4:
事务在多个对象之间才有传播特性
@Override
public void savePerson() {
Person p1 = new Person();
p1.setName("yangay");

Person p2 = new Person();
p2.setName("lisan");

saveTwo(p1,null);
}

@Transactional(propagation=Propagation.REQUIRED)
public void saveTwo(Person p1,Person p2){
messageBean.saveOne(p1);
messageBean.saveOne(p2);
}
    两个方法在一个类里面,saveTwo并没有事务,p1能提交;但如果把saveTwo放到另外一个类,则saveTwo就会有事务,p1不能提交;
    如果要同一个类里面的saveTwo执行事务,可在配置文件增加<aop:aspectj-autoproxy expose-proxy="true"/>,然后((Iservice)AopContext.currentProxy()).saveTwo(),这样执行的就是代理的方法,就会有事务(Iservice必须是你定义的接口)
posted @ 2014-08-08 15:43 杨爱友 阅读(2590) | 评论 (0)编辑 收藏
美丽涵涵童装店
亲,说我博客名字,给你们打折!