Java相关s

Spring中的@Transactional探索
AOP是Spring的两大核心之一,可用于事务管理、安全、日志等系统中重要的功能,把他们从切面中抽离出来,实现解耦。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过Java编码方式实现事务,一般是自己写事务管理器,实现PlatformTransactionManager接口;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(xml)中做相关的事务规则声明,另一种是基于@Transactional 注解的方式。注释配置是目前流行的使用方式,因此本文将着重介绍基于@Transactional 注解的事务管理。 @Transactional 注解管理事务的实现步骤 使用@Transactional 注解管理事务的实现步骤分为两步。第一步,在 xml 配置文件中添加如下代码所有的事务配置信息。除了用配置文件的方式,@EnableTransactionManagement注解也可以启用事务管理功能。这里以简单的 DataSourceTransactionManager为例。 Read more

idea配置自定义类模板、方法模板及其快捷键
前言:最近看源码,发现别人的注释都写的很好看,很规范,自己写的注释就是没那么工整。于是想着弄一个类模板。 类模板 打开idea,在左上角,File->Setting->Editor->Live Templates里,如下图: 在上图中的右边的加号那里,新建一个Template Group,我的名为userDefine,你的随意。在这个新建的组里,新建一个Live Template,我的名为*,Abbreviation是你的快捷键设置,我的就写*,于是我添加模板的时候,按/**+Tab就行了,Tab是默认的,你可以右下角改你想要的键。 Read more

Java 字节、字符、二进制等关系
二进制 二进制数据是用0和1两个数码来表示的数:它的基数为2,进位规则是”逢二进一”,借位规则是”借一当二”。 当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。 bit Byte KB MB关系: Read more

Java 注解原理解析
前言:在学习Spring的过程中,或者其他的一些框架,都会接触到许多方便又有趣的注解,这些注解不仅没有很强的侵入性,而且让我们感受到了框架的曼妙。相对于XML的极大松耦合来说,注解处于一个中庸之道,所以了解其内部原理是有必要的。 注解的定义 Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。 Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。 Read more

JAX-RS相关的RESTful
Java EE 6 引入了对 JSR-311 的支持。JSR-311(JAX-RS:Java API for RESTful Web Services)旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO 编程模型和基于标注的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的开发周期。 Read more

Jersey 的RESTful API
REST 是英文 Representational State Transfer 的缩写,有中文翻译为“表述性状态传输”。REST 这个术语是由 Roy Fielding 在他的博士论文 《 Architectural Styles and the Design of Network-based Software Architectures 》中提出的。REST 并非标准,而是一种开发 Web 应用的架构风格,可以将其理解为一种设计模式。REST 基于 HTTP,URI,以及 XML 这些现有的广泛流行的协议和标准,伴随着 REST,HTTP 协议得到了更加正确的使用。相较于基于 SOAP 和 WSDL 的 Web 服务,REST 模式提供了更为简洁的实现方案。目前,越来越多的 Web 服务开始采用 REST 风格设计和实现,真实世界中比较著名的 REST 服务包括:Google AJAX 搜索 API、Amazon Simple Storage Service (Amazon S3)等。 Read more

volatile关键字相关
Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存到寄存器或对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。 volatile特性 可见性,当一条线程对volatile变量进行修改时,其他线程能立即知道修改的值,即当读取一个volatile变量时总是返回最近一次写入的值。 写入volatile变量相当于退出同步代码块,而读取volatile变量相当于进入同步代码块。 Read more

内嵌类、内嵌静态类
前言: Java允许在类的内部再嵌入一个类,这样的写法成为嵌入类。内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。外部类按常规的类访问方式使用内部 类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。 class OuterClass { ... class NestedClass { . Read more