自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Redis总结111

Reids的数据结构: 数据类型 存储的值 常见操作 STRING 字符串、整数、浮点数 GET,SET LIST 一个链表,每个节点一个字符串 RPUSH/LPUSH,LRANGE,LINDEX,LPOP/RPOP SET 包含字符串的无序收集器 SADD,SMEMBERS,SISMEMBER,SREM HASH ...

2018-03-25 22:20:10 222 1

原创 Spirng源码分析总结——Bean

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 如果想要弄清Bean创建到使用的一整套流程实际上非常复杂,bean的处理可以是Spring的核心之一:首先需要对标签属性进行处理进行Bean的加载进行BeanFactory的加载下面按顺序进行介绍对标签属性的处理,这一部分的的处理很复杂(以后用空再慢慢补充,现在仅给出逻辑步骤):首先委托BeanDefinit...

2018-03-25 16:40:04 289

原创 Struts2——拦截器

实现拦截器自定义拦截器需要实现Interceptor接口:public class MyInterceptor implements Interceptor{ //销毁该拦截器之前的回调方法 void destory(){ //... }; //初始化该拦截器的回调方法 void init(){ //... ...

2018-03-25 11:09:49 210

原创 struts2——文件的上传与下载

上传struts2的文件上传并没有使用servlet3.0的配置,所以仍然需要引入两个包,一个是commos-io-2.2.jar,一个是commons-fileupload-1.3.1.jar,实现文件上传一共分为两个步骤: 1.设置form的enctype属性为”multipart/form-date”<form enctype="mutipart/form-data" a...

2018-03-24 23:41:07 237

原创 struts2——输入校验

校验文件的命名为XXXAction-validation.xml,其中的XXXAction就是我们需要指定校验规则的类,校验规则如下:<?xml version="1.0" encoding="UTF-8"?><!-- 指定校验配置文件的DTD信息 --><!DOCTYPE validators PUBLIC "-//Apache Struts/...

2018-03-24 22:59:41 170

原创 struts2——数据转换

默认转换Struts2内建了所有String类型到基本类型及其封装类型的转换,String转Date,String转数组(数组元素默认为String),String转集合(转为ArrayList,并封装所有字符串)自定义转换通过重写DefaultTypeConverter的convertValue(当然也可以继承它的子类StrutsTypeConverter)完成双向转换,如下所示:...

2018-03-24 20:40:08 152

原创 Jdk容器总结——精简

1.ArrayDeque和TreeXXX是不能添加null值的 2.Queue中的操作如果失败,将会返回两种值: 目的 抛出异常 返回特殊值 插入 add offer(返回特殊值false) 移除 remove poll(返回null) 返回不移除 element peek(返回特殊值null)...

2018-03-24 13:55:37 539

原创 Struts2实战——基础配置

URL拦截器同SpringMVC需要配置DispatcherServlet一样,Struts2也需要在web.xml配置属于自己的”servlet”,只不过在struts2中这个”servlet”实际上是”filter”:<filter> <filter-name>struts2</filter-name> <filter-cl...

2018-03-24 13:35:20 179 1

原创 SpringMVC中Controller进行页面跳转的条件 #sss

第一种:@RequestMapping注解方法的返回值为String 第二种:@ModelAttribute和@RequestMapping注解同一个方法,那么此时方法完成后将会跳转至@RequestMapping的value页面 第三种:ModelAndView通过setViewName设置了返回页面的值 其他的暂时想不出来了,欢迎大家讨论,留言,或者指出我的错误...

2018-03-23 21:35:14 430 1

原创 JSP中的"拦截器"

过滤器JSP中其实并不存在拦截器,可能叫做过滤器更加合适。创建Filter必须实现Filter接口,该接口有三个需要实现的方法://用于完成Filter的初始化void init(FilterConfig config);//实现过滤功能,其实质上就是对每个请求增加额外处理void doFilter(ServletRequest request,ServletResponse res...

2018-03-23 20:50:26 3149

原创 JSP自定义标签

自定义开发的标签应该1.继承SimpleTagSupport,2.提供属性对应的getter和setter方法,3.重写doTag()方法、实例:public class MyTag extends SimpleTagSupport{ public void doTag()throws JspException,IOException{ getJspContext(...

2018-03-23 19:35:12 153

原创 JSP/Servlet总结

1.JSP本身不能执行,必须通过服务器解析之后生成Servlet才能够执行,JSP本质就是Servlet2.JSP页面本身无法显示,而是通过被解析为HTML页面之后才可以通过浏览器进行访问3.JSP的四种用法为:<%-- 注释 --%><%! 声明的变量和方法(不能使用abstract修饰词) %><!--例如<%! public st...

2018-03-23 19:09:56 365

原创 Mybatis的事务、缓存

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 事务Mybatis事物的设计都是基于Transaction接口来进行的: 该接口实际上是使用模板设计模式进行设计,可以看见该接口实际上有两个实现类: 一个为ManagedTransaction:由容器实现对事务的管理,单独使用commit和rollback没有任何效果 一个为JdbcTransact...

2018-03-23 10:48:03 255

原创 Mybatis的使用

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 如果要使用mybatis,需要定义几个特别重要的xml,第一个文件为XXXMapper.xml文件(XXX是我们需要进行对应的domain类)<mapper namespace="命名空间"> <insert id="XX(唯一)" parameterType="对应的domain类"...

2018-03-22 17:57:35 174

原创 SpringMVC实战(九)——拦截器

拦截器在SpringMVC中拦截器的作用可以是拦截用户请求以及进行用户权限的验证、用户登陆信息等,SpringMVC中拦截器是低耦合的 关于拦截器,最重要的就是实现HandlerInterceptor接口或者继承它的子抽象类HandlerInterceptorAdapter。该接口有三个方法,其调用顺序如下: preHandle→postHandle→afterCompletion pr...

2018-03-22 11:38:20 361 1

原创 SpringMVC实战(八)——文件上传与下载

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 文件上传文件的上传需要在页面中设置enctype为multipart/form-data,method为post,如下所示:<form action="XXX" enctype="multipart/form-data" method="post"> <input type=...

2018-03-22 11:16:15 174

原创 SpringMVC实战(七)——数据校验

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 SpringMVC的校验有两种选择的方式,一种是利用Spring框架自带的Validation校验框架进行校验、另一种是利用Java验证规范中的JSR 303实现校验功能。Validation校验框架SpringMVC实战(二)——常见配置最后一部分我通过@InitBinder注册了Validatior,现...

2018-03-21 23:25:32 197

原创 SpringMVC实战(六)——数据格式化

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 上一篇文章SpringMVC实战(五)——数据转换 谈到了数据转换,但是Spring的转换器并不承担输入以及输出的信息格式化的工作。数据格式化的主要接口为Formatter。之前的数据转化使用的ConversionService用于Object到Object的转换,而数据格式化的Formatter接口主要用于Obje...

2018-03-21 20:08:49 155

原创 SpringMVC实战(五)——数据转换

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 SpringMVC中数据绑定与数据转换的流程ServletRequest+参数对象→DataBinder→ConversionService→Validator→BindingResult→将结果赋值给处理方法的相应参数数据转换java自带的PropertyEditor接口可以用于数据转换,只不过...

2018-03-21 17:08:09 434

原创 SpringMVC实战(四)——国际化

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固 SpringMVC的国际化按照如下步骤进行: (1)加载国际化资源文件 (2)输出国际化资源,输出国际化资源需要分为在view层输出国际化资源,在Controller中输出国际化消息加载国际化资源国际化文件文件类型为.properties,文件名称格式为XXX_en_US,内容格式为key = ...

2018-03-21 10:21:21 288

原创 SpringMVC实战(三)——自带标签库

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固表单标签库如果想要使用SpringMVC自带标签库,需要在开头声明:<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>form标签自动绑定一个属性值到当前form对应的实体对象(默认为com...

2018-03-21 09:16:26 4659

原创 SpringMVC实战(一)——基础概念

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固SpringMVC历史说到SpringMVC我们就必须谈到它的发展历程——Java Web经历了Model1和Model2两种技术,Model1是用JSP处理View,Controller两种角色所需要处理的工作,这样高耦合,低可用性的架构适合于小型的开发。Model2是基于MVC的技术,Servlet作为前端...

2018-03-20 21:59:18 258

原创 SpringMVC实战(二)——常见配置

该文章基于《Spring+MyBatis企业应用实战》进行总结,旨在积累巩固DispatcherServlet该类主要用于调度控制,所有的请求驱动都围绕着这个DispatcherServlet来分派请求,可以将DispatcherServlet理解为特殊的控制器,该类的配置一般在web.xml文件中,常见配置信息如下:<!--web.xml--><?xml ...

2018-03-20 21:59:00 311

原创 Spring源码分析总结——Spring整合activeMQ

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 承接上文activeMQ的使用,下面来进行源码分析。JmsTemplate在配置文件中我们定义了JmsTemplate,先来看看JmsTemplate的类层次结构: 虽然出现了常见的InitializingBean接口,但是该接口实际上只是一个验证的功能。 下面来看看实际的方法调用:public void s...

2018-03-15 15:43:11 200

原创 activeMQ安装与使用,以及与Spring整合

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献ActiveMQ DemoJMS作为JavaEE的规范之一,它的实现产品ActiveMQ一直占有极高的市场份额,下面通过一个小Demo来展示ActiveMQ的用法: 首先需要下载ActiveMQ,然后进入bin目录,选择32位系统或者64位系统下的activemq.bat进行运行,然后将activeMQ目录下的lib中的jar...

2018-03-15 11:16:28 140

原创 Spring源码分析总结——HttpInvoker

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 HttpInvoker因为RMI使用标准的Java标准的对象私有化,很难穿越防火墙,但是Hessian/Burlap因为是基于HTTP的服务却能很好的穿越防火墙。 在这种情况下,Spring的HttpInvoker应运而生,基于HTTP的远程调用,并且使用Java序列化机制,现在给出小Demo: 首先其代码结构如下 ...

2018-03-14 21:30:33 187

原创 Spring源码与分析总结——RMI整合

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 RMI的实际作用,是通过暴露对应方法的URL,从而实现高解耦。 RMI服务的流程是通过服务的发布和服务的调用组成,小Demo如下:其工程架构如下 其对应文件代码如下/*HelloRMIService*/package RMIService.Impl;public class HelloRMIService i...

2018-03-14 18:00:46 552

原创 SpringMVC源码分析总结

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 SpringMVC是基于Servlet功能实现的,通过带有Servlet接口的DispatcherServlet来封装核心功能,控制器则由实现了Controller接口的类,SpringMVC解决的痛点有三个: (1)将Web页面的请求传给服务器 (2)根据不同的请求处理不同的逻辑页面 (3)返回处理结果数据并跳转页面 Sp...

2018-03-14 00:14:35 20567 6

原创 Spring源码分析总结——Spring中的声明式事务

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 Spring中的声明式事务由下面的配置文件进行管理:<tx:annotation-drien trasaction-manager="transactionManager"/><bean id="transactionManager" class="org.Springframework.jdbc.da...

2018-03-12 20:33:31 191

原创 Spring源码分析总结——Mybatis的整合

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献Mybatis与Spring整合和之前分析的步骤相同,我们先从工厂方法开始分析,对于Mybatis整合的工厂类就是org.mybatis.Spring.SqlSessionFactoryBean 其中有两个值得一提的接口,就是 InitializingBean接口:实现此接口的bean会在初始化时调用器afterProp...

2018-03-11 00:43:13 373

原创 Spring源码分析——Spring中的JDBC

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献JDBC模块UPDATE 方法一public int update(String sql, Object[] args, int[] argTypes) throws DataAccessException { return this.update(sql, this.newArgTypePrepare...

2018-03-10 16:59:17 672

原创 Spring源码分析总结——AOP

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献AOP的实现原码开启AOP需要在配置文件中声明<aop:aspectj-autoproxy>,针对声明我们进入AspectJAutoproxyBeanDefinitionParser类 由于所有的解析器都实现了BeanDefinitionParser接口,所以其入口都为Parse方法,AspeJAutoProxyB...

2018-03-10 15:16:46 224

原创 Spring源码分析总结——容器的功能扩展

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献BeanFactoryPostProcessor注册PostProcessorRegistrationDelegate类 的 invokeBeanFactoryPostProcessors方法 ——实际上就是调用了我们已经写好的BeanFactoryPostProcessor后处理器。只不过它首先将beanfactory按照...

2018-03-09 21:05:48 277

原创 Iterator与Iterable接口

Java为了方便编程,预定义了一些特定功能的接口,本文旨在保存和说明这些接口的功能和作用,也会尽量配合源码进行说明,这个会分成多篇文章进行说明,希望大家能够从中获得自己想要的知识。 本文中涉及到的接口:Iterator<E>Iterable<E>一、Iterator<E>接口 1、简介:Iterator接口的主要目的是让我们自定义的类具有循环的...

2018-03-07 16:01:16 271

原创 Java数组中的实用API(附带源码分析)

这一小节比较简单,就是一些简单的数组API的调用。复制数组我们需要先知道将会用到的两个方法:public static void fill(int[] a, int val) { for (int i = 0, len = a.length; i < len; i++) a[i] = val; }上面的代码是JavaSE...

2018-03-07 16:00:12 5221

原创 Java数组与泛型

通常来说,泛型总是和数组无缘,比如下面这种用法:Peel<Banana>[] peels = new Peel<Banana>[10];上面的代码将无法通过编译,因为我们没法创建一个泛型数组。其原因为:由于类型擦除的原因,泛型参数所拥有的类型信息并不确定,但是数组总是要求持有确切的类型,以保证类型安全,但是我们可以参数化数组本身的类型:import ja...

2018-03-07 15:59:14 1125

原创 Java数组

总的来说这篇文章比较简单。数组到底和其他的容器有什么不同1.数组是一个线性序列,这使得数组的访问非常的快速,当然数组的灵活性也比不上ArrayList但是实现ArrayList这样的弹性的开销非常的大,所以其速度远远比不上数组。 2.容器使用的泛型导致容器很多时候必须面临运行时检查,但是数组对于类型的检查却总是在编译期。 下面用一段代码来展示一下两者的区别与联系:impor...

2018-03-07 15:58:48 148

原创 Java中的潜在类型机制

感觉这一周一直在疯狂写博文,效果还是可以,只不过知识来的快忘得也快,好事要多复习才行。 先一句话介绍一下潜在类型机制到底是什么:潜在类型机制是一种代码组织和服用机制,简单的解释一下就是:只要多个类有同样的方法,那么就可以在使用这个方法时不关注类型。但准确的来说Java中并没有潜在类型机制,下面直接上代码:import typeinfo.pets.*;import static net...

2018-03-07 15:57:59 566

原创 Java中的“混型”

在开始阅读之前我先解释一下混型这个单词的具体含义:混合多个类的能力以产生一个可以表示混型中所有类型的类与接口的混型直接看下面的代码:import java.util.*;interface TimeStamped { long getStamp();}class TimeStampedImp implements TimeStamped{ priv...

2018-03-07 15:56:43 869 1

原创 泛型转换时的异常

因为不管是在编译期还是在运行期,想要用catch捕获异常都必须要知道一异常的确切类型,所以泛型中异常的使用是非常受限制的,当然泛型类不能继承Throwable。但是throws子句是可以用到泛型参数的,下面直接上代码:import java.util.*;interface Processor<T, E extends Exception>{ void proce...

2018-03-07 15:56:18 1007

空空如也

空空如也

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

TA关注的人

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