Spring
文章平均质量分 95
javartisan
年轻人,静下心来做事吧!
展开
-
Spring事务异常UnexpectedRollbackException出现原因以及解决方法
异常信息:org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatform原创 2020-06-08 15:48:04 · 5398 阅读 · 0 评论 -
Spring是否支持对静态方法进行Aop增强
1:JDK代理2:CGLIB代理原创 2020-04-22 16:06:34 · 5614 阅读 · 0 评论 -
Spring @Cacheable有关缓存失效时间策略的默认实现以及扩展
之前对Spring缓存的理解是每次设置缓存之后,重复请求会刷新缓存时间,但是问题排查阅读源码发现,跟自己的理解大相径庭。所有的你以为都仅仅是你以为!!!!背景目前项目使用的spring缓存,主要是CacheManager、Cache以及@Cacheable注解,Spring现有的缓存注解无法单独设置每一个注解的失效时间,Spring官方给的解释:Spring Cache是一个抽象而不是一个...原创 2020-01-10 21:12:04 · 5169 阅读 · 0 评论 -
Spring Aop之JDK方式创建代理类的源码思路
import org.aopalliance.intercept.MethodInvocation;import org.aopalliance.intercept.MethodInterceptor;public class CustomMethodAdvice implements MethodInterceptor { @Override public Object...原创 2019-10-26 19:21:37 · 344 阅读 · 0 评论 -
自行一个简单类似Spring AOP(Jdk方式)的框架
Spring AOP有两种实现方式,一种是基于JDK的,另一种是基于Cglib的,本文模拟Spring的Jdk实现方式自行实现一个简单的小框架,目的是熟悉思想。基于JDK的动态代理,最终的一个类是InvocationHandler,InvocationHandler可以理解为一个方法调用器,在对方法进行增强时候,代理类会拦截到目标对象上的方法,然后将拦截的方法传递给InvocationH...原创 2019-10-26 17:58:21 · 333 阅读 · 0 评论 -
Spring AOP处理类上或者方法上面的切面
注解定义@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface XXXXDataSource { /** * @return datasource name */ DataSou...原创 2019-09-24 18:14:02 · 2829 阅读 · 0 评论 -
借助Spring框架实现多数据源进行动态路由数据源进行数据查询
业务需要,不同类型数据分布在不同集群以提高查询性能,为此系统存在多个数据源。数据源实现方式:1:静态配置多个数据源,按需使用,不具备动态调整能力。示例代码:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xml...原创 2019-05-28 21:55:56 · 745 阅读 · 0 评论 -
Java中的调用栈的获取以及在Spring Aop中的应用
最近Spring应用时候接触到了一个Pointcut类叫做org.springframework.aop.support.ControlFlowPointcut,一个根据调用逻辑指定JoinPoint的形式,例如有方法method(),当classA实例调用需要织入逻辑,classB实例不需要织入逻辑增强,此时就可以使用该PointCut。继承结构如下:了解ControlFlowPo...原创 2019-05-18 11:08:56 · 1527 阅读 · 0 评论 -
基于JDK动态代理实现的Spring AOP源码学习
最近花了点时间学习了一下Spring Aop的内容,到此简单做一下笔记。如果存在错误还望多多指教。概念所谓的Aop就是Aspect Oriented Programming,即面向切面编程。对于Aop存在一个组织AOP Alliance,该组织制定了一下跟Aop有关的标准,制定的只是标准,没有实现。通常在Aop中主要有如下术语:1:Aspect是切面,是面向切面编程的一个抽象,...原创 2019-05-25 13:34:08 · 695 阅读 · 0 评论 -
记一次SpringBoot启动失败且不报错的排查经历
之前组内开发迭代多个版本偶尔出现此问题,然后组内同学也没有从根本上去排查问题,由于当时比较忙着开发跟进进度也就没来的及追究此问题。本次又是组内同学添加一个监控的类库之后添加一些跟监控有关的配置之后Push代码到了远程git仓库;随后我pull下来代码进行merge之后便无法启动而且控制台很干净不报错,很郁闷。下面描述一下排错分析过程“”1:多次启动排查配置错误并没有解决问题,只好进行debug...原创 2019-02-21 18:17:02 · 9606 阅读 · 0 评论 -
SpringMVC配置静态资源引起对拦截器的源码学习
(一) 拦截器配置对于Web应用而言,URL就表示资源,URL就表示一个操作,Spring MVC也正是对URL的匹配进行相关操作,但是有些时候WEBUI的js、图片以及HTML等静态资源对应的URL不是一种操作,而仅仅是显示的资源给用户提供操作的界面。因此我们就需要对这些静态资源进行不拦截处理,同时还需要对一些登陆页面的URL不拦截,因此一般需要进行如下类似配置:<mvc:int...原创 2018-12-11 19:49:22 · 719 阅读 · 0 评论 -
Spring事务实现源码之事务实现以及Connection的绑定与获取
PlatformTransactionManager是spring事务的高级抽象,事务的实现需要借助PlatformTransactionManager完成,该管理主要方法如下:当我们在使用事务的时候,需要调用如下方法获取一个事务状态对象。TransactionStatus getTransaction(TransactionDefinition definition) throws...原创 2018-09-15 12:21:11 · 4438 阅读 · 0 评论 -
Spring 关于注入注解的使用简单记录
spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和原创 2017-08-23 16:50:39 · 625 阅读 · 0 评论 -
Spring MVC统一异常处理解决方案
我们的Web系统常常会因为不可预测的情况抛出异常,如果不对异常进行处理的话,异常信息会暴露给用户页面。对于一些敏感信息的暴露会带来隐患。因此需要解决!接下来就具体讲解一下Spring MVC的异常处理方案.例如我们的UserController有如下代码: @RequestMapping(value="query") @ResponseBody public String query(原创 2017-08-18 17:01:20 · 869 阅读 · 1 评论 -
Spring+Spring MVC+Mybatis整合配置AOP不生效的解决方案以及Bean初始化重复加载两次(疑难杂症)
之前上班做spring+spring mvc +hibernate开发, 2年之久不做想复习一下aop的使用,结果配置遇见aop不生效,解决而记录!先上代码直接看反例效果会明显:首先看一下我的代码的包路径:接下来看Spring-MVC的配置文件部分代码:<beans xmlns="http://www.springframework.org/schema/bean原创 2017-08-12 22:43:48 · 1583 阅读 · 2 评论