随笔分类 - java
摘要:在web应用中时常需要修改配置,并动态的重新加载ApplicationContext。比如,设置和切换数据库。以下给出一个方法,并通过代码验证可行性。 方法的基本思路是,为WebApplicationContext指定一个上级ApplicationContext,然后需要更新的时候先得到它的引用,再调用refresh方法重新加载。如果直接获得WebApplicationContext实例,重新加载(refresh),得不到预期的效果。 在本示例中,classpath下有一个config.properties文件,定义了derby数据库的属性:jdbc.driverClassName=o...
阅读全文
摘要:alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西来解决这些问题。基本原理如图:在我们的系统中,经常会有一些跨系统的调用,如在A系统中要调用B系统的一个服务,我们可能会使用RMI直接来进行,B系统发布一个RMI接口服务,然后A系统就来通过RMI调用这个接口,为了解决容灾,扩展,负载均衡的问题,我们可能会想很多办法,alibaba的这个办法感觉不错
阅读全文
摘要:一、概述1、什么是ESB就是企业数据总线的意思,他的核心功能就是兼容各种协议接口,可以将数据在各种协议之间进行流转,并且可以针对数据格式进行编排转换代表性的项目有:JBOSS ESB,Mule,Camel 以及一些其他的esb项目2、什么是服务注册就是将所有的服务接口(很多时候是hession协议的接口),注册到一个中心的分布式服务集群上(你可以考虑成apache的zookeeper服务实现的效果)。各个业务系统直接访问分布式服务查找需要调用的接口位置,进而调用代表性开源项目有:阿里的dubbo,淘宝的HSF(现在不知道是否继续开源了)二、双方特点1、ESBESB一般采用集中式转发请求,适合大
阅读全文
摘要:Apache Solr 4.0 发布一段时间了,最新的solr修改动作还是很大的,尤其从后台管理界面来看,体验和管理更加方便了。默认使用了multi-core模式,以及支持了对多个collection的管理、监控、优化。从内核来看,Solr 4也带来了很多新东西,如Solr Cloud、Realtime GET、NRT(Near-Real-Time Search)、Master/Slave扩展与ZooKeeper集成、Join查询等。安装SOLR 41. 下载Solr4 http://lucene.apache.org/solr/2. 解压缩,进入example文件夹下面3. 启动Solr..
阅读全文
摘要:2012年10月12日,Lucene 4.0正式发布了(点击这里下载最新版),这个版本因为诸多的新特性和大胆的架构调整一直备受期待。无论是索引结构,索引算法以及整体架构的包容性都发生了翻天覆地的变化。正如大家一直所说的Lucene是一个搜索工具包,而4.0的发布则让Lucene向搜索框架的方向迈出了一大步。 下面我们来逐一解读Lucene 4.0的新特性吧。Lucene 4.0 的关键词: 架构解耦,索引结构可定制化,索引结构透明化,向搜索框架方向发展。Lucene 4.0 正式版亮点功能: 一、通过解码器Codec 机制 Lucene 索引格式与Lucene架构解耦,变成了Plugin...
阅读全文
摘要:首先当然得下载mybatis-3.0.5.jar和mybatis-spring-1.0.1.jar两个JAR包,并放在WEB-INF的lib目录下(如果你使用maven,则jar会根据你的pom配置的依赖自动下载,并存放在你指定的maven本地库中,默认是~/.m2/repository),前一个是mybatis核心包,后一个是和spring整合的包。使用mybatis,必须有个全局配置文件configuration.xml,来配置mybatis的缓存,延迟加载等等一系列属性,该配置文件示例如下:Java代码<?xmlversion="1.0"encoding=&qu
阅读全文
摘要:在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进nginx+apache篇。查看方法我们可以用ulimit -a来查看所有限制值[root@centos5 ~]# ulimit -acore file size (blocks, -c) 0data s
阅读全文
摘要:运行在Linux系统上的Java程序可能会出现"Too many open files"的异常情况,且常见于高并发访问文件系统,多线程网络连接等场景。 程序经常访问的文件、socket在Linux中都是文件file,系统需要记录每个当前访问file的name、location、access authority等相关信息,这样的一个实体被称为file entry。“open files table”(图中橙色标识)存储这些file entry,以数组的形式线性管理。文件描述符(file descriptor)作为进程到open files table的指针,也就是open f
阅读全文
摘要:Play 框架有自己的模板引擎来生成HTML页面,该引擎使用Groovy做为表达式语言。你可以直接使用 Groovy 语言来创建动态的网页,但并无需学习 Groovy 所有的知识,你需要了解的只是跟 Java 非常相近的一部分。Play 将所有的模板文件都放在 app/views 目录下,所有页面都是在请求时即时解析的。接下来我们创建一个简单应用:oschina@oschina.net:~/dev/play$ /usr/share/play/play new views~ _ _~ _ __ | | __ _ _ _| |~ | '_ \| |/ _' | || |_|~ |
阅读全文
摘要:本文主要目的是用kindeditor 实现图片上传功能。第一步:在view中加载kindeditor,指定kindeditor的配置:<script type="text/javascript">KE.show({id : 'content1',//重点是下面这句imageUploadJson : '@{Journals.uploadjson()}',fileManagerJson : 'http://www.cnblogs.com/jsp/file_manager_json.jsp',allowFileManag
阅读全文
摘要:在互联网应用中,我们通常都需要将动态请求与静态请求分离,或使用独立域名,或使用子域名,或使用CDN分发。同时为了减少生产部署与开发环境切换时更改大量文件,一般都通过修改一个配置文件来实现。 但偏偏现在大部分框架都没有提供这样一个模块实现,那只好自己简单处理一下。同样在PlayFramework中一样没有这样的设置。google group(http://groups.google.com/group/play-framework/browse_thread/thread/1d681f866477ac6b)中有关于这个问题的描述,刚开始我也一样,想修改routes中的staticDir:p...
阅读全文
摘要:Play!的安装(windows):下载文件http://www.playframework.org/下载最新的安装包,play-1.2.3.zip解压到本机文件夹,如:D:\play\设置环境变量Path到安装目录,打开window命令行:输入play,就会输出play!的相关信息,表示已安装成功Play!创建项目:打开window命令行,进入项目要保存的目录,play new myapp ,会要求输入项目描述信息,输入后,项目就创建好了,具体目录如下:app:里边为controller、model、viewconf:包括application.conf,dependencies.yml(依
阅读全文
摘要:第一个程序会首先会介绍play framework的控制器与视图的关联,URL的重写,然后引入数据库的关联,引入单元测试。 创建表单启动服务~$ play run playmusic,在app/views/Application/index.html中替换成如下代码Index.html代码#{extends 'main.html' /} <form action="@{Application.sayHello()}" method="GET"> <input type="text" name=&quo
阅读全文
摘要:我的开发环境是windows32位系统,play1.1下载点这里,eclipse3.5。下载后解压缩play-1.1.zip,运行${PLAY_ROOT}/play.bat文件,这里的{PLAY_ROOT}指的是play-1.1.zip解压缩的路径。将${PLAY_ROOT}加入到环境变量PATH下。在命令行里,输入play回车,输出了一个由符号组成的play字样说明安装成功了。创建项目:命令行下进入${PLAY_ROOT},执行play new ${app_name},这里的${app_name}指的是项目的名字。 example:F:\open_source\play-1.1>pla
阅读全文
摘要:前言 之前在《程序员》杂志上看到过一篇文章介绍Play Framework,厌倦了Struts2-Spring的开发模式后打算自学这个开发框架。于是wiki了下Play Framework,并简单翻译了下wiki上的内容。Play是一个开源的Web应用框架,使用Java语言编写,并遵循了MVC模式。旨在通过约定大于配置,热部署,浏览器提示错误等方式提高开发者的生产率。 Java编写,在1.1版本也支持了Scala语言。动机Play深受Ruby on Rails(这个就不用介绍了吧)与Django(没听过,惭愧)启发。如果你熟悉以上任一框架很轻易就可以上手。Play充分利用了Java的强大能力来
阅读全文
摘要:网上有介绍如何把默认目录为根目录设置,但都是比较旧的版本了,本文介绍WebLogic10.x版本的设置;使用根目录作为默认目录,同样需要新建一个工程可以叫做index,然后在在WEB-INF目录下面新建一个weblogic.xml,把context-root设置为"/":<?xml version="1.0" encoding="UTF-8"?><wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app
阅读全文
摘要:ASCII字符集编码 ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。 只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。GB2312字符集编码 GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码一般 用10进制.
阅读全文
摘要:HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代; TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。用例代码:package com.test; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.TreeSet; /** * @description 几个set的比较 * Hash...
阅读全文

浙公网安备 33010602011771号