- 博客(25)
- 资源 (28)
- 收藏
- 关注
原创 linux安装JDK
wget --no-cookies --header "Cookie: gpw_e24=xxx;" http://download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.rpm
2017-08-30 10:46:23 960
原创 Gradle入门教程
前言:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持m
2017-08-27 16:53:50 520
原创 Guava包中的ListenableFuture详情解析
前言:本章介绍goole Guava 包的 ListenableFuture,也就是开源的Java Library Guaa中的一个并发编程的辅助类,它笨神是继承是java的Future。并发是一个很难的问题,但它是由具有强大和简单的抽象工作显著简化。为了简化事情,Guava扩展了来自JDK的Future从而得到ListenableFuture。并发编程是一个难题,但是一个强大而简
2017-08-24 09:47:29 6444
转载 修改Tomcat Connector运行模式,优化Tomcat运行性能
摘要: Tomcat是一个小型的轻量级应用服务器,也是JavaEE开发人员最常用的服务器之一。不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式,那么这三种运行模式有什么区别呢,我们又如何修改Tomcat Connector的运行模式来提高Tomcat的运行性能呢? 下面,我们先大致了解Tomcat Connector(To
2017-08-22 09:42:49 516
原创 Intellij IDEA在web项目Properties中文unicode转码
在IDEA中创建了properties文件,发现默认输入中文不会自动进行unicode转码。如下图,解决问题:默认是没有勾选,勾选即可。快捷键 ctrl+alt+s
2017-08-18 19:47:47 2068
原创 springboot 使用CGLib 方式实现AOP代理
前言:Spring boot 和使用Spring 完全是两个不同的样子,一个是前者是基于编程式,后者是基于XML配置。一、如何使用CGLIB动态代理spring 的动态代理默认是jdk的动态代理,需要在application.properties或者application.yml去设置如下属性:application.properties:spring.aop.
2017-08-17 17:28:53 17169 3
原创 Spring IoC容器(一)
前言:本章涵盖了反向控制(IoC)原理的Spring框架实现。IoC也称为依赖注入(DI)。简介Spring IoC容器和bean:IoC我们常说是控制反转,IoC也称为依赖注入(DI)。它是一个过程,对象定义它们的依赖关系,也就是他们工作的其他对象,只有通过构造函数参数,工厂方法的参数,或者在从工厂方法构造或返回后在对象实例上设置的属性。然后,容器 在创建be
2017-08-16 17:22:09 380
原创 通过反射把数据库表生成实体类
import org.apache.commons.lang3.time.DateFormatUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import java.io.FileWriter;import java.io.PrintWriter;import java.sql
2017-08-16 15:53:56 2917
原创 Spring aop 通过获取代理对象实现事务切换
摘要:在项目中,涉及到同一个类中一个方法调用另外一个方法,并且两个方法的事务不相关,这里面涉及到一个事务切换的问题,一般的方法没问题,根据通过aop注解在方法上通过加注解标识,答案是:通过spring aop类里面的AopContext类获取当前类的代理对象,这样就能切换对应的事务管理器了,具体做法如下:(1).在applicationContext.xml文件中配置如下:
2017-08-11 18:51:30 5307
转载 Spring AOP 实现机制
(1)AOP的各种实现在编译器修改源代码、在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码。以下是各种实现机制的比较: 类别分为静态AOP(包括静态织入)和动态AOP(包括动态代理、动态字节码生成、自定义类加载器、字节码转换)。静态织入:a、原理:在编译期,切面直接以字节码形式编译到目标字节码文件中 ;b、优点:对系统性能无影响;
2017-08-11 18:40:32 270
原创 OpenResty通过Lua扩展NGINX实现的可伸缩的Web平台
安装对于一些常见的 Linux 发行版本,OpenResty® 提供 官方预编译包。确保你首先用这种方式来安装。对于 Mac OS X 或 macOS 用户,强烈推荐您使用 homebrew 包管理工具安装 OpenResty。可以直接使用下面 这一条命令:brew install homebrew/nginx/openresty如果您还没有下载 Ope
2017-08-11 18:36:39 1021
原创 Spring AOP 方面的一些属性详解分析
前言:JDK与CGLIB代理差异JDK动态代理:代理对象必须为某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理CGLIB代理:原理类似于JDK代理,不同之处在于运行期间生成的代理对象是针对目标类扩展的子类,CGLIB是高效代码生成包,底层是依靠ASM(字节码编辑类库)操作字节码实现的,性能比JDK强。expose-proxy 目标对象内部
2017-08-11 18:33:24 612
原创 Spring AOP 动态代理机制
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题:
2017-08-11 17:23:01 645
转载 Spring 之AOP AspectJ切入点语法详解
6.5 AspectJ切入点语法详解6.5.1 Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点; within:用
2017-08-11 15:46:48 328
转载 为什么要使用队列 - Java
一、java中的队列:Queue接口Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用
2017-08-09 15:33:24 9213
转载 乐观锁的一种实现方式——CAS
在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS、CAS的应用以及CAS存在的问题等。线程安全众所周知,Java是多线程的。但是,Java对多线程的支持其实是一把双刃剑。一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题。线程安全性可能是非常复杂的,在没有充足的同步的情况下,多个线程中的操作执行顺
2017-08-09 10:59:10 301
转载 使用 RMI + ZooKeeper 实现远程调用框架
在 Java 世界里,有一种技术可以实现“跨虚拟机”的调用,它就是 RMI(Remote Method Invocation,远程方法调用)。例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进行远程调用,就像调用本地方法一样,这就是 RMI。在分布式系统中,我们使用 RMI 技术可轻松将 服务提供者(Service Provider)与 服务消费者(Se
2017-08-09 10:57:27 376
转载 面试必备 | 深入解析Java垃圾回收机制
深入解析Java垃圾回收机制引入垃圾回收哪些内存需要回收?引用计数法可达性分析如何回收Marking 标记Normal Deletion 清除Deletion with Compacting 压缩为什么需要分代收集?JVM的分代新生代老年代永久代分代垃圾收集过程详述引入垃圾回收程序计数器、 虚拟机栈、 本地方法栈3个区域随线程而生,随线程
2017-08-09 10:10:41 2792 1
原创 Springboot搭建web项目访问自定义位置的html页面
xml配置文件如下: org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE UTF-8 UTF-8 1.8 1.7 org.springframework.boot spring-boot-starter org.spri
2017-08-05 17:51:51 38187 2
原创 Java8函数式编程(一)
函数式编程详解:前言:现在有很多公司都用了jdk8,但是函数式编程也许没有用上,jdk8也提供了很多API,比喻Stream API,等等。流式编程是它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。非函数式编程是串行操作。也就是jdk8之前的操作。可以说性能提升不少。但是使用的姿势也要多注意,坑也是有的
2017-08-03 22:53:28 3251
转载 logback日志配置
前言:logback比log4j好用,下面介绍开发步骤。步骤:1、添加jar依赖关系时,要加入slf4j和logback的jar包,slf4j需要的jar包为slf4j-api,logback需要3个jar包(logback-access、logback-classic、logback-core)。2、slf4j下载地址:https://www.slf4j.org/download
2017-08-03 10:00:11 891
转载 正确认识Docker、Kubernetes 、Apache Mesos
无数的文章、社交媒体在探讨Docker、Kubernetes、Mesos三者之间孰优孰劣。如果你听信了某些一知半解者的言论,你可能会认为这三个开源项目正在为争夺容器霸权而殊死战斗。同时,你也会相信,在这三者间的选择无异于对其所奉宗教的信仰,而且真正的信徒敢于大胆和异教徒作斗争,并且拥护自己的信仰。那些都是扯淡。虽然这三种技术都可以使用容器来部署、管理和扩展应用程序,但实际上它们每个
2017-08-03 09:33:53 771 1
转载 logback高级特性,异步记录日志
异步记录日志AsyncAppender,异步记录日志。工作原理:当Logging Event进入AsyncAppender后,AsyncAppender会调用appender方法,append方法中在将event填入Buffer(这里选用的数据结构为BlockingQueue)中前,会先判断当前buffer的容量以及丢弃日志特性是否开启,当消费能力不如生产能力时,A
2017-08-03 09:29:00 11870
原创 logback高级特性,异步记录日志
logback异步输出日志 %d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n /var/log/sssj_.%d{yyyy-MM-dd}.log 180
2017-08-02 17:36:12 5550
转载 HashMap的内部实现机制,Hash是怎样实现的,什么时候ReHash
1.HashMap的内部实现机制HashMap是对数据结构中哈希表(Hash Table)的实现,Hash表又叫散列表。Hash表是根据关键码Key来访问其对应的值Value的数据结构,它通过一个映射函数把关键码映射到表中一个位置来访问该位置的值,从而加快查找的速度。这个映射函数叫做Hash函数,存放记录的数组叫做Hash表。在Java中,HashMap的内部实现结合了链表和数组的优势
2017-08-02 17:32:06 1350
Logback手冊高清中文版
2018-11-20
RabbitMQ实战指南_2017.11_有书签-完整版
2018-07-30
emacs-24.3-bin-i386.zip
2017-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人