java
zhaosoft1982
暂时不写!
展开
-
@Autowired
通过 @Autowired的使用来消除 set ,get方法 - Spring 2.5 JPA hibernate 使用方法的点滴整理我们编写spring 框架的代码时候。一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。虽然可以通过eclipse等工具来自动生成。但是还是会引起程序阅读性上的不便。原创 2010-03-07 13:24:00 · 2171 阅读 · 1 评论 -
从LiveJournal后台发展看大规模网站性能优化方法
一、LiveJournal发展历程LiveJournal是99年始于校园中的项目,几个人出于爱好做了这样一个应用,以实现以下功能: 博客,论坛 社会性网络,找到朋友 聚合,把朋友的文章聚合在一起 LiveJournal采用了大量的开源软件,甚至它本身也是一个开源软件。 在上线后,LiveJournal实现了非常快速的增长:2004年4月份:280万注册用户。原创 2010-03-24 20:38:00 · 576 阅读 · 0 评论 -
Tomcat集群与负载均衡
在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。 另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。 在转载 2010-03-24 21:30:00 · 728 阅读 · 0 评论 -
java中四种操作xml方式的比较
1. 介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点原创 2010-03-25 22:07:00 · 537 阅读 · 0 评论 -
四种XML操作方式的基本使用方法
ceshi.xml文件: A1234 四川省XX县XX镇XX路X段XX号 B1234 四川省XX市XX乡XX村XX组 1)DOMimport java.io.*;import java.util.*;import org.w3c.dom.*;import javax.xml.parsers.*;public class MyXMLReader{public stat原创 2010-03-25 22:09:00 · 696 阅读 · 0 评论 -
hashmap与hashtable的区别,以及实现hashmap的同步操作
Hashtable和HashMap的区别 1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collectio原创 2010-03-27 09:46:00 · 818 阅读 · 1 评论 -
深入了解网站中的静态网页和动态网页的相关知识
根据网站的数据管理模式和应用技术,可以将网站分为静态网站和动态网站。要理解静态网站与动态网站,首先应当理解静态网页与动态网页。静态网页在网站中,纯粹HTML格式的网页通常被称为“静态网页”,早期的网站一般都是由静态网页组成的。静态网页的网址形式通常为:www.example.com/eg/eg.htm,也就是以.htm、.html、.shtml、.xml等为后缀的网页。在HTML格式的网页上,也可转载 2010-03-28 14:28:00 · 2364 阅读 · 0 评论 -
谈谈网站静态化
写在前头静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称MemberCache, Nginx,的时代,微软技术在网站架构设计中的运用.静态化的设计原则和步骤静态化是解决减轻网站压力,但是静态化也会带来一系转载 2010-03-28 15:16:00 · 942 阅读 · 0 评论 -
JAVA数据库连接池
import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.Driver;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;import java.util.Enumeration;imp转载 2010-03-27 11:03:00 · 571 阅读 · 0 评论 -
JAVA 线程的几种状态
1. 线程的几种状态线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。2) 可执行(Runnable):每个支持多线程的系统都有一个排程器,排程器会从线程池中选择一个线程并启动它。当一个线程处于可执行状态时,表示它可能正处于线程池中等待排排程器启动原创 2010-03-30 22:01:00 · 4143 阅读 · 2 评论 -
Java多线程编程要点 (一)
1、 认识Thread和RunnableJava中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来,调用start()方法即可以启动一个线程。Thread Test = new原创 2010-03-24 20:21:00 · 576 阅读 · 0 评论 -
SSO英文全称Single Sign On 即单点登录
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 SSO技术实现机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份原创 2010-03-24 19:47:00 · 1408 阅读 · 0 评论 -
应用级集群系统的设计
集群系统在企业 IT 应用中的部署越来越广泛,基于某个具体业务的应用级集群服务系统也越来越得到重视,围绕这个主题,本文简要地探讨了应用级集群一般性的设计思路,重点针对分层业务资源、业务资源监测器、负载均衡器和故障转移管理器等四部分。集群类型按集群系统的应用范围,大体可分为操作系统级集群和业务应用级集群。通常,操作系统级集群作为底层基础集群架构为业务应用级集群提供操作系统级的集群服务;而转载 2010-03-24 22:01:00 · 882 阅读 · 0 评论 -
Hibernate3 二级缓存的使用配置细节
以下是使用hibernate二级缓存时常遇到的一些配置的详细解释,希望对各位有所帮助:配置一:hibernate.cfg.xml文件中增加org.hibernate.cache.EhCacheProvider true配置二:工程项目src文件下新建一个ehcache.xml文件,其内容为配置三:为了缓存某类的对象,其hbm文件中需添加属性例如:"http://hibernate.sour原创 2010-03-08 17:28:00 · 685 阅读 · 0 评论 -
自动侦测spring组件
从2.0版本开始,Spring引入了构造型(stereotype)注解的概念以及将@Repository注解作为数据访问代码的标记的方法。在此基础上,Spring2.5又加入了两个新的注解 —— @Service和@Controller 来完成为通常的三层架构(数据访问对象、服务、web控制器)角色委任。Spring2.5也引入了泛型@Component注解,其他构造型可从逻辑上对其进行扩展。通过原创 2010-03-09 13:43:00 · 779 阅读 · 0 评论 -
使用JCaptcha生成验证码
使用JCaptcha工具包生成验证码JCaptcha 官网地址 http://forge.octo.com/jcaptcha/confluence/display/general/Home引入Lib包 (包括一些依赖包commons-collections等)从Servlet看起 jcaptcha com.ighost.cms.common.chec原创 2010-03-09 11:58:00 · 3957 阅读 · 0 评论 -
Java线程:volatile关键字
Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。 谈及到volatile关键字,不得不提的一篇文章是:《Java 理论与实践: 正确使用 Volatile 变量》,这篇文章对volatile关键字的用法做了相当精辟的原创 2010-03-09 10:02:00 · 1757 阅读 · 0 评论 -
java transient简介
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,诚然,你可以让这个类来实现Exter原创 2010-03-09 10:25:00 · 44096 阅读 · 15 评论 -
struts2核心工作原理
上图来源于Struts2官方站点,是Struts 2 的整体结构。一个请求在Struts2框架中的处理大概分为以下几个步骤:1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求;2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMes原创 2010-03-15 21:33:00 · 615 阅读 · 0 评论 -
Http头信息详解
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参 考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错原创 2010-03-17 08:59:00 · 608 阅读 · 0 评论 -
OpenSessionInView模式总结
OpenSessionInView模式的起源:OpenSessionInViewFilter是Spring提供的一个针对Hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibernate的Session,一直保持这个Session,直到这个请求结束,具体是通过一个Filter来实现的。 由于Hibernate引入了Lazy Load特性,使得脱离Hibernate的Sess原创 2010-03-17 09:15:00 · 840 阅读 · 0 评论 -
HTTP协议头详解 (2)
Last-modified实体头应答头 说明 Allow 服务器支持哪些请求方法(如GET、POST等)。Content-Encoding文 档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的 下载时间。Java的GZIPOutputStream可以原创 2010-03-17 09:04:00 · 893 阅读 · 0 评论 -
java的Comparator和Comparable
当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。 一、Comparator强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。接口方法: /** * @return o1小于、等于或大于o2原创 2010-03-31 20:51:00 · 746 阅读 · 0 评论 -
高并发系统数据幂等性
在系统开发过程中,经常遇到数据重复插入、重复更新、消息重发发送等等问题,因为应用系统的复杂逻辑以及网络交互存在的不确定性,会导致这一重复现象,但是有些逻辑是需要有幂等特性的,否则造成的后果会比较严重,例如订单重复创建,这时候带来的问题可是非同一般啊。一、系统的幂等性 幂等是数据中得一个概念,表示N次变换和1次变换的结果相同。二、高并发的系统如何保证幂等性1、查询转载 2016-12-02 13:21:01 · 559 阅读 · 0 评论 -
分布式事务最终一致性常用方案
目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定的开源框架能够解决的,更多的还是看业务场景,根据场景来给出解决方案。根据笔者最近几年的了解,总结了几个点,更多的应用系统在编码的时候,更加关注数据的一致性,这样系统才是健壮的。一、基础理论 目转载 2016-12-02 13:22:02 · 23451 阅读 · 1 评论 -
java获取客户端以及代理IP地址
现在一般获取客户端ip的写法如下,主要代码:1)ip = request.getHeader("X-FORWARDED-FOR ")2)如果该值为空或数组长度为0或等于"unknown",那么:ip = request.getHeader("Proxy-Client-IP")3)如果该值为空或数组长度为0或等于"unknown",那么:ip = request.getHeade原创 2017-03-16 16:19:53 · 2812 阅读 · 0 评论 -
spring boot security 实现登陆时ajax请求返回json,而不是直接页面跳转
1、编写自己的SuccessHandlerpublic class AuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse re原创 2017-06-14 14:22:25 · 12999 阅读 · 1 评论 -
Java之——Redisson实现分布式锁
1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。[java] view plain copypublic void testReentrantLock(RedissonClient redisson){ RLock lock = redi...原创 2018-05-25 15:40:28 · 1267 阅读 · 0 评论 -
Redis分布式锁的正确实现方式
前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。具有容...转载 2018-05-25 16:11:18 · 614 阅读 · 0 评论 -
Eureka参数配置项详解
Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考。 Eureka客户端配置 1、RegistryFetchIntervalSeconds 从eureka服务器注册表中获取注册信息的时间间隔(s),默认为30秒 ...转载 2018-09-29 18:30:33 · 10129 阅读 · 0 评论 -
深入理解Java PriorityQueue
PriorityQueueJava中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对PriorityQueue建立清晰而深入的认识。总体介绍前面以Java ArrayDeque为例讲解了Stack和Queue,其实还有一种特殊的队列...转载 2018-11-06 14:01:41 · 531 阅读 · 0 评论 -
225. Implement Stack using Queues
SummaryThis article is for beginners. It introduces the following ideas: Stack, Queue.SolutionApproach #1 (Two Queues, push - O(1), pop O(n) )IntuitionStack is LIFO (last in - first out) dat...转载 2018-11-06 17:18:56 · 652 阅读 · 0 评论 -
HttpClient设置HTTP请求头Header
用Firebug对POST的数据进行监控 请求 HTTP头 信息,得到如下内容:Java代码 Accept application/json, text/javascript, */* Accept-Encoding gzip, deflate Accept-Language en-us,en;q=0.5 Cache-Control no-cache Con转载 2016-07-13 17:30:44 · 11020 阅读 · 0 评论 -
spring 官方下载地址!!
spring的官方网站改版了,导致找不到下载地址,下面是一个镜像网站,东西都是最新的可放心下载http://maven.springframework.org/release/org/springframework/spring/转载 2014-03-26 23:06:09 · 17019 阅读 · 10 评论 -
Spring中定时任务Quartz集群配置学习
Spring中定时任务Quartz集群配置学习原来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运行,没有任何错误日志,于是从jar包、JDK版本、cronExpression到服务器类型,甚至查到了服务器操作系统的类型,都没能找到解决的办法,后来才知道是集群惹的祸!详细步骤如下:1、 按照Q转载 2013-09-01 16:50:17 · 24501 阅读 · 1 评论 -
面试题:数组按列排序的问题
今天面试时遇到这样一个问题,即每月的天数按照下列方式显示: 1 12 23 2 13 24 3 14 25 4 15 26 5 16 27 6 17 28 7 18 29 8 19 30 9 20 3110 21 11 22 实现方式:因为要求显示3列,所以实现方式是这样:public static void main(原创 2010-04-01 22:21:00 · 729 阅读 · 0 评论 -
linux命令
NO分类PS1命令名用法及参数功能注解1显示目录信息#lsls -a列出当前目录下的所有文件,包括以.头的隐含文件#lsls -l或ll列出当前目录下文件的详细信息#lsls -a显示所有文件,包含隐藏。#lsls -al显示所有文件的详细信息。2转载 2010-05-03 21:33:00 · 843 阅读 · 1 评论 -
java.lang.OutOfMemoryError: PermGen space及其解决方法(转)
<br />java.lang.OutOfMemoryError: PermGen space及其解决方法 <br /> PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。<br />说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放原创 2010-06-29 21:08:00 · 1222 阅读 · 0 评论 -
MySQL 免安装版配置
1.下载 MySQL 6.0免安装版http://www.mysql.com/downloads/mirror.php?id=3868282.将 MySQL6.0 解压到待安装目录(自己决定放到哪)。解压后默认文件夹名称为:mysql(当然可以自己更改),然后在环境变量中设置MYSQL_HOME(这样,以后可以用%MYSQL_HOME%引用安装目录)。如,我放在E盘根目录下,所以,MYSQL_原创 2010-05-09 15:20:00 · 928 阅读 · 0 评论 -
Hessian
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据 在进行基于Hessian的项目开发时,应当注意以下几点: ▲JAVA服务器端必须具备以下几点: ·包含Hessian的jar包 ·设计一个接转载 2010-05-09 12:40:00 · 763 阅读 · 0 评论