07 2017 档案
摘要:@ModelAttribute注解作用在方法上或者方法的参数上,表示将被注解的方法的返回值或者是被注解的参数作为Model的属性加入到Model中,然后Spring框架自会将这个Model传递给ViewResolver。Model的生命周期只有一个http请求的处理过程,请求处理完后,Model就销
阅读全文
摘要:@ModelAttribute可以作用在方法或者方法的参数 注:被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。 一、作用在方法上 1.@ModelAttribute注释void返回值的方
阅读全文
摘要:这里我用到的是spring 4.09 hibernate 4.1.0.Final PS:网上好多人说多数据源必须配置多个事务管理器基本都是用的spring 3 多数据源的实现可以参看之前的文章:多数据源 举例说明: 有两个数据源:dataSourceOne、dataSourceTwo 有两个serv
阅读全文
摘要:两种锁的加锁原理 互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。 两种锁的区别 互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区
阅读全文
摘要:引言 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁(Lock-free)的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对
阅读全文
摘要:在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如
阅读全文
摘要:简介 Exchanger(交换者)是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。这两个线程通过exchange方法交换数据, 如果第一个线程先执行exchange方法,它会一直等待第二个线程也执行exchange,
阅读全文
摘要:简介 Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。很多年以来,我都觉得从字面上很难理解Semaphore所表达的含义,只能把它比作是控制流量的红绿灯,比如XX马路要限制流量,只允许同时有一百辆车在这条路上行使,其他的都必须在路口等待
阅读全文
摘要:数据库读写分离必然会引入多数据源,那么spring项目如何实现多数据源呢? 思路:spring在每次操作数据库的时候都会通过AbstractRoutingDataSource类中的determineTargetDataSource()方法获取当前数据源,我们可以通过AOP技术,在不同的切面,切入不同
阅读全文
摘要:https://my.oschina.net/lichhao/blog/111362 https://my.oschina.net/clopopo/blog/149368
阅读全文
摘要:spring aop有两种方式:xml配置+annotation注解 如果两个都开启:则先执行xml配置的advice,后执行annotation注解配置的advice 后续内容待续。。。。。
阅读全文
摘要:http://blog.csdn.net/bao19901210/article/details/41724355 http://blog.csdn.net/yuanlaishini2010/article/details/45792069
阅读全文
摘要:<bean id="testAdvice" class="com.myspring.app.aop.MyAdvice"/> //切面代码 使用<aop:aspect>配置时, 如果切面代码是自动注入的bean,那么<aop:aspect>的ref属性直接写bean的注入名字就可以了! <aop:co
阅读全文

浙公网安备 33010602011771号