- 浏览: 10244652 次
- 性别:
- 来自: 深圳
博客专栏
-
Oracle基础
浏览量:463159
-
springMVC介绍
浏览量:1776522
-
Mybatis简介
浏览量:1399256
-
Spring整合JMS
浏览量:395268
-
Ehcache简介
浏览量:680350
-
Cas简介
浏览量:531411
-
Spring Securi...
浏览量:1185892
-
Spring基础知识
浏览量:469733
-
Spring Aop介绍
浏览量:151669
-
JAXB简介
浏览量:68509
最新评论
-
18335864773:
推荐用pageoffice 生成 word。POI处理Offi ...
POI生成Web版Word文件 -
234390216:
skran 写道大兄弟文章写的不错,排版有点问题,代码长了既没 ...
Spring Boot(05)——SpringApplication介绍 -
skran:
大兄弟文章写的不错,排版有点问题,代码长了既没换行也没滚动条
Spring Boot(05)——SpringApplication介绍 -
Caelebs:
Ehcache(04)——设置缓存的大小 -
234390216:
thaIm 写道不知道RestTemplate 默认的链接数、 ...
Spring(30)——RestTemplate介绍
文章列表
Spring为异步执行任务和定时任务抽象了TaskExecutor接口和TaskScheduler接口,Spring之所以进行这样的抽象是为了在其内部统一任务调度的接口。TaskExecutor和JDK自带的Executor有点类似,只定义了一个execute(),用来执行一个任务,至于对应的任务怎么调度的,则由具体的实现类来实现,比如可以使用一个新的线程,或者使用一个线程池来调度。而实际上TaskExecutor接口也是继承了JDK的Executor接口的。
常见的TaskExecutor实现类
SimpleAsyncTaskExecutor 每次调度的时候都会启用一个新的线程执行任 ...
通过程序定义DispatcherServlet
以往我们在使用SpringMVC的时候都需要在web.xml中定义一个DispatcherServlet。基于Servlet3编程时我们也可以通过程序来注册DispatcherServlet,Servlet3的ServletContainerInitializer允许我们在容器启动的时候通过程序注册一些Servlet对象,Spring提供了一个实现,叫SpringServletContainerInitializer,同时对外开放了一个WebApplicationInitializer接口,如果需要通过程序来注册DispatcherServle ...
SpringMVC之ResponseStatus
ResponseStatus是由SpringMVC提供的一个注解,可以标注在异常处理方法上,也可以标注在异常类上,用来指定在SpringMVC处理请求的过程中抛出了指定的异常时将响应给客户端的状态码和错误信息。比如我们希望在抛出了IllegalArgumentException时响应给客户端的状态码是502,错误信息是Hello Error,我们就可以像如下这样,在异常处理方法上加上@ResponseStatus注解,同时指定错误码和错误信息,此时的ResponseStatus注解将在ServletInvocableHandlerMethod ...
SpringMVC之ControllerAdvice
SpringMVC从3.2版本开始提供了一个org.springframework.web.bind.annotation.ControllerAdvice注解,使用它标注的Class在启用了注解的支持时,在进行Class扫描时能够自动扫描到它,因为它上面使用了org.springframework.stereotype.Co ...
SpringMVC异常处理之ResponseEntityExceptionHandler
ResponseEntityExceptionHandler中包装了各种SpringMVC在处理请求时可能抛出的异常的处理,处理结果都是封装成一个ResponseEntity对象。通过ResponseEntity我们可以指定需要响应的状态码、header和body等信息,响应的body会被HttpMessageConverter处理,所以如果你响应的body是一个对象,而你的HttpMessageConverter列表中有一个是可以把对象转换为JSON的HttpMessageConverter,那么客户 ...
监听器
在进行marshal和unmarshal的时候JAXB为我们提供了对应的监听器,允许我们在marshal和unmarshal的过程中对当前对象做一些操作或者记录一些日志等。
marshal监听器
marshal过程中的监听器是对应的是Marshaller.Listener抽象类,其定义如下:
public static abstract class Listener {
public void beforeMarshal(Object source) {
}
public void afterMarshal(O ...
XML与Map相互转化
Map转XML
方法一
假设我们需要生成如下这样一段XML代码,condition元素下是若干个包含一个文本节点的元素,这样的元素个数不定。如果需要把它们定义为一个Java类,很明显应该定义为Map结构比较合适。
<request>
<condition>
<key_0>value_0</key_0>
<key_1>value_1</key_1>
<key_2>value_2</key_2>
...
JAXB动态指定生成的XML元素名称
通常我们在使用JAXB生成XML时,都是通过@XmlRootElement或@XmlElement事先指定对应的类型的对象在生成XML时生成的元素的名称。比如下面这样。
@XmlRootElement(name="person")
@XmlType(propOrder = { "id", "name", "age", "address" })
public class Person {
private Integer id;
...
JAXB生成XML时指定以子类的结构生成XML
假设现在有这样一项任务,要求你写两个关于获取User和Dept的接口出来,它们对外提供的数据是XML格式,分别对应如下格式。
<response>
<errorCode>0</errorCode>
<errorMessage>成功</errorMessage>
<data>
<dept>
<id>100</id>
<name&g ...
处理动态元素或属性
动态元素
假设现在有一项解析XML的需求,该XML的大体结构是固定的,如下这样:
<response>
<errorCode></errorCode>
<errorMessage></errorMessage>
<data>
</data>
</response>
但是data节点下包含的子节点的内容是不固定的,比如它可能是这样:
<response>
<errorC ...
JAXBContext介绍及性能优化
摘要 本文主要介绍基于package创建JAXBContext,以及阐述JAXBContext存在的性能问题及其优化。
JAXBContext介绍
JAXBContext是我们在使用JAXB时的入口类,我们需要通过它的实例来建立XML和Java类之间的映射关系,需要通过它来创建用于转换Java对象到XML的Marshaller或是创建用于转换XML到Java对象的Unmarshaller。JAXBContext的实例需要通过JAXBContext.newInstance(..)方法产生,JAXBContext中定义了重载的5个newInstance ...
JAXB核心注解介绍
摘要 本文主要通过理论加实践的方式介绍JAXB非常具有代表性的注解。
XmlRootElement
XmlRootElement用于标注在根节点对应的Java类上。比如上一篇介绍的Person类对应的根节点,我们就在Person类上加上了@XmlRootElement。
@XmlRootElement
public class Person {
//...
}
根节点的名称默认会取类名称的首字母小写。如果默认名称不能满足你的需要,可以通过XmlRootElement的name属性指定根节点的名称。比如下面就是需要生成的根节点名称为p ...
RequestContextUtils类
RequestContextUtils类是Spring提供的用于从HttpServletRequest上下文中获取特殊对象的工具类。该工具类虽然是属于Spring的一部分,但是如果在应用中我们有需要直接获取相关信息的需求,我们也可以直接使用。
从request中获取WebApplicationContext。
RequestContextUtils.getWebApplicationContext(request);
从request中获取LocaleResolver或Locale。
RequestContextUtils.get ...
theme选择
一组主题通常是一组CSS和图片的组合,比如网址导航网站常见的以颜色区分的主题。SpringMVC提供了对主题的支持,由org.springframework.ui.context.Theme表示。Theme由ThemeResource来根据theme名称来解析出来,它的定义如下。
public interface ThemeSource {
Theme getTheme(String themeName);
}
Spring提供的实现是ResourceBundleThemeSource,它是基于java.util.ResourceBundle实现的, ...
RedirectAttributes传递参数到重定向后的页面
Servlet容器在页面跳转时有两种方式,forward和redirect的,其中forward时应用的是在服务端的跳转,应用的是同一个request。而redirect是服务端通过响应301和对应的新地址告诉浏览器让浏览器重新请求新的地址。第一次请求和第二次请求使用的不是同一个request的。所以这种情况下,不能直接通过request传递参数到新的页面。SpringMVC默认使用的是forward请求,如果需要使用redirect跳转新页面,可以使用redirect:前缀。forward请求时添加到Model中的参数都可以被传 ...