自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

small_love的专栏

一陰一陽,無始無終,終者自終,始者自始。

  • 博客(161)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 SpringBoot - 解决跨域请求问题

现在项目开发中,前后端分离越来越流行了,但在前后端分离通过 Ajax访问时会存在一个跨域的问题。即由于浏览器的安全性限制,不允许AJAX访问协议不同、域名不同、端口号不同的数据接口,否则会出报No 'Access-Control-Allow-Origin' header is present on the requested resource.错误。如下所示:强大的 Spring Boot支持通过设置CORS(跨源资源共享)来解决跨域请求问题。具体如下几种方式可以进行配置,我们选择一种...

2020-12-26 15:18:15 1625

原创 SpringBoot - 文件上传

在Spring Boot中对此做了更进一步的简化,文件上传更为方便。基本做到了零配置,我们只需要在项目中添加spring-boot-starter-web依赖即可。Java中的文件上传一共涉及两个组件:一个是使用 commons-fileupload 来处理 multipart 请求的 CommonsMultipartResolver。 一个是基于Servlet 3.0来处理multipart请求的,因此若使用StandardServletMultipartResolver。由于...

2020-12-26 14:31:53 328 1

原创 SpringBoot - 实现返回 JSON 数据

JSON是目前主流的前后端数据传输方式,尤其是现在前后端分离模式的盛行,后端返回JSON格式数据更是主流。在Spring Boot项目中,只要添加了Web依赖(spring-boot-starter-web),就可以很方便地实现JSON转换。一、默认实现Web依赖默认加入了jackson-databind作为JSON处理器,我们不需要要添加额外的JSON处理器就可以返回一段JSON。实例演示:1、创建实体类public class User { ...

2020-12-26 12:36:03 1272 1

原创 SpringBoot - 静态资源访问

一、直接访问模版页面在Spring Boot项目中,如果使用了模板引擎,可能有一些模版页面不需要通过控制器加载数据,只需要直接跳转展示。过去使用SpringMVC时,如果访问一个页面,必须要写相应的Controller类。而Spring Boot要实现这个需求只需要直接实现WebMvcConfigurer 接口重写addViewControllers方法配置映射关系即可,不需要在写相应的Controller类。1、在 resources/templates 目录下添加一个...

2020-12-26 10:47:03 6502

原创 SpringBoot - 整合 Thymeleaf 模板引擎

一、基本介绍1、什么是ThymeleafThymeleaf是新一代Java模板引擎,类似于Velocity、FreeMarker等传统Java模板引擎。 Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 html 时会忽略未定义的标签属性,所以 thymeleaf 的模板可以静态地运行;当有数..

2020-12-25 17:57:07 203

原创 SpringBoot - 配置文件使用详解(Profile 多环境配置)

Spring Boot中采用了大量的自动化配置,但是对开发者而言,在实际项目中不可避免会有一些需要自己手动配置,承载这些自定义配置的文件就是resources目录下的application.properties文件(也可以使用 application.yaml 文件替代 application.properties 文件)。一、配置文件的优先级Spring Boot项目中的 application.properties 配置文件一共可以出现在如下4个位置:项目根目录下的config文件夹中。.

2020-12-25 16:20:28 1034 1

原创 SpringBoot - 内置 Web 容器配置

在 Spring Boot 项目中,可以内置 Tomcat、Jetty、Undertow、Netty等容器。一、Tomcat 配置当开发者添加了spring-boot-starter-web依赖之后,默认会使用Tomcat作为Web容器。1、常规配置(1)要对Tomcat进行进一步的配置,可以在application.properties 或者application.yaml中进行配置,(2)下面我们以 application.properties 为例 添加入配...

2020-12-25 14:22:13 1215

原创 SpringBoot - 入门教程 (创建、运行项目,REST服务样例)

SpringBoot - 入门教程 (创建、运行项目,REST服务样例)由于微服务、分布式架构思想的流行,SpringBoot 和 SpringCloud 也已成为当前最流行的微服务框架。本文通过样例的方式演示如何搭建、运行一个简单 SpringBoot 项目。在搭建之前需要保证,我们的电脑上已经安装了如下环境: JDK8+ Maven3.0+ InteIIij IDEA 、 eclipse、STS 一、创建项目SpringBoot工程可研通过很多种方式创建,最..

2020-12-25 11:31:04 277

原创 Feign报错‘xx.FeignClientSpecification‘ could not be registered. overriding is disabled

一、错误描述 最近使用 SpringBoot 2.2.11.RELEASE 配合 Feign 开发是出现如下错误:org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'XXX.FeignClientSpecification' defined in null: Cannot register bean definition...

2020-12-24 10:31:53 13053 3

原创 bean ‘conversionServicePostProcessor‘ xxxx.WebFluxSecurityConfiguratioand overriding is disabled.

org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'conversionServicePostProcessor' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfi.

2020-12-23 18:01:07 8121 2

原创 Spring Cloud Gateway通过feign调用微服务报:feign.codec.EncodeException: ...HttpMessageConverters‘ available:

问题 feign.codec.EncodeException: No qualifying bean of type 'org.springframework.boot.autoconfigure.http.HttpMessageConverters' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.f.

2020-12-23 16:53:20 1106

原创 并发编程 — Condition 使用及原理详解

一、概述Condition本身也是一个接口,其功能和Object类中 wait/notify类似。Object中的 wait 和 notify方法需要与synchronized关键字配合使用,可实现线程间的等待/通知功能。Condition 接口也是提供了类似的功能,但是需要与Lock配合使用,可实现等待/通知模式。二、Condition 接口与示例Condition 定义了等待 / 通知两种类型的方法,当前线程调用这些方法时,需要提前获取Condition 对象关联的锁。Condition .

2020-12-19 21:54:58 690 5

原创 并发编程 — ReadWriteLock 读写锁实现原理详解

目录一、概述二、ReentrantReadWriteLock 实现原理1、ReentrantReadWriteLock 类层次结构2、使用范式3、读写锁的基本实现原理4、写锁的获取与释放5、读锁的获取与释放三、总结一、概述读写锁与排他锁(独占锁)不同的是,读写锁在同一时刻可以允许多个读线程方法,但是在写线程访问时,所有的读线程和其它写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,是的并发性相比一般的排它锁有了很大的提升。一般情况下,读写

2020-12-19 18:40:03 3850 2

原创 并发编程 — ReentrantLock 原理详解

一、概述ReentrantLock 是JDK1.5 引入的J.U.C包中的一个比较重要的可重入的、互斥的并且支持公平和非公平的锁,其实现了 Lock接口,其内部是通过 AQS + CAS 原理实现的。其具备 synchronized 关键字加锁的所有功能,并且还具备一些 synchronized 锁不具备的功能,比如:尝试拿锁,支持中断、支持超时等待等。二、什么是可重入锁可重入锁,顾明思议,就是支持重进入的锁,它表示该锁能够支持同一个线程对资源的重复加锁。通俗来讲就是 如果线程 A 已经获取的锁

2020-12-19 15:14:24 331 1

原创 idea 快捷键

1、查看类的继承关系 通过 Ctrl + Shift + Alt + U 或者 Ctrl + Alt + U 快捷键可用快速查看 类的继承关系图,两者的区别是,前者在当前打开一个页签,后者是打开一个小窗口。如下所示Ctrl + Shift + Alt + U:Ctrl + Alt + U 2、查看接口的实现类 Ctrl + Alt + B 或者 Ctl + H, 两者的区别是 前置打开一个小窗口,后者会在右侧栏中打开Ctrl + Alt + B...

2020-12-19 10:47:34 598 1

原创 并发编程 — Lock 接口说明

一、概述在Java1.5版本以前,我们开发多线程程序只能通过关键字synchronized进行共享资源的同步、临界值的控制,虽然随着版本的不断升级,JDK对synchronized关键字的性能优化工作一直都没有停止过,但是synchronized在使用的过程中还是存在着比较多的缺陷和不足,比如:等待synchronized 锁的线程无法被中断,无法设置超时时间,无法获取当前有多少线程被阻塞。在JDK 1.5 版本以后引入了 Lock 显示锁,Lock 锁不但具备 synchronized 关键字提供的所有

2020-12-19 10:17:59 134 1

原创 并发编程之CyclicBarrier详解

一、概述CyclicBarrier(循环屏障),它是一个同步助手工具,它允许多个线程在执行完相应的操作之后彼此等待共同到达一个障点(barrier point)。CyclicBarrier 也非常适合用于某个串行化任务被分拆成若干个并行执行的子任务,当所有的子任务都执行结束之后再继续接下来的工作。CyclicBarrier 使一定数量的线程反复地在屏障位置处汇集。当线程到达屏障位置时将调用 await 方法,这个方法将会阻塞,直到所有线程都到达屏障位置,当所有线程都到达屏障位置,那么屏障将打开,此时

2020-12-15 21:06:21 535

原创 并发编程 — CountDownLatch 详解

一、概述类 CountDownLatch 是一个同步功能的辅助类,使用效果是给定一个计数,当使用这个CountDownLatch类的线程判断计数不为0时,则呈wait状态,如果为0时则继续运行。实现等待与继续运行的效果分别需要使用await()和countDown()方法来进行。调用await()方法时判断计数是否为0,如果不为0则呈等待状态。其他线程可以调用countDown()方法将计数减1,当计数减到为0时,呈等待的线程继续运行。而方法getCount()就是获得当前的计数个数。二、使用场景

2020-12-14 22:59:45 664

原创 并发编程 — AQS 原理 详解

一、概述AQS 全称为AbstractQueuedSynchronizer (队列同步器),这个类是其他许多同步类的基类,它是使用一个 volatile 修饰 int 类型成员变量表示某种状态(如:ReentrantLock用它来表示所有者线程已经重复获取锁的次数,Semaphore用它来表示剩余的许可数量,FutureTask用它来表示任务的状态),通过内置一个虚拟的 FIFO 队列来完成获取资源的线程的排队等待工作。在J.U.C 包中很多同步器都是基于 AQS 构建的,在基于 AQS 构建的同步器.

2020-12-13 14:38:37 397

原创 并发编程 — AtomicXXXFieldUpdater 详解

AtomicXXXFieldUpdater 其中包含AtomicIntegerFieldUpdater、AtomicLongFieldUpdater 和AtomicReferenceFieldUpdater 三个类。1、为什么需要AtomicXXXFieldUpdater如果一个类是自己编写的,则可以在编写的时候把成员变量定义为Atomic类型。但如果是一个已经有的类,在不能更改其源代码的情况下,要想实现对其成员变量的原子操作,就需要AtomicIntegerFieldUpdater、Atomi..

2020-12-12 16:37:02 473

原创 并发编程 — AtomicMarkableReference 详解

AtomicMarkableReference 与AtomicStampedReference 一样也可以解决 ABA的问题,两者唯一的区别是,AtomicStampedReference 是通过 int 类型的版本号,而AtomicMarkableReference 是通过 boolean 型的标识来判断数据是否有更改过。既然有了AtomicStampedReference 为啥还需要再提供AtomicMarkableReference 呢,在现实业务场景中,不关心引用变量被修改了几次,只是单...

2020-12-12 15:38:49 2487 2

原创 并发编程 — AtomicStampedReference 详解

AtomicInteger、AtomicBoolean、AtomicLong、AtomicReference 这些原子类型,它们无一例外都采用了基于 volatile 关键字 +CAS 算法无锁的操作方式来确保共享数据在多线程操作下的线程安全性。volatile关键字保证了线程间的可见性,当某线程操作了被volatile关键字修饰的变量,其他线程可以立即看到该共享变量的变化。 CAS算法,即对比交换算法,是由UNSAFE提供的,实质上是通过操作CPU指令来得到保证的。CAS算法提供了一种快速失败的方式

2020-12-12 15:21:00 7715

原创 并发编程 — 原子类 AtomicReference 详解

通过对 AtomicInteger、AtomicBoolean 和 AtomicLong 分析我们发现,这三个原子类只能对单个变量进行原子操作,那么我们如果要对多个变量进行原子操作,这三个类就无法实现了。那如果要进行多个变量进行原子操作呢?操作方式就是,先把 多个变量封装成一个类,然后通过 AtomicReference 进行操作。众所周知,对象的引用其实是一个4字节的数字,代表着在JVM堆内存中的引用地址,对一个4字节数字的读取操作和写入操作本身就是原子性的,通常情况下,我们对对象引用的操作一般都是获

2020-12-12 12:49:00 8058 2

原创 并发编程 — 原子类 AtomicLong 详解

与AtomicInteger非常类似,AtomicLong提供了原子性操作long类型数据的解决方案,AtomicLong所提供的原子性方法在使用习惯上也与AtomicInteger非常一致。我们不再详细解释每一个方法如何使用,可以参考 《AtomicInteger》 。AtomicInteger类中最为关键的方法为compareAndSwapInt,同样,在AtomicLong类中也提供了类似的方法compareAndSwapLong,但是该方法要比compareAndSwapInt复杂很多。我们知道

2020-12-12 10:56:39 1023

原创 并发编程 — AtomicBoolean 详解

AtomicBoolean提供了一种原子性地读写布尔类型变量的解决方案,通常情况下,该类将被用于原子性地更新状态标识位,比如flag。1、AtomicBoolean 的基本用法AtomicBoolean类比较简单,其内部实现原理与AtomicInteger类似1.1、AtomicBoolean 的创建AtomicBoolean 也提供了个有参,无参两个构造方法。 //无参 构造方法默认值为 false AtomicBoolean flag = new AtomicBoolean().

2020-12-12 10:17:18 17407 1

原创 并发编程 — 原子类 AtomicInteger 详解

一、AtomicInteger的基本用法AtomicInteger与int的引用类型Integer继承Number类一样,AtomicInteger也是Number类的一个子类,除此之外,AtomicInteger还提供了很多原子性的操作方法。在AtomicInteger的内部有一个被volatile关键字修饰的成员变量value,实际上,AtomicInteger所提供的所有方法主要都是针对该变量value进行的操作。1、创建AtomicIntegerAtomicInteger类提供了Atom

2020-12-12 09:58:24 1401

原创 并发编程 — CAS 原理详解

在JDK1.5引入的 J.U.C包中的原子类以及Lock等都是基于 volatile 关键结合 CAS 操作实现的,为了能够搞明白 原子类以及 Lock锁的原理首先要了解 volatile 原理以及 CAS原理,上篇文章我们说了volatile关键字,这篇咱们就聊聊 什么是 CAS 操作。悲观锁与乐观锁在说CAS操作之前咱们先说一下什么是悲观锁和乐观锁。悲观锁悲观锁就是总是加锁最坏的情况,所以每次去拿数据时都认为别人会修改,所以每次操作共享数据时都会上锁,这样当别人需要访问共享数据时,就必须

2020-12-11 18:49:06 245

原创 并发编程 — 深入解析 volatile 关键字

在上篇文章《缓存一致性问题》,今天就聊聊 volatile 关键字。volatile 关键字规则Java内存模型对volatile关键字定义了一些特殊的访问规则,当一个变量被volatile修饰后,它将具备两种特性,或者说volatile具有下列两层语义:第一、保证了不同线程对这个变量进行读取时的可见性, 即一个线程修改了某个变量的值, 这新值对其他线程来说是立即可见的。 (volatile 解决了线程间共享变量的可见性问题)。 第二、禁止进行指令重排序, 阻止编译器对代码的优化。保证可见性

2020-12-11 15:20:35 142

原创 并发编程 — 缓存一致性问题

一、机器硬件CPU在计算机中,所有的运算操作都是有CPU的寄存器来完成的,CPU指令的执行过程需要涉及数据的读写操作,CPU所能访问的所有数据只能是计算机的主存,虽然CPU的发展频率不断提升,但是内存在访问速度上并没有多大的突破,因此CPU的处理速度和内存的访问速度之间的差距越来越大。1、CPU 缓存由于CPU和内存的速度严重不对等,如果CPU直接访问主内存,那么严重拖了CPU的后腿,于是为了提供CPU的吞吐量,于是就在CPU和主内存之间增加了缓存的设计,现在缓存的数量都增加到了 3 级,最靠近

2020-12-10 23:42:18 269

原创 并发编程—synchronized 关键字 隐式锁

在上一篇中我们讲解了管程的概念,在Java中有两种实现管程的方式,分别是 synchronized 关键字和 Lock 接口,那么今天我们就先讲讲 synchronized 关键字的使用方法。通过上一章我们知道管程主要解决并发编程中的两大问题,互斥 和 同步。那么 synchronized 关键字是如何实现的呢?一、什么是 synchronizedsynchronized关键字提供了一种锁机制,能够保证共享变量的互斥访问,从而防止数据不一致性问题的出现,synchronized 又称为对象锁,重

2020-12-10 18:25:47 127 1

原创 并发编程—万能钥匙“管程”

并发编程技术相关的理论和技术可谓纷繁复杂,那么有没有一种核心技术可以很方便的解决我们的并发问题呢?答案是有的,那就是管程。一、什么是管程解决并发问题最早是基于信号量的,后来又提出了管程技术,管程和信号量是等价的,所谓等价就是用管程能够实现信号量,也能用信号量实现管程。但是管程更容易使用,所有Java选择了管程。所谓管程,是指管理共享变量以及对共享变量的操作过程,让他们支持并发。翻译为 Java 领域的语言,就是管理类的成员变量和成员方法,让这个类是线程安全的。管程,对应的英文是 Monitor,

2020-12-10 17:36:18 199

原创 并发编程—安全性、活跃性以及性能问题

目录一、安全性问题1、什么是线程安全呢?二、活跃性问题1、活锁2、饥饿三、性能问题四、总结并发编程中我们需要注意的问题有很多,主要有安全性问题、活跃性问题和性能问题。接下来我们就一 一解析一下这三个问题。一、安全性问题1、什么是线程安全呢?线程安全的本质就是正确性,而正确性的含义就是程序按照我们期望的执行,在《并发编程—可见性、原子性、有序性 BUG源头》一章中我们介绍了很多诡异性的问题,他们都是出乎我们预料的,没有按照我们的期望执行。我们知道导致 程序出现问题的

2020-12-10 16:49:19 270 1

原创 并发编程—等待-通知

有上一篇文章我们知道,在破坏占用且等待条件的时候,如果两个资源有一个被占用后,用的是死循环的方式来循环等待,代码如下所示://死循环的方式 while (!allocator.apply(this, tar)) ;如果说apply()操作耗时非常短,而且并发冲突量不大时,可以使用这个方案。如果apply()操作非常耗时,或者并发冲突量非常大的时候,这种循环等待的方案就不适用了,因为这种场景下,可能要循环上万次才能获取到锁,相当耗CPU。其实在这种场景下,做好的方案是:如果线程要求的条件不满足

2020-12-10 15:57:08 127

原创 并发编程—死锁了,怎么办?

上一篇文章中提到了如果多个资源之间不存在关系时,尽量使用细粒度的锁,但是在实际应用中,使用细粒度的锁有时会付出惨重代价的,这个代价就是可能造成可怕的“死锁”。那么什么是死锁呢?死锁是指一组互相竞争资源的线程因为互相等待,导致“永久”阻塞的现象。如何预防死锁并发程序一旦死锁,一般没有特别好的方法,很多时候我们只能重启应用。因此,解决死锁问题做好的办法还是规避死锁。那如何避免死锁呢?要避免死锁就需要先分析死锁发生的条件,只有以下四个条件都发生时才会出现死锁:互斥,共享资源X和Y只能..

2020-12-10 15:55:54 158

原创 SpringBoot — 安全框架 Spring Security 详解四

虽然前面我们实现了通过数据库来配置用户与角色,但认证规则仍然是使用HttpSecurity进行配置,还是不够灵活,无法实现资源和角色之间的动态调整。这篇文章我们就介绍一下通过数据库查询某个URL资源的访问角色。四、基于数据库的URL权限规则配置1、数据库设计这里在上一篇文章的基础上再添加 资源表和资源权限表 两种数据表,表结构如下所示:资源表,保存每个菜单的URL CREATE TABLE `menus` ( `id` bigint(20) unsigned NOT NULL ...

2020-12-09 16:36:53 399

原创 SpringBoot — 安全框架 Spring Security 详解三

在上篇文章中我们介绍了,在内存中配资用户名、密码和角色的方法,但是在实际项目中我们都是把用户信息保存在数据库中的,所以我们需要数据库找那个获取用户信息。那么,这篇文章就介绍一下通过数据的方式获取用户信息。三、基于数据库的用户角色配置1、添加依赖和配置(1)、我们这次通过MyBatis操作MySQL数据库,所有首先需要添加上依赖。<dependency> <groupId>org.mybatis.spring.boot</groupId> &.

2020-12-09 15:01:10 154

原创 SpringBoot — 安全框架 Spring Security 详解二

二、基于内存的用户、URL权限配置1、配置内存用户角色(1)、我们可以通过继承 WebSecurityConfigurerAdapter 类,重写其 configure(AuthenticationManagerBuilder auth) 方法设置内存用户,如下所示:@Configurationpublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { //配置内存用户 @Override..

2020-12-09 11:45:42 159

原创 SpringBoot — 安全框架 Spring Security 详解一

一、基本用法1,什么是 Spring Security ?Spring Security是一个相对复杂的安全管理框架,功能比Shiro更加强大,权限控制细粒度更高,对OAuth 2的支持也更友好。 由于Spring Security源自Spring家族,因此可以和Spring框架无缝整合,特别是Spring Boot中提供的自动化配置方案,可以让Spring Security的使用更加便捷。2,安装配置我们只需要编辑pom.xml,添加spring-boot...

2020-12-09 10:18:18 712 2

原创 NacosException: server is DOWN now, please try again later!

com.alibaba.nacos.api.exception.NacosException: server is DOWN now, please try again later! at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:611) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.net.Nami...

2020-12-08 10:37:07 3948 1

原创 并发编程—如何使用一把锁保护多个资源?

目录一、保护没有关联关系的多个资源二、保护有关联关系的多个资源三、正确使用锁的姿势四、总结上篇文章中,我们提到了受保护资源和锁之间合理的关系应该是N:1的关系,也就是说可以用一把锁来保护多个资源,而不能用多把锁来保护一个资源。那么如何使用一把锁保护多个资源呢?一、保护没有关联关系的多个资源比如如下所示的代码,在Account类中有余额 balance 和 密码 password 两个属性,而修改密码和取款两个是不相干的操作,在转账时,可以修改密码,在修改密码时也,也可以转账。当然

2020-11-30 16:40:43 334

Redis In Action

Redis in Action 深度解析了 Redis数据库的使用方法和内部组成结构

2015-07-21

各种帮助文档

包含所有的帮助文档,其中包括,XML+DOM手册,struts2帮手手册,spring开发指南,mysql开发手册,jQuery,memcached,javascript手册,CSS手册,DHTML开发手册等应有尽有

2011-10-09

oracle内部培训教程

oracle内部培训教程支持更大的数据库 1到10万G的数据 支持更多并发用户的访问 上万个并发用户 更好的性能 24 x 7 x 52的可用性 数据分区 增强并行操作 提高复制性能

2011-08-02

Memcached 中文文档 Memcached全面剖析

如今,越来越多的Web应用程序开始使用memcached这个高速的缓存服务器软件。然而, memcached的基础知识远远未能像其他Web技术那样普及,memcached在国内的大规模应用也鲜为 人知。而日本的mixi(http://mixi.jp)则在这方面走在了前面,不仅大规模使用memcached作为缓 存来加速Web应用,而且自行开发了Tokyo Cabinit、Tokyo Tyrant等一系列相关的软件。 最近,日本的技术评论社的网站上刊登了mixi的两名工程师长野雅广、前坂徹撰写的一篇连载 《memcachedを知り尽くす》。这篇连载语言简洁、通俗易懂,非常适合memcached入门的人阅读。 因此我将它翻译成中文,发表在我的技术blog(tech.idv2.com)上。然后将翻译结果合并后稍作加 工,形成了这篇PDF文档,以方便阅读

2011-07-25

Simple-Spring-Memcached

在JAVA中使用Memcached进行行缓存是比较复杂的。Simple-Spring-Memcachd(SSM)企图通过实现几个基础的使用项来简化Memcached的使用。 该项在java-memcached客户端的基础上使用java5的注解和Sping/AspectJ的AOP,使能够在Sping中管理bean缓存。使用Simple-Spring-Memcached只需要简单的配置和在要缓存的方法的返回值或参数上标注上相应的注解就可以。

2011-07-12

JSP中实现文件的上传和下载

在网上找到一个不错的文件的上传和下载的教材 感觉不错就整理和大家分享 其中包含了教材和自己整理的一个jspsmartUpload.jar

2009-04-18

CSS2中文手册.chm

本手册针对的是已有一定网页设计制作经验的读者。其目的是提供最新最全的样式表内容的快速索引及注释。所以对于样式表的基础知识,在此仅简单介绍,恕不赘述。 本手册的升级信息与版权声明请参阅关于本书页面。本手册中专用词汇请参阅中英文词汇对照表。 限于篇幅,对于一些过于繁杂的相关内容,如动态样式属性(Dynamic Properties),滤镜(Filters),行为(Behaviors)请参阅我的其它相关著作。 本书中涉及到的所有HTML对象(Object,Element),HTML特性(Attributes)和属性(Properties)请参阅我的相关著作。

2009-04-12

一个经典的javaScript教程

是一个非常好的JavaScript学习教程

2009-03-13

漂亮的后台登录界面blue_login_html.rar

绿色的后台登录界面 温馨提示: .PSD文件请使用Photoshop软件打开,为了压缩大小,图层均已隐藏,在用Photoshop打开以后,显示即可! .FLA文件推荐使用FLASH软件打开 .HTML,.HTM文件推荐使用IE6及更高版本打开 .RAR文件推荐使用WinRAR软件解压

2009-03-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除