Spring
Clement-Xu
经验总结。
展开
-
IoC/DI,控制反转和依赖注入
控制反转(IoC:Inversion of Control):应用本身不负责依赖对象的创建与维护,而是由外部容器负责(IOC容器)。就是说控制权由应用转移到外部容器。控制权的转移就是所谓的反转。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)(流行)和依赖查找(Dependency Lookup)(不流行)。依赖注入(DI:Dependen原创 2015-08-10 10:31:26 · 1465 阅读 · 0 评论 -
spring boot log4j2配置(使用log4j2.yml文件)
在spring boot中,配置log4j2的几个简单步骤(使用yml文件):原创 2016-05-25 15:42:03 · 32060 阅读 · 14 评论 -
使用spring cacheManager配置Guava Cache和Redis Cache
简单两步,利用spring的cacheManager配置Guava Cache,同时还可以配置以redis实现的cache。使用时通过配置自由切换不同的cache实现。原创 2016-04-26 14:55:24 · 22948 阅读 · 11 评论 -
Spring异步任务处理,@Async的配置和使用
这个注解用于标注某个方法或某个类里面的所有方法都是需要异步处理的。被注解的方法被调用的时候,会在新线程中执行,而调用它的方法会在原来的线程中执行。这样可以避免阻塞、以及保证任务的实时性。适用于处理log、发送邮件、短信……等。原创 2015-08-10 19:18:00 · 61194 阅读 · 4 评论 -
SpringMVC + servlet3.0 文件上传的配置和实现
简单几步,实现SpringMVC+servlet3.0文件上传功能:第一步:配置web.xml文件中的servlet,添加multipart-config: myWeb org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc原创 2015-10-31 15:20:05 · 6564 阅读 · 0 评论 -
SpringMVC设置缺省的返回数据格式
如果程序需要引用如下的依赖包,那么SpringMVC返回数据的缺省格式是XML: com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.6.0 如果想改变缺省的格式为JSON,可以在sevlet.xml文件中做如下配置: json=ap原创 2015-09-22 19:58:50 · 994 阅读 · 0 评论 -
Spring的多事务配置(多个Transaction Manager)和使用方法
大多数项目只需要一个事务管理器。然而,有些项目为了提高效率、或者有多个完全不同又不相干的数据源,最好用多个事务管理器。机智的Spring的Transactional管理已经考虑到了这一点,首先分别定义多个transactional manager,并为qualifier属性指定不同的值;然后在需要使用@Transactional注解的时候指定TransactionManager的qualifier原创 2015-08-04 13:00:14 · 31735 阅读 · 3 评论 -
SpringMVC统一转换null值为空字符串的方法
在Java Web中,如果数据库中的值为null,而不做任何转换的话,传到前端页面中会显示为null,影响美观。本文介绍一种如何简单地利用SpringMVC的<mvc:annotation-driven>和<mvc:message-converters>配置统一转换null值为空字符串的方法。原创 2014-12-26 11:05:30 · 13721 阅读 · 3 评论 -
定义不被SpringMVC拦截的静态资源(html, js, css等文件),通用方法,不需要每个目录都设置
springMVC的标签是在spring3.0.4出现的,主要是用来定义对静态资源的访问。上网搜了一下跟这个配置相关的文章,大多推荐用下面这种。可是,用这种的话,如果有一个新目录,就得新增一条配置,比较麻烦。 下面这种是直接根据静态文件的后缀来配置的,比较通用,不用为每个子目录配置一个: (原创文章,转载请注明转自Clemen原创 2015-07-05 15:05:57 · 27376 阅读 · 3 评论 -
SpringMVC使用Map或MultiValueMap接收前端提交的Form Data或Query String
在SpringMVC中,可以使用Map或MultiValueMap接收前端提交的Form Data或Query String,省去定义一大堆不同的VO类。直接上代码:测试中需要依赖到的包: org.springframework spring-web 4.1.2.RELEASE org.springframework spring-webmv原创 2015-02-26 19:48:12 · 26478 阅读 · 4 评论 -
利用Spring-Data-Redis和Jedis操作Redis缓存
只需简单几步,就可以利用Spring-Data-Redis和Jedis操作Redis缓存。步骤如下:第一步:依赖包 org.springframework.data spring-data-redis 1.4.2.RELEASE redis.clients jedis 2.6.0 第二步:封装自己的Redis操作类/*原创 2015-03-04 19:10:10 · 10469 阅读 · 0 评论 -
使用方法拦截器MethodInterceptor和AOP统一处理log
对每个接口的请求记录log的方法有很多种,比如用filter、mvc interceptor、method interceptor等。如果需要记录请求消息的payload,前两种不适用。下面介绍第三种的实现方法。第一步:引入包依赖 org.aspectj aspectjweaver 1.8.6 com.fasterxml.ja原创 2015-06-12 19:16:06 · 31710 阅读 · 6 评论 -
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有。如果调用了有注解的addPerson()方法,会启动一个Transaction;如果调用updatePersonByPhoneNo(),因为它内部调用了有注解的addPerson(),如果你以为系统也会为它启动一个Transaction,那就错了,实际上是没有的。原创 2015-08-07 15:03:58 · 33908 阅读 · 16 评论 -
JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
介绍几种Java、Spring、Quartz定时器及其实现方法,以及cronExpression表达式定义。原创 2014-12-20 13:14:27 · 9195 阅读 · 0 评论 -
javaMail直接发送附件,无须生成临时文件
javaMail直接发送附件,无须生成临时文件原创 2017-12-07 17:24:06 · 5944 阅读 · 2 评论