07 2013 档案
Spring Security
摘要:Spirng Security主要涵盖的方面有1. 登录验证管理,包括登录成功后保存用户信息到Session2. URL级别和Controller方法级别的访问控制3. 对于访问控制采取的授权管理方法,包括用户授权和用户组授权下面是例子security-config.xml (权限验证失败回到登录页面) (权限验证失败弹框) (提供登出链接) --> --> ...
阅读全文
Spring Validation
摘要:Spring Validation模块用于表单数据验证配置,示例如下依赖Jar包 javax.validation validation-api org.hibernate hibernate-validator Controller方法 /** * 添加酒店 * @param hotel * @param bindingResult * @return */ @RequestMapping(v...
阅读全文
[转]linux下完全备份数据库mysql
摘要:#配置参数USER=vimer_admin #数据库用户名PASSWORD=dreamfly123 #数据库用户密码DATABASE=vimer #数据库名称WEBMASTER=290101401@qq.com #管理员邮箱地址,用以发送备份失败消息提醒BACKUP_DIR=/root/vimer_database_backup/ #备份文件存储路径LOGFILE=/root/vimer_database_backup/data_backup.log #日记文件路径DATE=`date '+%Y%m%d'` #日期格式(作为文件名)DUMPFILE=$DATE.sql #备份文
阅读全文
mysqldump与source
摘要:mysqldump示例 mysqldump --default-character-set=utf8 -d --opt -hlocalhost -uroot -p123456 --where="id = 5" vimer_beta table1 table2 > /root/_backup_vime
阅读全文
Spring REST
摘要:示例实现1. 请求REST接口返回类转换的JSON或XML数据2. POST JSON数据到REST接口自动转为类数据服务端Beanpackage com.qunar.bean;import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlRootElement;/** * Created with IntelliJ IDEA. * User: zhenwei.liu * Date: 13-7-
阅读全文
Spring 远程服务
摘要:稍微看了一下Spring的远程服务章节,讲到了RMI,Hessian,Burlap,Http invoker以及JAX-WS1.RMI原理:1)在Spring服务端使用RmiServiceExporter将一个Spring bean包装在RMI的适配器里,并将这个适配器注册到服务端的RMI服务的ip和端口上,注册RMI服务2)在客户端则使用一个代理工厂生成一个代理对象负责与远程的RMI服务进行通信,这个代理对象当做本地pojo这样使用缺点:1)由于使用任意端口交互,难以穿越防火墙2)RMI基于Java,它使用了Java的序列化机制,因此服务端和客户端之间传输的对象必须保证是相同版本2.Hess
阅读全文
MySQL全文索引
摘要:MyISAM全文索引作用对象是"全文集合",它将需要索引的所有列拼接成字符串,然后进行索引.它是一类特殊的双BTree索引,共有两层,第一层是所有关键字,然后对于每一个关键字,是一组文档指针.全文索引的词语过滤规则:1. 停用词列表中的词不会被索引.默认停用词根据通用英语来设置,可以使用参数ft_s...
阅读全文
[转载] java的书
摘要:1. Java语言基础谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopment Jolt Award最佳书籍大奖,《Thinking in Java》被评为1999年Java World“最爱读者欢迎图书”,并且赢得了编辑首选图书奖。作者从1986年至今,已经发表了超过150篇计算机技术文章,出版了6本书(
阅读全文
Spring 事务管理
摘要:1.事务管理器的声明 2. 编码式事务管理 /** * 编码型事务测试 */ public void killUser(final int userId) { txTemplate.execute(new TransactionCallback() { @Override public Object doInTransaction(TransactionStatus transactionStatus) { ...
阅读全文
Spring AOP
摘要:Spring AOP 可以使用XML 配置方式和注解方式而AOP的类型有如下三种1. 显示声明前置后置AOP方法2. 环绕AOP方法3. 使用接口扩展已知类以下是各种类型示例applicationContext.xml示例 ...
阅读全文
关于JDBC PreparedStatement
摘要:PreparedStatement的执行步骤:1. 向数据库服务器发送SQL语句,数据库对SQL进行解析和优化(conn.preparedStatement(sql))2. 向数据库发送绑定的参数和值,并执行SQL(pstmt.setString(), pstmt.executeQuery())他的优势在于:1. 数据库仅需解析一次SQL(后面可以循环使用这个pstmt进行数据库操作)2. 数据库优化器仅需进行一次SQL优化,因为数据库可以缓存执行计划3. 无需处理SQL转义,更安全4. 以二进制的方式发送参数和句柄,节省内存,减少网络开销(不知道在JDBC中是不是这样)另外,可以使用pstm
阅读全文
MySQL外键
摘要:外键成本1.对子表进行插入操作时,需要约束父表中的外键行,也就是对父表的外建行加锁,以确保这个外键不会再子表插入事务结束前被更改,从而导致额外的锁等待2.Innodb强制外键使用索引,而如果外键的选择性很低(例如status列,或许一共只有3个值),那么索引对与查找来说几乎没有帮助,而且会占用很大的空间如果仅仅是使用外键作为约束,则使用触发器或者限制值(Enum)或者在程序里显式约束会更好
阅读全文
MySQL: load data infile
摘要:load的语法LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED...
阅读全文
MySQL分区表
摘要:分区表是一种粗粒度,简易的索引策略,适用于大数据的过滤场景.最适合的场景是,没有合适的索引时,对其中几个分区表进行全表扫描.或者只有一个分区表和索引是热点,而且这个分区和索引能够全部存储在内存中.限制单表分区数不要超过150个,并且注意某些导致无法做分区过滤的细节,分区表对于单条记录的查询没有优势,需要注意这类查询的性能.分区表语法 分区表分为RANGE,LIST,HASH,KEY四种类型,并且分区表的索引是可以局部针对分区表建立的 创建分区表CREATE TABLE sales ( id INT AUTO_INCREMENT, amount DOUBLE NOT NULL, ...
阅读全文
ContextLoaderListener 与 ServletDispatcher
摘要:网上找了一下关于ContextLoaderListener和ServletDispatcher的解释,这是原文http://simone-folino.blogspot.com/2012/05/dispatcherservlet-vs.htmlhttp://syntx.co/languages-frameworks/difference-between-loading-context-via-dispatcherservlet-and-contextloaderlistener/总结如下:Spring中有两种上下文环境-"Application Context和Web Applica
阅读全文
Spring Bean 注入 2 注解篇
摘要:1. 自动装配注解配置applicationContext.xml开启注解 注解使用示例 /** Value 注解可以使用SpEL,对基本数据类型完成注入 */ @Value("#{americanA.getName}") public void setName(String name) { this.name = name; } /** * Autowired表示使用byType自动装配该属性,他除了用在set方法也可以用在其他方法 * required属性表示可以允许找不到匹配的bean,而将该属性置为nul...
阅读全文
Spring Bean 注入 1 - 构造方法注入,属性注入,自动装配
摘要:1.代码结构图xxx2.bean代码package com.xxx.bean;/** * Created with IntelliJ IDEA. * User: zhenwei.liu * Date: 13-7-18 * Time: 上午1:25 * To change this template use File | Settings | File Templates. */public abstract class People { protected String name; protected int age; protected Pet pet; public...
阅读全文
[转]MySQL Explain
摘要:Mysql Explain 详解一.语法explain 例如: explain select * from t3 where id=3952602;二.explain输出解释+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+| id | select_type | table | type| possible_keys | key | key_len | ref | rows | Extra |+----+-------------+-------
阅读全文
JOIN与EXISTS(子查询)的效率研究
摘要:使用MySQL提供的Sample数据库Sakila现将profiling打开,用来一会查看sql执行时间set profiling=1;exists 子查询与 join联接效率的对比,功能:查看没有演员的电影EXPLAIN SELECT film_id, language_id FROM sakila.filmWHERE NOT EXISTS( SELECT * FROM sakila.film_actor WHERE film_actor.film_id = film.film_id);EXPLAIN SELECT film_id, language_id FROM sakila...
阅读全文
<%@ include> <jsp:include>
摘要:1.这个效果是将引入的文件内容直接加入当前JSP然后再编译,会造成的问题就是如果引入的页面中也写了head,contentType之类的东西,就会造成重复,从而出错那么在实际应用场景中,可以使用它来引入一些页面中公共的小段内容,例如引入css时后面用include引入css的版本号2.这个效果是将引入的jsp执行之后,将执行结果引入到当前jsp的结果当中,所以引入的页面需要有自己独立的head和footerflush参数表示是否要在缓冲区满了以后再将内容刷新出来,true表示直接输出,不等待缓冲区充满实际应用中,一般用来引入页面内独立的模块,他们可以有自己的页面配置
阅读全文
Servlet Filter 示例
摘要:1. CityQuery.javapackage com.xxx.servlet;import com.google.common.collect.Lists;import com.xxx.data.HotelInfo;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOExcept
阅读全文
Java Web 项目获取运行时路径 classpath
摘要:假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么java文件夹和resources文件夹在运行时就是classpath的真实位置,如果有一个文件位于 src/main/resources/test.txt有一个类位于 src/main/java/com/qunar/MyClass.javaFILE_NAME = "test.txt"通过如下代码MyClass.class.getClassLoder().getResource(FILE_NAME).getPath();可以直接获取文件路
阅读全文
Spring MVC
摘要:1. 流程Spring MVC依靠的是DispatcherServlet,他是一个分发器,在请求过来的时候它负责分发请求给控制器,当控制器请求处理完成后,它负责根据逻辑视图名查找视图呈现结果2.配置DispatcherServletweb.xml中DispatcherServlet的配置 -servlet.xml对应 --> dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocati...
阅读全文
Junit Hamcrest Mockito单元测试
摘要:pom.xml配置 4.0.0 TestPractice TestPractice 1.0 junit junit 4.11 test ...
阅读全文
[转]Hamcrest使用方法实例
摘要:assertThat方法需要使用hamcrest的匹配方法:示例assertThat( n, allOf( greaterThan(1), lessThan(15) ) );assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );assertThat( n, anything() );assertThat( str, is( "bjsxt" ) );assertThat( str, not( "bjxxt" ) );assertThat( str, containsString( "bjsx
阅读全文
Maven配置浅析
摘要:4.0.0 xxx.common xxx-supom-generic 1.2.32 com.xxx.fresh maventest 1.0.0 war junit junit 4.1.0 ...
阅读全文
Guava API - FluentIterable Predicate Function Odering Range Splitter
摘要:这写API可解决的问题1. 集合元素的过滤 - FluentIterable Predicate Range Function1) 先说Predicate,这个相当与一个过滤原则,里面有个apply()方法,通过一定的条件返回true或false,依次判断元素需不需要过滤其中T表示待过滤集合里面的元素类型,举个例子package guavaexam.test;public class Man { private String name; private int age; public Man(String name, int age) { this.name =...
阅读全文
awk排序作业
摘要:输入:给定一个hotelinfo文件,文件格式如下:shanghai_city_7208上海全季酒店淮海路店shanghai_city_14744锦江之星上海金山城市沙滩店jinan_2794章丘市大众旅馆carmel_ca_5CarmelRiverInn格式说明:1.一共两列,之间使用tab分隔2.第一列是酒店代号,第二列是酒店名称3.以shanghai_city_7208为例,前面的shanghai_city代表城市要求如下:1.输出一个文件,和hotelinfo格式一样,但是按照酒店代号进行降序排序2.输出一个文件,两列,第一列是城市代号,第二列是这个城市下的酒店数,但是按照酒店数进行降
阅读全文
[转]awk使用手册
摘要:awk手册简体中文版由bones7456 (bones7456@gmail.com)整理.原文:应该是http://phi.sinica.edu.tw/aspac/reports/94/94011/但是原文很乱.说明:之前也是对awk几乎一无所知,无意中看到这篇文章,网上一搜,居然没有像样的简体中文版.有的也是不怎么完整,或者错误一大堆的.于是就顺手整理了下这篇文章.通过整理这篇文章,自己也渐渐掌握了awk的种种用法.原文可能比较老,有些目前已经不适用的命令有所改动,文中所有命令均在ubuntu7.04下调试通过,用的awk是mawk.由于本人能力有限,错误和不妥之处在所难免,欢迎多多指正.1
阅读全文
Guava的使用
摘要:package guava;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Comparator;import java.util.Date;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import com.google.common.base.CharMatcher;import
阅读全文