
spring
你走开``
hello , my Friend and the world .
展开
-
ConcurrentHashmap使用注意事项
ConcurrentHashmap是jdk1.5之后引入的并发工具集合类,可以将其看作并发效率更高的map,用来替代Hashtable和synchronizedMap,但是ConcurrentHashmap只能保证自身数据在多线程的环境下不被破坏,而并不能保证业务逻辑的正确性。举个例子:资源池中经常需要将某个资源放到一个map中缓存起来,等到需要的时候再从map中获取,代码如下:code1:...转载 2018-10-22 15:09:23 · 1538 阅读 · 0 评论 -
ControllerAdvice的使用
controlleradvice类 1. 使用该注解 , 该注解标识的类会获取并修改controller中爆出的相应异常.package com.imooc.demo.exception;import org.springframework.http.HttpStatus;import org.springframework.validation.BindingResult;impo...原创 2018-07-24 12:03:10 · 1163 阅读 · 0 评论 -
SpringBoot 序列化器注解使用方法
Json解析工具Jackson@JsonIgnoreProperties此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。@JsonIgnore此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnorePrope...转载 2018-06-28 00:04:13 · 2874 阅读 · 0 评论 -
Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
一、单元测试的目的 简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作。以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现。 这里主要是使用MockMvc对我们的系统的Controller进行单元测试。 对数据库的操作使用事务实现回滚,及对数据库的增删改方法结束后将会还远数据库。...转载 2018-06-26 19:46:41 · 856 阅读 · 0 评论 -
@TransactionConfiguration过时与替代写法
在使用了Spring的项目中做单元测试时,以前的标准写法是这样的:但是在高版本的Spring框架中(Spring4.2以后),@TransactionConfiguration已经标注为过时的注解,查看官方文档会发现,替代的方式为:这里需要说明的是:(1)...转载 2018-06-26 17:49:54 · 5659 阅读 · 2 评论 -
Spring WebSocket教程(一)
学习背景很久以前就知道WebSocket,但那时不论是浏览器还是开发技术对它的支持都还很少。但是,Spring4突然发布,让我眼前一亮,Spring4直接支持WebSocket。对于Spring我还是很喜欢的,它让Java Web开发相当的有艺术感,这次支持的WebSocket又特别的和我的胃...转载 2018-06-30 15:57:02 · 689 阅读 · 0 评论 -
Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用
注释介绍redis与Spring Cache的整合请参看上章@Cacheable@Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@Cacheable 作用和配置方法 参数 解释 example value 缓存的名称,在 spring 配置文件中定义,必须指定至少一个 ...转载 2018-06-30 10:51:29 · 7673 阅读 · 1 评论 -
使用自定义HttpMessageConverter对返回内容进行加密
今天上午技术群里的一个人问” 如何在 Spring MVC 中统一对返回的 Json 进行加密?”。大部分人的第一反应是通过 Spring 拦截器(Interceptor)中的postHandler方法处理。实际这是行不通的,因为当程序运行到该方法,是在返回数据之后,渲染页面之前,所以这时候 Response 中的输出流已经关闭了,自然无法在对返回数据进行处理。其实这个问题用几行代码就可以搞...转载 2018-06-16 14:11:04 · 1010 阅读 · 0 评论 -
@ControllerAdvice,ResponseBodyAdvice 统一处理返回值/响应体
ResponseBodyAdvice是spring4.1的新特性,其作用是在响应体写出之前做一些处理;比如,修改返回值、加密等。我在项目中的用到@ControllerAdvice,ResponseBodyAdvice的目的,是为每个请求的返回json中修改一个属性值。ResponseBodyAdvice 接口源码:package org.spr...转载 2018-06-21 13:34:24 · 1010 阅读 · 0 评论 -
Spring IO Platform简介及示例
什么是Spring IO PlatformSpring IO Platform,简单的可以认为是一个依赖维护平台,该平台将相关依赖汇聚到一起,针对每个依赖,都提供了一个版本号;这些版本对应的依赖都是经过测试的,可以保证一起正常使用。为什么要使用Spring IO Platform主要是解决依赖版本冲突问题,例如在使用Spring的时候,经常会使用到第三方库,一般大家都是根据经验挑选一个版...转载 2018-06-13 10:44:39 · 200 阅读 · 0 评论 -
Spring 4 @PropertySource和@Value注解示例
前言译文链接:http://websystique.com/spring/spring-propertysource-value-annotations-example/本篇文章将展示如何通过@PropertySource 和 @Value注解从配置文件中读取属性值。同样,我们也会讨论Spring的Environment接口,还会看到使用XML配置和使用注解的对比。Spring的@Pr...转载 2018-06-12 17:13:43 · 298 阅读 · 0 评论 -
使用Callable和DeferredResult,提高服务性能。
官方文档中说DeferredResult和Callable都是为了异步生成返回值提供基本的支持。简单来说就是一个请求进来,如果你使用了DeferredResult或者Callable,在没有得到返回数据之前,DispatcherServlet和所有Filter就会退出Servlet容器线程,但响应保持打开状态,一旦返回数据有了,这个DispatcherServlet就会被再次调用并且处理,以异步产...原创 2018-07-24 17:54:24 · 1043 阅读 · 1 评论 -
Spring定义bean的三种方式和自动注入
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/sinat_34596644/article/details/53080026 ...转载 2018-09-16 21:31:36 · 319 阅读 · 0 评论 -
spring学习(一)
BeanFactory:该对象, 是spring IOC容器的根类与契约, 描述与规定了IOC容器的开发规范与职责, 比如 能够根据bean defination管理bean, 自动注入bean, 以及维护bean的生命周期方法等职能. ...原创 2018-09-16 22:43:08 · 185 阅读 · 0 评论 -
在Springboot中使用线程池ThreadPoolTaskExecutor
package com.markor.template.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.concurrent.T...原创 2018-10-22 14:31:23 · 8038 阅读 · 1 评论 -
在Springboot中使用线程池ThreadPoolTaskExecutor
ThreadPoolTaskExecutor是一个spring的线程池技术,它是使用jdk中的java.util.concurrent.ThreadPoolExecutor进行实现。配置@Beanpublic ThreadPoolTaskExecutor taskExecutor() { ThreadPoolTaskExecutor pool = new ThreadPoolT...转载 2018-10-22 14:29:41 · 2754 阅读 · 0 评论 -
spring线程池ThreadPoolTaskExecutor与阻塞队列BlockingQueue
转载于: https://www.cnblogs.com/lic309/p/4186880.html一: ThreadPoolTaskExecutor是一个spring的线程池技术,查看代码可以看到这样一个字段: private ThreadPoolExecutor threadPoolExecutor; 可以发现,spring的 ThreadPoolTaskEx...转载 2018-10-22 14:27:37 · 349 阅读 · 0 评论 -
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用了其他类(可能是更复杂的关联),所以当我们去使用这个类做事情时发现包空指针错误,这是因为我们这个类有可能已经初始化完成,但是引用的其他类不一定初始化完成,所以发生了空指针错误,解决方案如下...转载 2018-10-10 13:22:45 · 385 阅读 · 0 评论 -
Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
spring事件(application event)为Bean与Bean之间的消息通信添加了支持,当一个Bean处理完一个任务之后,希望另一个Bean知道并能做相应的处理,这时我们就需要另外一个Bean监听当前Bean所发送的事件。 spring的事件需要遵循以下流程: (1)自定义事件:继承ApplicationEvent (2)定义事件监听器:实现ApplicationListene...转载 2018-10-10 13:19:18 · 1035 阅读 · 0 评论 -
ApplicationContext探究
ApplicationContext探究ApplicationContext类结构树上图表示了ApplicationContext的依赖关系。BeanFactory是Spring容器依赖注入的基础。位于类结构树的顶端,接口中最重要的方法就是getBean(String)。得到特定名称的Bean对象。ListableBeanFactory是用来访问容器内bean的相...转载 2018-10-10 13:16:46 · 1235 阅读 · 0 评论 -
@JsonIgnoreProperties转换实体时忽略json中不存在的字段
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/Paranoia_ZK/article/details/72916835 开发时遇见这么一个情况,对接放发出的json格式不确定,这里的不确定是json中的字段不确定,以往都是采用gson进行实体和j...转载 2018-09-27 16:57:55 · 2096 阅读 · 0 评论 -
spring 3以及之后版本的异步方法
这里我们来看看spring 3.0 以及以后版本中支持的@Async (方法异步)其实在之前的程序中也没看到过有使用@Async 的,最近才接触到,想着如果使用异步缓存是不是响应速度会大幅提升那,就比如你去查询,发现缓存中没有数据,你要从数据库中获取数据,然后要把数据放到缓存中然后才能将数据展示到前台,其中将数据放到缓存的这个步骤占用了一部分时间,这样的话前台展示就比较慢了,所以如果保存到缓...转载 2018-09-14 15:56:26 · 711 阅读 · 0 评论 -
Jackson 高性能的JSON处理 ObjectMapper
http://blog.youkuaiyun.com/wangyang2698341/article/details/8223929 今天自行研究了下json ,感觉非常好用,经过测试比google的GSON快多了 同时Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换...转载 2018-09-18 23:54:21 · 771 阅读 · 0 评论 -
Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法
个人总结:1. BeanFactory , 是springIOC容器类的基类, 是容器类的契约与功能约束. 是存储bean的容器2. FactoryBean, 是创建bean的一个工厂.3. 在beanFactory中 ,有一个常量 &, 当通过名称时, 获取的是factorybean的getObject(). 当使用&+名称时, 获取的是beanFactorySprin...转载 2018-09-17 20:38:22 · 591 阅读 · 0 评论 -
Spring处理跨域请求.. e
一次正常的请求最近别人需要调用我们系统的某一个功能,对方希望提供一个api让其能够更新数据。由于该同学是客户端开发,于是有了类似以下代码。@RequestMapping(method = RequestMethod.POST, value = "/update.json", produces = MediaType.APPLICATION_JSON_VALUE)public @Respon...转载 2018-04-27 16:56:40 · 169 阅读 · 0 评论 -
可用来修改bean对象的BeanPostProcessor
11 可用来修改bean对象的BeanPostProcessor11.1 简介BeanPostProcessor是Spring中定义的一个接口,其与之前介绍的InitializingBean和DisposableBean接口类似,也是供Spring进行回调的。Spring将在初始化bean前后对BeanPostProcessor实现类进行回调,与Initializ...转载 2018-04-26 23:19:11 · 243 阅读 · 0 评论 -
常规容器下SpringBootServletInitializer如何实现web.xml作用解析
在之前的《使用jsp作为视图模板&常规部署》章节有过一个实践,需要启动类继承自SpringBootServletInitializer方可正常部署至常规tomcat下,其主要能够起到web.xml的作用。下面通过源码简单解析为何其能够替代web.xml。本章概要1、源码分析如何实现S...转载 2018-04-30 23:14:25 · 574 阅读 · 0 评论 -
java的动态代理机制详解
java的动态代理机制详解 在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制转载 2017-06-09 09:46:23 · 333 阅读 · 0 评论 -
SpringMVC中使用Interceptor拦截器
SpringMVCInterceptor拦截器HandlerInterceptorWebRequestInterceptor SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 一、定义In转载 2017-06-04 16:25:05 · 304 阅读 · 0 评论 -
spring的jsp库
//待续转载 2017-06-07 13:58:14 · 351 阅读 · 0 评论 -
spring_bean的作用域
.转载 2017-06-02 11:41:59 · 270 阅读 · 0 评论 -
深入Spring IOC源码之ResourceLoader
深入Spring IOC源码之ResourceLoader在《深入Spring IOC源码之Resource》中已经详细介绍了Spring中Resource的抽象,Resource接口有很多实现类,我们当然可以使用各自的构造函数创建符合需求的Resource实例,然而Spring提供了ResourceLoader接口用于实现不同的Resource加载策略,即将不同Resource实例的创建交给Re转载 2017-06-02 09:31:00 · 350 阅读 · 0 评论 -
spring同父接口下装配不同bean的解决方案
.转载 2017-06-01 08:27:39 · 315 阅读 · 0 评论 -
spring_环境与profile
.转载 2017-05-31 20:52:35 · 275 阅读 · 0 评论 -
springmvc的modelAttribute
@ModelAttribute使用详解 1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。(1)@ModelAttribute注释void返回值的方法 [java] view plain copy p转载 2017-05-19 17:17:08 · 300 阅读 · 0 评论 -
spring学习笔记(自动装配)
1.自动装配. 在java配置类中使用@ComponentScan注解进行开启注解扫描.默认扫描与配置同包或其子包下的注解 @configuration注解标记该类为注解类.如果没做其他配置,则按照默认配置,该配置类所在的包为基础包 也可以在xml配置<context:component-scan base-package>开启注解扫描 2. 3.原创 2017-05-31 15:00:08 · 344 阅读 · 0 评论 -
Spring 容器(Spring 的上下文)
最近在做项目时牵扯到有关父子上下文的概念。何为父子上下文呢?父上下文:使用listener监听器来加载配置文件,如下:<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>Spring 会创建一个WebApplicati转载 2017-05-31 13:49:09 · 791 阅读 · 0 评论 -
简述Spring容器与SpringMVC的容器的联系与区别
转载于 : http://blog.youkuaiyun.com/justloveyou_/article/details/74295728 摘要: 在spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期。但在一个项目中,Spring容器往往不止一个,最常见的场景就是在一个项目中引入Spring和SpringMVC这两个框架,其本质就是两个容器:Spring是根容器,S转载 2017-07-11 00:00:32 · 460 阅读 · 0 评论 -
Spring的作用域以及RequestContextListener作用
一、配置方式 在Spring2.0中除了以前的Singleton和Prototype外又加入了三个新的web作用域,分别为request、session和global session,如果你想让你的容器里的某个bean拥有其中某种新的web作用域,除了在bean级上配置相应的scope属性,还必须在容器级做一个额外的初始化配置。 Java代码 <web-app> <li转载 2017-07-05 14:30:31 · 677 阅读 · 0 评论 -
Spring 事务管理机制概述
目录(?)[+]一 Spring 事务概述二 Spring 事务管理 API三 Spring 编程式事务管理四 Spring 声明式事务管理五 更多引用 摘要: 一般地,用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些数据库原子访问操作应该绑定成一个事务来执行。然而,在使用传统的事务编程策略时,程序代码必然和具体的事务操作代码耦合转载 2017-06-27 09:22:42 · 309 阅读 · 0 评论