切面 注解spring aop
spring-boot-devtools 热部署造成的类加载问题
如果你的项目在IDE中出现了像下面这些奇怪的错误 object is not an instance of declaring class // 对象不是声明类的实例 java.lang.ClassCastException: com.example.A cannot be cast to com. ......
Spring-Retry(重试机制)
在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败、调用远程服务失败、争抢锁失败。 这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而sprin ......
Spring整合Mybatis遇到的问题(一)
问题1 问题原因:在数据源配置类中没有创建事务管理 在数据源配置类中添加好事务管理器的Bean即可 问题2 其实出现这个问题实质就是mapper接口和mapper.xml文件没有映射起来。 常见的错误如下: 1.mapper.xml中的namespace和实际的mapper文件不一致 这个问题其实很 ......
spring注册bean
spring是怎么注册一个bean的 doGetObjectFromFactoryBean:177, FactoryBeanRegistrySupport (org.springframework.beans.factory.support) getObjectFromFactoryBean:101 ......
Spring Boot 中的 ApplicationRunner 和 CommandLineRunner
Spring Boot 应用,在启动的时候,如果想做一些事情,比如预先加载并缓存某些数据,读取某些配置等等。总而言之,做一些初始化的操作时,那么 Spring Boot 就提供了两个接口帮助我们实现。 ......
【SPRING】使用拦截器统一处理异常
背景 业务开发,经常要处理各种各样的异常,然后一层处理,确实也不太舒服,也不够规整。 只管抛异常,不用每个地方都去判断catch 一下,会舒服得多。 但项目上还没有统一去做这个事情,虽然知道是好事,但没做就是没做, 业务来了 最近添加了一个全局异常处理类,是因为近来有一个业务,大概是根据当前登录人, ......
Spring 事件
事件 Spring 的默认事件是用来监听容器的,有如下事件:ContextStartedEvent、ContextStoppedEvent、ContextClosedEvent、ContextRefreshedEvent,分别表示容器启动、停止、关闭和刷新事件,监听的话想对简单,实现 Applica ......
Spring Aop 常见注解和执行顺序
Spring Aop 常见注解和执行顺序 IOC、AOP、Bean注入、Bean的生命周期、Bean的循环依赖 首先我们一起来回顾一下 Spring Aop 中常用的几个注解: @Before 前置通知:目标方法之前执行 @After 后置通知:目标方法之后执行(始终执行) @AfterReturn ......
Spring boot 、Vue学习体会
近期集中学习了Spring boot 、Vue等技术,学习过程也是不断碰壁,总的来说自认为有些涨进,抓住核心、深入关键、逐步剖析。 两个技术分别负责后台和前端,学习后一个感受,两个技术内部深层次逻辑有相似性,均是做到了框架管理对象、管理生命周期,简化操作。 1、管理对象 spring boot 通过 ......
Spring Cloud Gateway 网关跨域问题解决
0、版本说明 Spring Cloud Version:Spring Cloud 2021.0.4 Spring Cloud Gateway Version:3.1.4 Spring Boot Version:2.6.11 1、网关跨域问题说明 关于跨域的相关原理和理论,网上有大量文章对此进行说明, ......
Springboot注解
一、核心注解 @SpringBootApplication 用在启动类上,主要包含以下3个注解: 1.@SpringBootConfiguration 实现配置文件的功能。 2.@EnableAutoConfiguration 打开自动配置的功能,也可关闭某个自动配置的选项。 3.@Componen ......
策略模式 + Spring 容器
前段时间在做关于流程的需求,因为流程的操作比较多,比如说审核通过、审核拒绝、审核撤销、审核退回等等,每一种操作有自己的处理逻辑,为了便于扩展,想到了策略模式,这里记录一下。 策略模式的使用基本步骤就是定义接口、添加实现类来实现接口、创建工厂类来管理实现类。 在使用工厂的时候遇到一个问题,就是如何将 ......
spring源码03-xml配置文件conent标签解析流程
本文主要介绍spring的xml配置文件 context:component-scan 配置对应的处理流程,通过该标签的属性配置实现对注解的支持等。对于xml的加载流程,自定义标签的处理流程请看上一篇文章:spring源码02-xml配置文件解析过程 一、content标签支持的localName以 ......
Spring
在pom.xml文件中添加依赖 <dependencies> <!--dependency> <groupId>org.example</groupId> <artifactId>[the artifact id of the block to be mounted]</artifactId> <v ......
【Spring】创建第一个Spring项目
添加依赖: 1 <!-- spring基础包spring-core --> 2 <dependency> 3 <groupId>org.springframework</groupId> 4 <artifactId>spring-core</artifactId> 5 <version>5.2.8. ......
Spring、SpringBoot基于内存的异步调用ApplicationContext.publishEvent (生产、消费)
ApplicationContext.publishEvent 是Spring提供的解耦的一种方式 (基于内存)。同样可以使用 MQ 组件 / 线程池 代替。 参数类 NotifyEvent.java import lombok.AllArgsConstructor; import lombok.D ......
spring aop 加注解
重复执行代码: 1.定义注解 @Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Repeatable { int value();}2.定义切面 /** * @Author dengYinY ......
Spring竟然可以创建“重复”名称的bean?—一次项目中存在多个bean名称重复问题的排查
众所周知,在Spring中时不能够创建两个名称相同的bean的,否则会在启动时报错:但是我却在我们的spring项目中发现了两个相同名称的bean,并且项目也可以正常启动,对应的bean也可以正常使用。 ......
SpringBoot 整合AOP(面向切面编程)其中@Around失效问题
1.AOP实现知识点 核心思想:动态代理。 支持技术:反射。 2.官方文档名词解释 Aspect(切面):关注点的模块化(新增业务的模块化)。为完成新业务而编写的类对象。(带@Aspect注解的类)。 Join point(连接点):新业务的实现,通知到了我们该干点什么。 Advice(通知) ......
spring面试题
1.对IOC的理解 将对象的创建权交由工厂(spring),程序中如果需要对象,从工厂(spring)中获取; 解除类与类之间的耦合 2.对Aop的理解 底层使用的是动态代理;使用配置的方式来完成动态代理要实现的功能。 在不修改源码的基础上,对目标对象中方法进行增强。实现业务之间解耦。 3.切⼊点、 ......
SSM_Spring+SpringMVC+MyBatis学习
没听过的重点部分 springSecurity 4.0开始默认打开_csrf防护,但是会导致403 forbidden问题,所以可以关闭,但是关了就没有csrf防护了 其中还有传递的token和加密的value 这个功能在前端实现,使用了一个隐藏的input 但是在学习中是关闭的,每个传值都需要进行 ......
Spring中使用JdbcTemplate操作数据库
JDBC 是 Java 提供的一种用于执行 SQL 语句的 API,可以对多种关系型数据库(例如 MySQL、Oracle 等)进行访问。但在实际的企业级应用开发中,却很少有人直接使用原生的 JDBC API 进行开发,这是因为使用 JDBC API 对数据库进行操作十分繁琐,需要我们对每一步都做到 ......
Aop原理
AOP相关的概念 1)Aspect:切面,切入系统的一个切面。比如事务管理是一个切面,权限管理也是一个切面。 2)Join point:连接点,也就是可以进行横向切入的位置。 3)Advice:通知,切面在某个连接点执行的操作(分为:Before advice,After returning adv ......
设计模式(二十九)----综合应用-自定义Spring框架-Spring IOC相关接口分析
1 BeanFactory解析 Spring中Bean的创建是典型的工厂模式,这一系列的Bean工厂,即IoC容器,为开发者管理对象之间的依赖关系提供了很多便利和基础服务,在Spring中有许多IoC容器的实现供用户选择,其相互关系如下图所示。 其中,BeanFactory作为最顶层的一个接口,定义 ......
Java注解与反射
注解(Annotation) 注解Annotation 是 JDK5.0 引入的一种注释机制 Annotation的作用: 不是程序本身,可以对程序作出解释 可以被其他程序(比如:编译器等)读取 Annotation的作用: 注解是以"@注释名"在代码中存在的,还可以添加一些参数值 Annotati ......
【事务】【@Transactional】@Transactional注解的rollbackFor属性
背景: 代码是这样写的: @Service @Transactional public class LoginBizImpl implements LoginBiz { // .... 省略 } 阿里巴巴规范扫描, 它就提示attribute rollbackfor of annotation tr ......
SpringBoot多数据源(自定义注解,动态数据源,事务实现)
一、数据库配置文件(这里用的是阿波罗配置中心,也可以是application.yml文件) #mysql本地数据源1 spring.datasource.db1.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.db1.jdbc ......
Spring整合Mybatis出线的小问题
Caused by: java.sql.SQLException: ${jdbc.driver} 这个问题出现一部分的原因,使用DruidDataSource获取数据库连接池的时候设置属性的时候直接加载了配置文件当中的属性如下 //1、定义一个方法来管理所需的对象(bean) @Bean publi ......
SpringBoot中@EventListener注解的使用
背景 在开发工作中,会遇到一种场景,做完某一件事情以后,需要广播一些消息或者通知,告诉其他的模块进行一些事件处理,一般来说,可以一个一个发送请求去通知,但是有一种更好的方式,那就是事件监听,事件监听也是设计模式中 发布-订阅模式、观察者模式的一种实现。 观察者模式:简单的来讲就是你在做事情的时候身边 ......