随笔分类 - 后台框架
摘要:出处: redis主从复制常见的一些坑 读写分离的问题 1.数据复制的延迟 读写分离时,master会异步的将数据复制到slave,如果这是slave发生阻塞,则会延迟master数据的写命令,造成数据不一致的情况 解决方法:可以对slave的偏移量值进行监控,如果发现某台slave的偏移量有问题,
阅读全文
摘要:出处: 什么是 redis 的雪崩、穿透和击穿? 关于Redis雪崩,穿透,击穿的问题,第一次接触名字有点陌生,听上去还比较相似,难以理解,过去做的很多项目中也都是用过Redis,但是第一次听到这几个关于Redis的坑还是一脸懵逼,直到这些坑真正显灵的时候才彻底意识到搞明白。 第一次线上遇到 Red
阅读全文
摘要:出处: spring事务 1.背景 Spring提供了编程式事务和声明式事务,但由于编程性事务的侵入性,开发中普遍会使用Spring的声明式事务,下文中所说的Spring事务也都是指声明式事务。 Spring声明式事务底层是建立在AOP的基础上的,其本质就是对方法前后进行拦截,然后在目标方法之前创建
阅读全文
摘要:出处: Spring中@Async注解实现异步 异步执行一般用来发送一些消息数据,数据一致性不要求太高的场景,对于spring来说,它把这个异步进行了封装,使用一个注解就可以实现。 Spring中通过在方法上设置@Async注解,可使得方法被异步调用。也就是说该方法会在调用时立即返回,而这个方法的实
阅读全文
摘要:出处:@Transactional实现原理 Transactional是spring中定义的事务注解,在方法或类上加该注解开启事务。主要是通过反射获取bean的注解信息,利用AOP对编程式事务进行封装实现。AOP对事务的封装可以看我的这篇文章的介绍。 我们先写个demo,感受它的加载过程。 spri
阅读全文
摘要:出处: mybatis一级缓存二级缓存 一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因
阅读全文
摘要:出处: 这么写参数校验(validator)就不会被劝退了~ 很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者 不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验. 为什么要用vali
阅读全文
摘要:出处: SpringMVC参数绑定,这篇就够了! [Spring MVC] - SpringMVC的各种参数绑定方式 SpringMVC参数绑定,简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了 下面通过5个常用的
阅读全文
摘要:出处: https://www.cnblogs.com/hunrry/p/9183209.html https://www.cnblogs.com/protected/p/6652188.html 这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚。后来终于找到了
阅读全文
摘要:@Component与@Bean的区别 @Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。 @Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。 两者的目的是
阅读全文
摘要:介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间件之一。 RabbitMQ的官方 概念: Brocker:消息队列服务器实体
阅读全文
摘要:1,Propagation.REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。详细解释在代码下方。 实例 员工service @Service public class EmployeeServiceImpl implements EmployeeServ
阅读全文
摘要:出处: SpringMVC实现全局异常处理器 我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中,不管是dao层、service层还是controller层,都有可能
阅读全文
摘要:问题: 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 如何理解“依赖”呢,在Spring中有: 构造器循环依赖 field属性注入循环依赖 直接上代码: 构造器循环依赖 @Service public cla
阅读全文
摘要:结论: 不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略,因此可以说Spring容器中的Bean本身不具备线程安全的特性,但是具体还是要结合具体scope的Bean去研究。 Spring 的 bean 作用域(scope)类型 1、singleton
阅读全文
摘要:java在jdk1.5中引入了注解,spring框架也正好把java注解发挥得淋漓尽致。 一、创建自定义注解 requestUrl 为我们自定义的一个参数 二、解析注解 此处使用了spring的AOP(面向切面编程)特性 @Before 前置通知:在某连接点之前执行的通知,但这个通知不能阻止连接点之
阅读全文
摘要:出处:关于 Spring AOP (AspectJ) 你该知晓的一切
阅读全文
摘要:本文摘自 博文--《Spring设计思想》AOP设计基本原理 0、前言 Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。 读完本文,你将了解
阅读全文
摘要:实例工程结构: 配置: pom.xml web.xml applicationContext.xml Job1Demo.java Job2Demo.java 部署到tomcat,启动如下:
阅读全文