Spring
文章平均质量分 91
起一个好听的名字
学无止境,学海无涯,乐在其中
展开
-
缓存与数据库一致性问题
业务场景 抓拍到的人脸图片需要推送到第三方系统,但不是所有的网点都需要推送图片信息。也就是要做到不同的网点可以根据配置来决定是否推送,前端页面需要有推送配置功能,手动配置后,把配置的推送信息保存到数据库。抓拍到人脸照片后,读取配置的推送信息,再判断是否需要推送图片。由于网点多抓拍的人脸数据量较大,推送信息配置后不常修改,也就是读多写少,所以考虑把配置的推送信息保存数据库后再保存一份至redis中。实现方案 缓存和数据库的数据一致性有多种实现方式,各实现方式可以自行了解,以...原创 2021-01-05 16:45:46 · 424 阅读 · 1 评论 -
Spring集成Quartz定时任务框架介绍和Cron表达式详解
原文:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html一、增加所依赖的JAR包1. 增加spring的Maven依赖[html] view plain copy dependency> groupId>org.springframew转载 2017-08-03 16:24:39 · 254 阅读 · 0 评论 -
Spring线程池配置
原文:http://blog.csdn.net/shimiso/article/details/8964527spring配置[html] view plain copy bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTas转载 2017-08-03 16:25:59 · 497 阅读 · 0 评论 -
MockMVC
随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的。从spring 3.2开始Spring了Spring Web测试框架Spring MVC测试框架提供了对服务器端和客户端(基于RestTemplate的客户端)提供了支持。 对于服务器端:在Spring 3.2之前,我们测试时一般都是直接new控制器,注入依赖,然后判转载 2017-08-03 09:40:03 · 442 阅读 · 0 评论 -
Java Spring mvc 操作 Redis 及 Redis 集群
Redis 是什么,能做什么Redis 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel 提供高可用,通过 Redis Cluster 提供自动分区。(摘自Red转载 2017-04-24 11:48:35 · 280 阅读 · 0 评论 -
Spring事务管理-使用注解配置事务
一、概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, hibernate, JPA(Java Persistence API和JDO(Java Data O转载 2017-03-24 16:29:51 · 276 阅读 · 0 评论 -
AOP之基于AspectJ注解总结与案例
spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明。导入需要的包:aspectjweaver.jar、aopalliance-1.0.jar本文工程免费下载一、基本使用方法 1.1、启用对@AspectJ的支持 Spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置:[jav转载 2017-03-24 16:29:03 · 299 阅读 · 0 评论 -
Redis整合Spring结合使用缓存实例
摘要:本文介绍了如何在spring中配置Redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方法前面。一、Redis介绍什么是Redis? redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有转载 2017-03-24 16:25:42 · 276 阅读 · 0 评论 -
Spring4整合Hibernate5
通过hibernate的学习,我们知道,hibernate主要在hibernate.cfg.xml配置文件中 接下来我们看一下hibernate的一个配置文件hibernate配置文件hibernate.cfg.xml<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configura转载 2016-10-21 10:56:32 · 310 阅读 · 0 评论 -
Spring声明式事务配置管理方法
环境配置项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可。添加方法:点击项目右键->Build Path->Add librarys: 打开Add Libraries对话框,然后选定 MyEclipse Libr转载 2016-10-26 15:46:32 · 233 阅读 · 0 评论 -
Java RMI实现以及Spring封装RMI实现小结
最近应用到了Java RMI技术,所以总结一下RMI的使用,另外EJB的实现也是以Java RMI为基础核心的。RMI远程方法调用,可以跨机器通过网络调用,不过Java RMI只支持两边都是Java程序,如果要实现完全两边异构,那么就要用到传说中的Web Service了。为了看好效果,都要建立两个或两个以上工程,当然,如果你有两个机器并通过局域网相连更好,如果能同有互联网的条件就更好了,以下是同转载 2017-07-19 17:50:37 · 268 阅读 · 0 评论 -
spring来进行正式、测试环境无缝式切换
请问Java程序员在部署正式、测试数据时最麻烦的是什么??当然是部署正式、测试环境时需要修改配置文件。万一一个闪失,就等着背黑锅吧。尽管程序员一直都是背黑锅的主,财务对不上账了怪我们软件不行,门店销售额达不到目标怪我们服务器卡。所以,我们如何杜绝这个闪失。那在Spring3.0之后的版本,咱们就有招了。我们可以使用 spring.profiles.active 来区分。那做转载 2017-10-27 13:05:57 · 828 阅读 · 0 评论 -
Spring整合JMS(一)——基于ActiveMQ实现
1.1 JMS简介 JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。对于消息的传递有两种类型,一种是点对点的,即一个生产者和转载 2017-10-19 18:10:05 · 181 阅读 · 0 评论 -
spring 缓存中@Cacheable、@CachePut和@CacheEvict介绍 以及#p0的含义
package com.roncoo.example.cache.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cache.annotation.CacheConfig;import org.springframework.cache.annota...转载 2018-08-08 17:12:09 · 5711 阅读 · 1 评论 -
最好理解的: spring ioc原理讲解,强烈推荐!
IOC(DI):java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成。通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关系业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC、D...转载 2018-08-07 10:26:00 · 120 阅读 · 0 评论 -
@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
零、前言对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚。如此一来,我们的 Controller 层就不得不进行 try-catch Service 层的异常,否则会返回一些不友好的错误信息到客户端。但是,Controller 层每个方法体都写一些模板化...转载 2018-08-06 16:17:04 · 228 阅读 · 0 评论 -
spring aop类内部调用不拦截原因及解决方案
spring对应java web开发的同学来说,都不陌生,其中事务@Transactional在service层更是常常使用。1.aop类内部调用不拦截原因细心的同学也许早就发现当service中的某个没标注@Transactional的方法调用另一个标注了@Transactional的方法时,居然没开启事务。例如 @Service public class Us...转载 2018-08-10 15:47:30 · 629 阅读 · 0 评论 -
Spring事务管理(详解+实例)
写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大...转载 2018-08-10 15:07:00 · 262 阅读 · 0 评论 -
Spring集成RabbitMQ并实现延迟队列
一、说明在实际业务场景中可能会用到延时消息发送,例如异步回调失败时的重发机制。 RabbitMQ本身不具有延时消息队列的功能,但是可以通过rabbitmq-delayed-message-exchange来实现(也可以通过TTL(Time To Live)、DLX(Dead Letter Exchanges)特性实现,我们主要讲解通过延迟插件来实现的方法)。利用Ra...转载 2018-06-28 15:56:16 · 680 阅读 · 0 评论 -
Spring整合JMS(四)——事务管理
Spring提供了一个JmsTransactionManager用于对JMS ConnectionFactory做事务管理。这将允许JMS应用利用Spring的事务管理特性。JmsTransactionManager在执行本地资源事务管理时将从指定的ConnectionFactory绑定一个ConnectionFactory/Session这样的配对到线程中。JmsTemplate会自动检测这样的转载 2017-10-19 18:13:18 · 195 阅读 · 0 评论 -
Spring整合JMS(三)——MessageConverter介绍
1.4 消息转换器MessageConverterMessageConverter的作用主要有两方面,一方面它可以把我们的非标准化Message对象转换成我们的目标Message对象,这主要是用在发送消息的时候;另一方面它又可以把我们的Message对象转换成对应的目标对象,这主要是用在接收消息的时候。下面我们就拿发送一个对象消息来举例,假设我们有这样一个需求:我们平台有一个发送邮转载 2017-10-19 18:12:28 · 197 阅读 · 0 评论 -
Spring整合JMS(二)——三种消息监听器
1.3 消息监听器MessageListener 在Spring整合JMS的应用中我们在定义消息监听器的时候一共可以定义三种类型的消息监听器,分别是MessageListener、SessionAwareMessageListener和MessageListenerAdapter。下面就分别来介绍一下这几种类型的区别。1.3.1 MessageListenerMe转载 2017-10-19 18:11:32 · 188 阅读 · 0 评论 -
Spring常用注解
使用注解来构造IoC容器用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册。如:在base-package指明一个包1 context:component-scan base-package="cn.gacl.java"/>表明cn.gacl.java包及其子包中,如果某个类的头上带有特定的注解【@Component转载 2016-10-26 10:18:44 · 187 阅读 · 0 评论 -
Spring注解详解
概述注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。注释和 Java 代码位于一个文件中,转载 2016-10-26 10:13:12 · 203 阅读 · 0 评论 -
springframework(八)AOP的相关术语以及实现方式介绍
先介绍下使用spring的aop的相关名词以及实现方式。1、Aop的相关观念和术语介绍(1)、Cross-cutting-concern 类似日志、如安全、检查、事物等系统层面的服务,在一些应用程序之中常被见到安插至各个对象的处理流程之中,这些动作在AOP的属于中称为Cross-cutting concerns(2)、Aspect将散落与各个业务逻辑之中的cross-cutti转载 2016-03-23 12:55:48 · 230 阅读 · 0 评论 -
springframe(七)AOP之动态代理
AOP的原理就是动态代理,上一片介绍了什么是代理,展示了静态代理,很多时候静态代理还是不太灵活的,我们需要动态代理来完成我们的业务逻辑,这里展示下动态代理的创建,并通过代码的注释告诉你,为啥“java的事务是基于代理的” 1、创建我们的接口,还是上次的IHello接口 [java] view plain copy package com.itcast.aop转载 2016-03-23 12:54:44 · 235 阅读 · 0 评论 -
springframework(六)AOP之静态代理
spring的AOP是基于代理的。java的事务控制是基于代理的。这两句话熟悉吧,一些老鸟就喜欢用这些词汇让我们犯晕,让我们感到他们很专业。这里我们将打破这个神话,本篇先介绍基于代理的AOP。这里我们先展示下什么叫做代理,先从静态代理开始。一个静态代理的例子。1、定义一个接口[java] view plain copypackage com.itcast转载 2016-03-23 12:53:26 · 204 阅读 · 0 评论 -
springframework(五)资源国际化
这里说的国际化不是简单的web层面的,也有纯后台层面的。因为spring不只是处理web的,也可以处理纯java的后台程序。这里也就是说aop、ioc、DI的使用是在整个java层面的而不是只局限于web项目中。 1、资源取得资源的取得主要应用于国际化处理。在写程序的时候可以以不同的方式获取资源例如: //直接从classpath中将文件信息取出,具体化称为一个资源转载 2016-03-23 12:52:34 · 244 阅读 · 0 评论 -
springframework(四)Bean的依赖设置与集合对象的处理
Bean的依赖设置 1)、type2IOC 最常用的通过setter方法来设置bean之间的依赖关系 2)、type3IOC 通过构造函数来设置bean之间的依赖关系 Autoware:自动绑定,通过设定bean的这个属性来在bean定义文件中找相应的bean来注入到bean中,他的值可以为 byName,byType,constructor,autodetect转载 2016-03-23 12:51:33 · 358 阅读 · 0 评论 -
springframework(三)Bean的基本管理
Bean的基本管理 1、BeanFactory、ApplicationContext的关系ApplicationContext是居于BeanFactory而建立的,也具有读取Bean定义文件,维护Bean之间依赖关系等功能,除此之外,ApplicationContext还提供了一个应用程序所需的更完整的框架功能2、BeanFactory所拥有的方法BeanFactory负责读取Be转载 2016-03-23 12:50:25 · 297 阅读 · 0 评论 -
springframework(二)第一个spring程序
建立一个简单的javabean实现属性定制的注入,并引入appliationContext.xml文件(这里用bean-config.xml)作为配置文件的概念。 在这里我们使用xmlschema来进行spring的配置文件的描述规则: 开始我们的第一个java程序:[java] view plain copypackage com.it转载 2016-03-23 12:49:06 · 254 阅读 · 0 评论 -
Springframework(一)spring基础概念介绍
1、 属性介绍l 轻量级 相对于一些重量级容器(如EJB容器)来说的,spring的核心包文件再文件容量上只有不到1M的大小,使用spring的核心包所需要的资源也是很少的,您甚至可以在小型设备中使用springl 非侵入性 就是让应用程序感受不到框架的存在,简单说来就是使用spring,应用程序中的某些组件可以直接拿到另一个应用程序或者框架中使用。转载 2016-03-23 12:48:03 · 698 阅读 · 0 评论 -
获取spring的ApplicationContext几种方式
Java类获取spring容器的bean常用的5种获取spring 中bean的方式总结:方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = newFileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("beanId")转载 2016-03-23 10:13:09 · 427 阅读 · 0 评论 -
谈谈对Spring IOC的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人转载 2016-01-18 21:21:01 · 266 阅读 · 0 评论 -
springframework(九)AOP的advices,中规中矩的使用方式
Spring的AdvicesAdvices实现了Aspect的真正逻辑。由于织入至Targets的实际不同,spring提供了不同的Advices,像Before Advice,After Advice,Around Advice,Throw Advice。(1)、Before Advice通过实现MethodBeforeAdvice来定义(2)、After Advice通过实转载 2016-03-23 12:56:54 · 518 阅读 · 0 评论 -
springframework(十)AOP之Pointcut、Advisor
上篇的所定义的Advice都是直接织入至代理接口执行前后的,或者在执行方法过程中出现异常的时候织入。事实上还有更加细致的织入时机。Pointcut定义了感兴趣的Jointpoint(Advice的应用时机)。在spring中,使用PointcutAdvisor提供的Pointcut实例,具体结合Advice,Spring内建的Pointcut都有对应的PointcutAdvisor。官方文转载 2016-03-23 12:58:36 · 331 阅读 · 0 评论 -
dispatcherservlet详解
3.1、DispatcherServlet作用DispatcherServlet是前端控制器设计模式的实现,提供spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。 DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:1、文件上转载 2016-07-21 18:56:07 · 365 阅读 · 0 评论 -
SpringMVC容器初始化篇----ContextLoaderListener
学习学习容器初始化,若有不对的地方,请指出更正,大家共同学习学习。此篇幅主要围绕着 ContextLoaderListener加载容器,理解其中的原理。ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,转载 2016-07-05 16:07:26 · 505 阅读 · 1 评论 -
webApplicationContext 与servletContext详解
1.WebApplicationContext的研究 ApplicationContext是spring的核心,Context通常解释为上下文环境,用“容器”来表述更容易理解一些,ApplicationContext则是“应用的容器了”了。 spring把bean放在这个容器中,在需要的时候,用getBean()方法取出,在web应用中,会用到webApplicationCo转载 2016-07-05 15:29:51 · 837 阅读 · 0 评论 -
WebApplication初始化
系统启动的时候,系统自动加载org.springframework.web.context.ContextLoaderListener这个类,然后由它负责创建Spring容器即WebApplicationContext,系统会把bean放在其中,一般情况下,创建完成后,负责IOC操作,你不需要获取它,如果非要在程序中调用它,可以通过WebApplicationContext ctx = Web转载 2016-07-05 13:42:37 · 360 阅读 · 0 评论