有颜之地


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

redis实现分布式锁

发表于 2018-09-21 | 分类于 后端 | | 阅读次数:

redis实现分布式锁

通过synchronized关键字进行线程保护 是可以的 但是在压测中 我们就会发现这个方法会导致效率明显下降,所以我们通过自己加锁,来保护线程安全,废话不多说,我们直接上代码

阅读全文 »

spring-mybatis事物疑难杂症

发表于 2018-03-20 | 分类于 后端 | | 阅读次数:

今天调试多个dao层的service接口时,发现事物失效了,在数据库中产生了一条数据,但已经抛出了
RuntimeException.看到这个马上检查spring配置文件中事物配置,调试了半天,依旧存在这个问题,
写了这么久的项目,不应该出错的.然后就是各种百度,Google,好半天没有成果,最后终于发现是扫包问题.

在spring-mvc配置文件中扫包中包含了service层,spring如果要使事务生效,就需要cglib为对应service类生成代理子类,在spring.xml中已经生成了代理类,而在spring-mvc.xml中,又重新扫描了一遍,使得原先cglib生成的代理子类失效,从而事务拦截也失效。

spring-mvc.xml配置文件中扫包只扫controller层的

spring.xml配置文件中剔除controller层的扫包,也就是加上这句

1
2
3
<context:component-scan base-package="com.anber">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
</context:component-scan>

JAVA内存模型

发表于 2018-03-18 | 分类于 后端 | | 阅读次数:

同步的八种操作

  • lock(锁定): 作用于主内存的变量,把一个变量标志为一条线程独占状态

  • unlock(解锁): 作用于主内存的变量,把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定

  • read(读取): 作用于主内存的变量,把一个变量值从主内存传输到线程的工作内存中,以便随后的load动作使用

    阅读全文 »

生成订单号18位不重复数字

发表于 2018-02-27 | 分类于 后端 | | 阅读次数:

最近项目中需要用到订单号,在csdn上找到一款根据时间,id,以及machineId,如果并发过大,也可以再用上thread的id,下面贴出代码

阅读全文 »

搞懂Websocket原理

发表于 2017-11-07 | 分类于 后端 | | 阅读次数:

最近项目中用到websocket,在网上查了很多资料,整理一些,转到我的博客上,分享一下。

websocket与http

  • WebSocket是HTML5出的东西(协议),也就是说HTTTP协议没有变化,或者说没有关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)
  • 首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充。
  • 另外HTML5是指一系列新的API,或者说新规范,新技术。HTTP协议本身只有1.0和1.1,而且跟HTML本身没有直接关系。。通俗来说,你可以用HTTP协议传输非HTML数据。再简单来说,层级不一样。
阅读全文 »

JAVA通信杂谈

发表于 2017-11-01 | 分类于 后端 | | 阅读次数:

Java中的网络支持

针对网络通信的不同层次,Java提供的网络功能有四大类
  • InetAddress:用于标识网络上的硬件资源
  • URL:统一资源定位符 通过URL可以直接读取或写入网络上的数据。
  • Sockets:使用TCP协议实现网络通信的Socket相关的类
  • Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信。

InetAddress类

  • InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址。
    阅读全文 »

Spring杂论

发表于 2017-11-01 | 分类于 后端 | | 阅读次数:

ssh框架文档

发表于 2017-10-31 | 分类于 后端 | | 阅读次数:

本项目采用Maven+Springmvc+Spring+Hibernate+Redis

Pom.xml

本项目基于Mven3.0.5的Springmvc+Spring+Hibernate三大框架的整合,其中的缓存机制用的nosql数据库是Redis。

阅读全文 »

java线程结束

发表于 2017-09-14 | 分类于 后端 | | 阅读次数:

Thread

线程停止

在Java中有以下3种方法可以终止正在运行的线程
  • 使用退出标志,是线程正常退出,也就是当run方法完成后线程终止
  • 使用stop方法强行终止线程,但是不推荐使用这个方法,因为stop和suspend及resume一样,都是作废过期的方法,使用它们可能产生不可预料的结果
  • 使用interrupt方法终端线程
    阅读全文 »
Anber

Anber

9 日志
1 分类
9 标签
GitHub E-Mail 新浪微博
Links
  • Annjun
  • GorgeGao
  • Lovel
  • Orion
  • Terenceyu
  • Xiaoke
  • Shenjie
  • Hexue
© 2018 Anber
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4