Spring
文章平均质量分 83
智达教育
本人于20年毕业于东大,在学校跟随导师做了多个项目,现在2B大厂工做后端开发,有多年工作经验,同时热爱技术,对前端、python、大数据等多个领域有研究,希望与大家共进步。
展开
-
spring中的扩展点你都知道吗(涵盖几乎所有扩展点-及其使用方法)
Spring MVC拦截器,它可以获得HttpServletRequest和HttpServletResponse等web对象实例。preHandle 在目标方法执行之前执行执行目标方法后执行的postHandleafterCompletion 在请求完成时执行为了方便,我们一般继承HandlerInterceptorAdapter,它实现了HandlerInterceptor。如果有授权鉴权、日志、统计等场景,可以使用该拦截器,我们来演示下吧。原创 2024-06-11 08:57:20 · 994 阅读 · 0 评论 -
aop实现日志的保持操作
用@Aspect注解标注标识切面,用@PointCut定义切点。/*** 定义切面*/@Aspect@Component/*** web层切点* 1. @Pointcut("execution(public * com.hyh.web.*.*(..))") web层的所有方法* 2. @Pointcut("@annotation(com.hyh.annotation.Log)") Log注解标注的方法*//*** 定义切面*/@Aspect@Component/**原创 2024-02-23 16:26:35 · 692 阅读 · 0 评论 -
Spring容器中同名 Bean 加载策略
场景描述:两个同名 bean,均通过 xml 的 bean 标签声明。其实这就是上面的场景了。可以看出,最终使用的是后面的 xml 中声明的 bean。其实原因是“后面的 xml 中声明的 bean”把“前面的 xml 中声明的 bean”覆盖了。我们可以看到 Bebug 信息:scope=;scope=;原创 2023-10-19 15:09:09 · 2067 阅读 · 0 评论 -
spring AOP中pointcut表达式详解
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️由于项目很忙,最近很少有时间更新文章和大家分享,已经很及没更新文章了,让各位久等了。最近忙里偷闲抽空分享一些aop的知识。详细大家对这个很熟悉但也陌生,没有系统的整理过这个知识。原创 2023-07-11 21:30:31 · 3781 阅读 · 4 评论 -
spring restTemplate的坑----会对String类型的url中的特殊字符进行转义
最进的项目在使用过程中对网络请求进行了修改,但是后来发现请求的时候有的地址能访问,有的地址就报错了,而这些报错的地址通过浏览器和postman访问都是没问题的。啥情况,什么鬼这个为啥有的好用有的不好用,关键同一个地址后端访问就报错了,而使用其他方式都能正常访问,根据这个现象,只能通过断点一点一点的更了。最终问题定位为发送的url路径中的特殊符号被进行了二次转义将% 转译成了%25。原创 2023-01-10 17:21:24 · 626 阅读 · 0 评论 -
很好用的URL工具类
开发中我们经常会操作 URL,比如提取端口、提取路径以及最常用的提取参数等等。很多时候需要借助于一些第三方类库或者自己编写工具类来实现,今天项目需求需要对url进行操作,虽然很简单,但是由于自己写的话可能会有想不到的地方,会有一些坑,为了避坑,找了一个Spring的工具类,其实想resttemplate就是使用这个工具类进行解析的。我的需求是获取url中的参数,这里也将这个工具类的方法都简单唠一下,大家有啥其他的工具类,可以告诉我再进行补充。JDK 虽然提供了java.net.URI。原创 2023-01-10 16:41:56 · 1745 阅读 · 0 评论 -
最通俗的方法让你搞懂spring缓存机制
目录简介:Spring 缓存的抽象机制Spring 缓存使用过程通过注解声明缓存通过配置集成缓存总结简介:缓存(Cache)技术在互联网系统的开发过程中得到了非常广泛的应用。当系统出现性能瓶颈时,很多场景都可以使用缓存技术来重构业务处理流程,从而获取性能的提升。缓存的实现可以有很多方案,业界也诞生了一批优秀的缓存工具,例如 EhCache、Guava、Caffeine、Redis、Hazelcast 等。因为这些缓存工具在设计和实现上的差异性,开发人员在使用它们时的.原创 2021-12-02 20:40:54 · 1333 阅读 · 0 评论 -
java 静态代码块和spring @value等注解注入顺序
今天在进行配置抽取的时候,遇到一个问题通过@Value方法注入属性一直注入不进去。引用yml配置文件的时候,因为用到了继承的静态代码块。类与类有继承关系的静态代码块是先执行父类静态代码块再执行子类静态代码块,这个问题不用说。今天探索的是与spring相关的执行顺序我在项目启动的时候需要去加载部分配置文件,这些配置文件的信息在子类的静态代码块需要使用的。跑项目的时候子类引用父类的属性一直报空指针。package com.pinyu.system.utils; import java..转载 2021-09-15 10:56:55 · 1918 阅读 · 0 评论 -
spring boot获取spring容器中的bean对象
我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理,但是需要用到spring里的一些对象。如果这是spring框架的独立应用程序,我们通过ApplicationContext ac = new FileSystemXmlApplicationContext("applicationC..原创 2021-08-12 20:17:45 · 5869 阅读 · 0 评论 -
如果在springboot项目中删除其他jar包的Bean
今天在项目中遇到这么一个问题,引入公司别等团队的jar包,但是该包中有一个拦截器????,使系统的多语问题失效。。。。。怎么办,开始想通过在启动类中删除该类@ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.REGEX, pattern = {"com.xx.Processor","com.xx.PartitionConfig"})})这种方法没有效果,后来才知道,项目包以外的be原创 2021-08-12 19:58:22 · 2160 阅读 · 3 评论 -
spring硬骨头-----解决循环依赖问题
最近在学习spring的源码,之前的文章已经把spring的整个流程进行了梳理。有了整体的脉络之后,学习起来就清晰明了了。如果没看过spring源码的同学,可以看一下鄙人整理的笔记。spring源码拾荒今天记录一下spring的实现细节。这里想记录的是spring的一个难点------spring解决循环依赖问题。后面还会继续记录整个spring的其他实现细节。what?首先讲一下什么是循环依赖,循环依赖顾名思义就是两个类循环的引用了。举个????这里有两个类 类A引用了类B ,类B同时原创 2021-07-12 11:30:14 · 599 阅读 · 2 评论 -
Spring源码学习---------(最简单易懂的源码学习笔记)
前沿工作一段时间了,之前一直想学习一下spring的源码,最近有时间学习了一下。现在把最近学习的成果整理一下,也向大家分享一下。下面是spring源码的学习笔记,仅供参考。本人能力有限,难免会出现问题,欢迎各位大佬指出。读源码的方法:之前只是看过JDK的一些源码,像是spring和springboot等源码只是简略的看过,并没有系统的学习过,同时,这么优秀的作品很是值得我们学习的。抱着好奇心开始了读spring源码的道路,废话不多说,这里把我的学习笔记分享给大家。读源码首先找...原创 2021-07-05 17:30:00 · 17685 阅读 · 10 评论 -
Spring——(7)事务管理1
目录一、事务中的问题1.读写问题2.解决方法二、Spring的事务管理API1.PlatformTransactionManager:平台事务管理器(接口)2.TransactionDefinition :事务定义信息(接口)3.TransactionStatus:事务的状态4.事务管理API三者之间的关系三、spring事务的传播行为1.保证多个...原创 2019-03-24 17:08:06 · 161 阅读 · 0 评论 -
Spring——(4)AOP入门
目录1.什么是 AOP2.应用场景3.spring底层实现方法(1)JDK的动态代理:(2)Cglib的动态代理:4.Spring 的基于 AspectJ 的 AOP 开发(1)Spring 的AOP简介(2)Spring AOP中的相关术语:一、AOP的入门1.什么是 AOP 2.应用场景 性能监控(代码执行前加一个时间,运...原创 2019-03-22 10:26:41 · 194 阅读 · 0 评论 -
从0开始学习Spring系列——(1)spring的简单使用(IOC)
1.下载开发的jar包官网:http://spring.io/2.解压3.创建项目引入jar包4.创建接口类5.将实现类交给Spring管理(引入配置)在spring的解压路径下spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.htm...原创 2019-03-16 18:26:12 · 168 阅读 · 0 评论 -
Spring——(2)IOC和DI&相关配置
IOC和DIIOC:控制反转对象的创建权交给springDI:依赖注入 把类的属性注入面向对象时想利用别的类的属性实现的方法:不能面向接口编程,spring只需加入property标签编写测试2.Spring 工厂BeanFactory :老版本的工厂类ApplicationContext :新版本的工...原创 2019-03-17 17:52:58 · 160 阅读 · 0 评论 -
Spring——(5)aop的xml实现
目录一、xml的方法的实现1.创建项目引入相关的jar包2.引入spring的配置文件3.编写目标类并配置4.编写测试类(1)spring整合junit5.增强(1)创建一个类(2)将切面类交给spring管理(3)把增强应用到目标对象上(之前自己写代理)(4)测试结果6.Spring中的通知类型7.切入点表达式的写法8.总结一、x...原创 2019-03-22 10:19:41 · 190 阅读 · 0 评论 -
Spring——(6)AOP的基于AspectJ注解开发
目录一、AOP的注解的配置入门1.创建项目引入jar包2.引入配置文件3.编写目标类并交给spring管理4.编写切面类并配置5.用注解的方法对目标类进行增强(1)开启注解aop的开发(2)确定切面类(3)设置通知的类型6.编写测试类二、AOP的不同通知类型的使用1.后置通知@AfterReturning2.前置通知@Before3.环...原创 2019-03-22 11:56:21 · 176 阅读 · 0 评论 -
Spring——JDBC Template 模板
目录一、入门使用1.Dao层的解决的方法2.JDBC模板的简单使用(1)创建项目引入jar包(2)创建数据库和表(3)使用JDBC的模板保存数据二、将连接池和模板交给spring管理1.引入spring的配置文件2.配置内置连接池和JDBC模板3.使用JDBC的模板4.开源连接池的引入(1)问题描述(2)DBCP的使用(3)c3p...原创 2019-03-22 16:48:12 · 152 阅读 · 0 评论 -
Spring——事务管理2 xml方式
一 没有事务1.环境的搭建业务层和dao层完成创建2.配置Dao和service交给spring管理xml的方法需要set方法(构造方法)3.Dao中注入JDBC模板传统的方法spring的方法:JDBCSupport的部分源码进一步简化(JDBC模板都可以不用配置)使用:4.编写Servic...原创 2019-03-24 16:56:07 · 163 阅读 · 0 评论 -
spring——事务管理3 注解的方法实现事务的管理
注解的方式实现事务1.引入aop的开发包2.恢复之前的环境(没有事务的情况)3.配置事务管理器4.开启注解事务5.在业务层添加注解*******************************************************************************************************************...原创 2019-03-24 17:07:02 · 110 阅读 · 0 评论 -
Spring——(3)IOC注解的方法
目录一、简单应用1.创建web项目,导入jar包2.引入配置3. 编写dao和实现类4.编写测试类5.开启spring的组件扫描6.注解的方式设置属性值二.Spring IOC注解的详细说明1.@Component2.属性注入的注解3.bean的其他注解(1)bean的生命周期(2)bean的作用范围4.bean的xml和注解的方法的...原创 2019-03-19 16:04:52 · 148 阅读 · 0 评论