JAVA
文章平均质量分 71
无德皇叔
这个作者很懒,什么都没留下…
展开
-
设计模式之03 Template Mthod模式
一、模板方法模式 在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为Template Method模式。 一些在模板方法中,我们可以使用抽象定义一个算法中的 一些步骤,模板方法确定他们的先后顺序,但方法的具体实现由子类负责。二、模板方法举例 2.1 AbstractDisplay类 该类为抽象类,其中原创 2017-05-08 22:02:52 · 436 阅读 · 0 评论 -
Jersey过滤器使用
Jersey过滤器使用Jersey框架中除了可以使用Servlet提供的过滤器以外,还提供了自己的过滤器实现。Jersey过滤器可以分为请求过滤器和响应过滤器,本次介绍Jersey过滤器的使用,并通过使用过滤器实现客户端请求完整的响应时间记录。ContainerRequestFilter请求过滤器,用于处理请求到达对应的资源服务前的业务需求. 请求过滤器的实现需要满足三个条件:实现Contain原创 2016-11-18 09:38:49 · 2464 阅读 · 2 评论 -
Jersey+Spring+Maven整合demo
Jersey+Spring+Maven整合demo一、导入依赖本次demo使用与galssfish整合的jersey框架主要 需要导入的依赖有jersey依赖,jersey spring 依赖,spring依赖,glassfish依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20原创 2016-11-08 11:21:50 · 1153 阅读 · 0 评论 -
使用Ide实现远程调试
使用Ide实现远程调试一、准备工作为了进行远程调试,首先需要服务器支持远程调试,我们使用Tomcat作为服务器,Tocat实现远程调试一般有两种方式。1.1 临时支持远程调试设置环境变量export JPDA_ADDRESS=7777相当于设置远程调试监听的端口号。采用这种方式进行远程调试,启动Tomcat不能采用传统的启动方式,使用sh catalina.sh jpda start启动。原创 2016-11-07 15:01:00 · 2187 阅读 · 0 评论 -
Maven实现tomcat热部署
Maven实现tomcat热部署兼容 tomcat7和tomcat8测试了一上午maven项目热部署到tomcat,在网上查找了不少资料,终于测试成功,写写自己的测试过程。一、开放tomcat管理权限1.1 必须有manager项目tomcat webapps下面必须manager项目,用于管理tomcat权限操作。如果webapps下面没有该项目,则不能进行热部署。1.2 配置tomcat用户原创 2016-09-23 14:43:40 · 647 阅读 · 1 评论 -
hashmap实现原理
hashmap实现原理浅析看了下JAVA里面有HashMap、Hashtable、HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正HashMap和Hashtable的区别HashSet和HashMap、Hashtable的区别HashMap和Hashtable的实现原理HashMap的简化实现MyHashMap HashM转载 2016-08-12 16:04:47 · 354 阅读 · 0 评论 -
Mybatis与Spring整合
Spring与Mybatis整合一、整合思路1、SqlSessionFactory对象应该放到spring容器中作为单例存在。 2、传统dao的开发方式中,应该从spring容器中获得sqlsession对象。 3、Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。 4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。二、整合需要的jar包1、s原创 2016-08-02 21:51:02 · 486 阅读 · 0 评论 -
Shiro 安全框架
Shiro 安全框架学习一、Shiro简介Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 实际上,Shiro的主要功能是管理应用程序中与安全相关的全部,同时尽可能支持多种实现方法。Shiro是建立在完善的接口驱动设计和面向对象原则之上的,支持各种自定义行为。Shiro提供的默认实现,使原创 2016-07-03 22:05:28 · 3796 阅读 · 0 评论 -
Mybatis基础
Mybatis第一天 框架课程 1 课程计划第一天:1、mybatis的介绍2、Mybatis的入门a) 使用jdbc操作数据库存在的问题b) Mybatis的架构原创 2016-07-21 10:22:26 · 1605 阅读 · 0 评论 -
Jersey 统一异常处理
Jersey 统一异常处理正如很多成熟的java框架,一定有良好的异常处理机制。对异常的良好处理,也是一个成熟程序的标志。下面关于异常的处理介绍来自REST(Jersey实现)统一异常机制。异常分类(1)Throwable类是所有异常的始祖,它有两个直接子类Error / Exception: Error仅在Java虚拟机中发生动态连接失败或其它的定位失败的时候抛出一个Error对象。一般程序原创 2016-11-16 15:01:09 · 1711 阅读 · 0 评论 -
Jersey Response响应请求
Chapter2-3 Jersey Response响应请求前面介绍的Jersey示例,是根据实际需求返回结果,但我们实际在开发中一般不采用这种方式进行开发,在响应客户端请求时,我们使用Response进行响应请求。 javax.ws.rs.core.Response 官方Response ApiResponse设置响应状态码前面的示例中默认都是响应状态码是200,通过Response类,我们可以原创 2016-11-16 09:35:23 · 8894 阅读 · 0 评论 -
Jersey常用注解
Charpter 2-2 Jersey常用注解@ApplicationPath该注解用于声明Jersey的全局配置类,也即整个Jersey框架的程序入口。该类需要满足下面条件。@ApplicationPath注解该类,并且指定该类对应的路径继承 org.glassfish.jersey.server.ResourceConfig 类在该类中配置Jersey的配置,例如声明资源包路径,配置拦截器原创 2016-11-15 15:37:28 · 2633 阅读 · 0 评论 -
Iterator 迭代器设计模式
一、Iterator 迭代器设计模式 迭代器设计模式的作用可以提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 迭代器模式有三个重要作用: 1、支持以不同的方式遍历集合 根据我们生成的迭代器的实现不同,可以采用不同的遍历方式。 2、迭代器简化了集合接口。有了迭代器的遍历接口,集合不原创 2017-04-25 23:50:51 · 691 阅读 · 0 评论 -
Jersey使用注解和过滤器实现日志记录
我们使用过滤器进行日志处理的时候,一般的过滤器的编码方式是针对所有的方法都会进行过滤,假如我们需要对用户特定别的访问行为进行监控,记录用户的访问记录,现在的过滤器的写法就不能满足我们的需求。在Jersey框架中我们可以使用特定的注解来指定过滤器的作用范围,这种特定的注解被称为名称绑定。名称绑定注解使用@NameBingding 注解可以定义一个运行时的自定义注解,该注解用于定义类级原创 2017-03-14 10:43:20 · 4345 阅读 · 1 评论 -
Mybatis 源码分析一、 SqlSessionFactory的创建过程
本次解析是基于Mybatis与Spring整合的方式,分析Mybatis的初始化过程。一、配置文件解析过程 Spring与Mybatis整合配置过程 1.1 配置数据源xml version="1.0" encoding="UTF-8"?>beans xmlns="http://www.springframework.org/schema/beans" xmlns:xs原创 2017-03-21 17:07:03 · 844 阅读 · 0 评论 -
Linux下安装RabbitMQ
Linux下安装RabbitMQ最近公司准备使用RabbitMQ以前接触过ActiveMQ。从网上的资料来看RabbitMQ对持久化的支持做的更好,因此,决定从头学习下RabbitMQ。RabbitMQ的主要特点支持一对多方式多个Queue绑定到一个Exchange后,通过向Exchange发送消息,就可将信息转发到多个绑定到Exchange的Queue中,消息持久化 如果对消息进行了持久话处原创 2016-11-22 22:49:56 · 330 阅读 · 0 评论 -
Redis介绍及环境搭建
Redis一、Redis介绍1.1 NoSQL数据库 NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了原创 2016-08-05 18:18:50 · 331 阅读 · 0 评论 -
使用Spring 注解实现调度任务及cron表达式详解
使用Spring 注解实现调度任务及cron表达式详解本教程摘选自《Spring 实战 第3版》,最新的出到第4版,对于学习Spring的朋友来说无论作为教材还是工具书,都是很不错的选择,强力推荐。在程序开发中,我们可能遇到过类似的需求,程序需要设定执行时间,每隔多久执行一次或者在固定的时间段和时间点执行。这时我们可以使用任务调度的方式来实现。目前成熟的任务调度框架有很多,Spring都予以了集成支原创 2016-12-02 17:16:08 · 1504 阅读 · 0 评论 -
Jersey JdbcTemplate的使用
Jersey JdbcTemplate的使用经过前面的介绍,我们可以实现简单RESTful服务了,并使用map集合模拟了,学生信息的增删改查。但是实际开发中我们更多的是与数据库打交道,使用数据库来处理数据,因此在下面的章节中我们将会介绍Jersey框架与数据库进行交互的操作。 本章节我们介绍Jersey与JdbcTemplate的结合使用。引入依赖在spring与Jersey整合的基础上需要加上s原创 2016-11-18 17:06:00 · 883 阅读 · 0 评论 -
Jersey复杂案例 完整的增删改查Restful服务
Jersey入门案例2 完整的增删改查Restful服务第一章的入门案例我们可以完成一个简单的HelloWorld程序,下面我们来演示下相对较为复杂的RESTful服务,实现简单学生信息的增删改查。 整个项目框架是在chapter1-3的基础上开发。Student类的定义StudentResource服务提供import cn.lx.entity.Student;import javax.ws.r原创 2016-11-14 15:13:10 · 3097 阅读 · 0 评论 -
Mybatis 动态SQL语句
Mybatis深入学习一、resultMap1.1 resultMap作用resultType可以指定pojo将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功。如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系 ,resultMap实质上还需要将查询结果映射到pojo对象中。resultMap可以实现将查询结果原创 2016-08-02 20:44:12 · 951 阅读 · 0 评论 -
Mybatis基础知识
Mybatis学习2 MyBatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不原创 2016-08-02 17:07:02 · 844 阅读 · 1 评论 -
Mybatis逆向工程
Mybatis逆向工程1 Mybatis逆向工程使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件。作用:mybatis官方提供逆向工程,可以使用它通过数据库中的表来自动生成Mapper接口和映射文件(单表增删改查)和Po类.1.1 第一步:mapper生成配置文件:在generatorConfig.xml中配原创 2016-08-02 20:47:36 · 613 阅读 · 0 评论 -
springmvc参数绑定
五、SpringMVC 参数绑定方式5.1 绑定基本数据类型1、通过request的API获取参数RequestMapping("/itemEdit")public ModelAndView itemEdit(HttpServletRequest request) { //从Request中取id String strId = request.getParameter("id");原创 2016-07-25 15:09:36 · 1499 阅读 · 1 评论 -
springmvc基础知识
SpringMVC基础一、SpringMVC介绍SpringMVC与Struts2一样都是表现层框架SpringMVC一般采用注解开发,开发效率相比于Struts2较快,配置文件相对较少,开发方便。二、SpringMVC开发DEMO2.1 导入相应的jar包2.2 创建Conteoller类该类不需要实现任何接口,只需要在类上添加@Controller注解即可。@RequestMapping注原创 2016-07-25 15:08:42 · 1212 阅读 · 1 评论 -
Oracle 关系数据库
一、 Oracle 关系数据库关系模型是关系数据库的基础,它利用关系来描述显示世界。以用户的观点来看,一个关系就是一张二维表。关系数据模型是由关系数据结构、关系操作和关系的完整性约束三部分组成。1、数据结构关系数据模型是由若干个关系模式组成的集合,关系模式的实例为关系,每个关系可以看成由行或列交叉组成的二维表格,表中的一行称为一个元组,可以用来标识实体集中的一个实体。表中的列称为属性,列名即属原创 2016-06-05 22:38:45 · 826 阅读 · 0 评论 -
SQL语言基础
SQL语言基础1、SQL语言概述SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,SQL标准是由ISO(国际化标准组织)和ANSI(美国国家标准化组织)共同制定的。它的主要作用是存储数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。1、1 SQL语言特点SQL语言理解起来非常简单,这样就方便开发人员使用SQL语言对数原创 2016-06-05 22:38:17 · 720 阅读 · 0 评论 -
Oracle深入学习
一、异常异常是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性。1、Oracle预定义异常命名的系统异常 产生原因ACCESS_INTO_NULL 未定义对象CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时COLLECTION_IS_NULL原创 2016-06-04 20:00:28 · 986 阅读 · 0 评论 -
Hibernate深入
1.no-session 问题1.1 no-session问题的产生异常名称:org.hibernate.LazyInitializationException: could not initialize proxy - no Session1、no-session问题产生的原因是获取数据使用延迟加载数据的方式,当使用数据前关闭session的,再使用数据时,数据不会加载,进而报错1.2 解决n原创 2016-06-10 22:34:55 · 344 阅读 · 0 评论 -
Hibernate全方位总结
一、Hibernate简介Hibernate是一个持久层的ORM框架Hibernate用于简化DAO层的操作,封装了JDBC的操作。ORM 对象关系映射 将java的对象与关系数据库进行映射 类名映射为表名 类中属性映射为表的字段 对象映射为表中记录使用Hibernate进行数据库操作时,只需要操作对象即可,无需考虑SQL语句,很好的体现面向对象的思想。二、Hibe原创 2016-06-10 22:32:58 · 340 阅读 · 0 评论 -
使用PreparedStatement防止SQL注入
Statement是PreparedStatement的父接口,不进行预编译操作,减少了进行预编译的开销.单次运行PreparedStatement要比Statement要慢一些.PreparedStatement可以实现Statement的所有功能,但是之所以叫它预编译指令,是因为在创建它的一个对象时可以给定具有一定格式的SQL字符串,然后用它的setXXX方法给指定的SQL语句以填转载 2016-05-02 11:33:04 · 537 阅读 · 0 评论 -
Struts2与SpingMVC的开发对比
SpringMVC与Struts2对比一、核心控制器1、Struts2的核心控制器是StrutsAndPrepareExcuteFilter,本质是Filter<!--配置Struts2核心控制器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher原创 2016-07-25 16:54:36 · 834 阅读 · 0 评论 -
Spring事务管理
一、Spring事务管理1.1 spring事务的底层实现通过配置文件配置事务的详细信息,spring将其封装到对象TransactionDefinition ,通过事务管理器的getTransaction()方法,可以获得事务的状态TransactionStatus,就可以对事物进行进一步操作。1.2 spring事务操作spring的事务操作包括:配置事务详细(增强,通知等),配置事务管理器,原创 2016-07-26 21:59:08 · 283 阅读 · 0 评论 -
FastJson的使用
1 FastJson介绍FastJson是阿里巴巴工程师开发的,转换json对象的速度很快。2 FastJson API1、JSON.toJSONString(Object) 将对象转换为json串 2、JSON.parseObject(json, clazz) 将json转换成指定对象 clazz是需要转换的对象的字节码文件3 FastJson 循环引用问题3.1 fastj原创 2016-07-26 23:20:42 · 472 阅读 · 0 评论 -
常用Linux命令
常用Linux命令一、磁盘管理1、ls 命令功能:列出目录内容 格式:ls 参数 目录 ls -a或-all 显示所有目录 ls -l 使用详细格式列表 ls -s 用文件和目录的大小排序 ls -t 用文件目录更改时间排序 ls --full-time 列出完整的时间与时间 -he原创 2016-08-02 16:46:26 · 460 阅读 · 0 评论 -
Jedis简单使用
Jedis一、Jedis介绍Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis。Jedis同样也是托管在github上,地址:h原创 2016-08-05 18:19:29 · 1252 阅读 · 0 评论 -
redis数据类型以及常用的命令
redis数据类型以及常用的命令一、Stringredis中没有使用C语言的字符串表示,而是自定义一个数据结构叫SDS(simple dynamic string)即简单动态字符串。打开下载的redis源码包,找到src下的sds.h文件查看sds源码:struct sdshdr { //字符串长度 unsigned int len; //buf数组中未使用的字节数量原创 2016-08-05 18:18:08 · 1073 阅读 · 0 评论 -
远程服务调用 Dubbo分布式框架
Dubbo一、Dubbo介绍Dubbo 是一个分布式服务框架,用于提高性能和透明化的RPC远程服务调用。为什么要用Dubbo最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间的解耦合,或者最大限度的分耦合。原理:首先有个服务器,提供注册服务,称之为注册中心。服务提供方连接注册中心,将对应的服务配置到注册中心中。服务消费方连接到注册中心,通过注册中心,调用服务提供方提供的方法或服原创 2016-08-04 21:44:40 · 6094 阅读 · 3 评论 -
使用SolrJ管理索引库
使用SolrJ管理索引库一、SolrJ介绍solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务,如下图: 依赖的jar包 solr-4.10.3\dist\ 二、SolrJ与Java项目整合2.1 导入相应的jar包导入SolrJ需要的jar包还需要导入solr-4.10.3\examp原创 2016-07-29 11:57:45 · 950 阅读 · 0 评论 -
Solr配置文件介绍、中文分析器以及数据导入
Solr配置文件介绍、中文分析器以及数据导入一、配置文件介绍1.1 schemax.xml schema.xml,在SolrCore的conf目录下,它是Solr数据表配置文件,它定义了加入索引的数据的数据类型的。主要包括FieldTypes、Fields和其他的一些缺省设置。1、FieldType定义<fieldType name="text_th" class="solr.TextFie原创 2016-07-29 11:21:10 · 2809 阅读 · 0 评论