>

文章分类 -  spring

摘要:一个优秀的Controller层逻辑 说到 Controller,相信大家都不陌生,它可以很方便地对外提供数据接口。它的定位,我认为是「不可或缺的配角」,说它不可或缺是因为无论是传统的三层架构还是现在的COLA架构,Controller 层依旧有一席之地,说明他的必要性;说它是配角是因为 Contr 阅读全文
posted @ 2024-03-27 14:36 字节悦动 阅读(189) 评论(0) 推荐(0) 编辑
摘要:所谓的大事务就是耗时比较长的事务。 Spring有两种方式实现事务,分别是「编程式」和「声明式」两种。 不手动开启事务,mysql 默认自动提交事务,一条语句执行完自动提交。 大事务产生的原因 操作的数据比较多 调用了 rpc 方法 有其他非 DB 的耗时操作 大量的锁竞争 执行了比较耗时的计算 大 阅读全文
posted @ 2023-03-07 10:10 字节悦动 阅读(382) 评论(0) 推荐(1) 编辑
摘要:在开发RestAPI的时候总会遇到如下情况: 序列化时忽略某属性(如Name)反序列化时忽略某属性(如HashedName)Jackson提供了@Jsonignore这个注解,用于在(反)序列化时,忽略bean的某项属性。 这次项目将Jackson升级到了1.9版本,在Jackson1.9的时候,@ 阅读全文
posted @ 2023-02-17 11:46 字节悦动 阅读(692) 评论(0) 推荐(0) 编辑
摘要:@Profile 注解:1.使用@Profile的原因在平时的开发中,通常开发一个开发库,测试一个测试库,生产一个生产库。我们将数据库信息写在一个配置文件中,在部署的时候我们将配置文件改成对应的配置文件,这样改来改去非常麻烦。在使用@Profile后,我们就可以定义3个配置文件dev、sit、pro 阅读全文
posted @ 2023-02-13 02:10 字节悦动 阅读(1642) 评论(0) 推荐(1) 编辑
摘要:不知道大家在项目中有没有遇到过这样的场景,根据传入的类型,调用接口不同的实现类或者说服务,比如根据文件的类型使用 CSV解析器或者JSON解析器,在调用的客户端一般都是用if else去做判断,比如类型等于JSON,我就用JSON解析器,那如果新加一个类型的解析器,是不是调用的客户端还要修改呢?这显 阅读全文
posted @ 2023-02-05 19:24 字节悦动 阅读(300) 评论(0) 推荐(0) 编辑
摘要:SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制,可以用来启用框架扩展和替换组件,主要用于框架中开发,例如Dubbo、Spring、Common-Logging,JDBC等采用采用SPI机制,针对同一接口采用不同的实现提供给不同的用户,从而提高了框架的 阅读全文
posted @ 2023-02-05 03:18 字节悦动 阅读(295) 评论(0) 推荐(1) 编辑
摘要:SpEL(Spring Expression Language),即Spring表达式语言。 一、SpEL的常见用法 1、 获取变量 获取变量的功能,比较常见的用法是spring中缓存注解的功能。可以动态获取方法中参数的值。如下: @Cacheable(value = "cacheKey",key 阅读全文
posted @ 2023-01-26 17:47 字节悦动 阅读(4581) 评论(0) 推荐(11) 编辑
摘要:转自文章: https://www.cnblogs.com/kzyuan/p/16312931.html 存的是一个对象的集合,为什么通过range方法返回的却是LinkeHashMap于是通过debug看看源码,了解执行流程,找一下原因 这是笔者通过debug画出的大致流程: 注意看8中,mapO 阅读全文
posted @ 2023-01-04 10:22 字节悦动 阅读(795) 评论(0) 推荐(0) 编辑
摘要:前言 单元测试(UT)工作一段时间后,才真正意识到代码质量的重要性。虽然囫囵吞枣式地开发,表面上看来速度很快,但是给后续的维护与拓展制造了很多隐患。作为一个想专业但还不专业的程序员,通过构建覆盖率比较高的单元测试用例,可以比较显著地提高代码质量。如后续需求变更、版本迭代时,重新跑一次单元测试即可校验 阅读全文
posted @ 2023-01-03 05:14 字节悦动 阅读(709) 评论(0) 推荐(1) 编辑
摘要:说到断言Assert,我们在查看源码时经常看到,它是使用比较频繁的一个工具类,但我也经常忽略它的存在。现在就让我们一起看看它吧! About断言Assert 断言是一个判断逻辑,用来检查不该发生的情况; 断言的判定规则: 2.1.值为true时,程序从断言语句处继续执行; 2.2.值为false时, 阅读全文
posted @ 2022-12-09 14:23 字节悦动 阅读(1108) 评论(0) 推荐(0) 编辑
摘要:一、Freemarker取值 基础语法种类 注释:即<#-- -->,介于其之间的内容会被freemarker忽略 插值:即 ${..} 部分,freemarker会用真实的值代替${..} FTL指令:<# >FTL指令</#> ,和HTML标记类似,名字前加#予以区分,Freemarker会解析 阅读全文
posted @ 2022-11-28 23:14 字节悦动 阅读(3371) 评论(0) 推荐(4) 编辑
摘要:一、前言 目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现启动过程中执行代码,或启动成功后执行,是有很多种方式可以选择,我们可以在static代码块中实现,也可以在构造方法里实现,也可以使用@PostConstruct注解实现,当然也可以去实现Spring的Applica 阅读全文
posted @ 2022-08-26 00:06 字节悦动 阅读(1476) 评论(0) 推荐(1) 编辑
摘要:Spring是父容器,SpringMvc是子容器,子容器可以访问父容器的内容,父容器不能访问子容器的东西。有点类似java里面的继承的味道,子类可以继承父类共有方法和变量,可以访问它们,父类不可以访问子类的方法和变量。在这里就会衍生出几个比较经典的问题: 为什么需要父子容器? 是否可以把所有类都通过 阅读全文
posted @ 2022-05-12 21:06 字节悦动 阅读(782) 评论(0) 推荐(3) 编辑
摘要:1、先看几个注解 @SpringBootConfiguration 注解 这个注解我们点进去就可以发现,它实际上就是一个 @Configuration 注解,这个注解大家应该很熟悉了,加上这个注解就是为了让当前类作为一个配置类交由 Spring 的 IOC 容器进行管理,因为前面我们说了,Sprin 阅读全文
posted @ 2022-05-12 14:35 字节悦动 阅读(546) 评论(0) 推荐(3) 编辑
摘要:@Transactional 注解元数据驱动的声明式事务 基本原理是: 将对应的方法通过注解元数据,标注在业务方法或者所在的对象上,然后在业务执行期间,通过AOP拦截器反射读取元数据信息,最终将根据读取的业务信息构建事务管理支持。 不同的方法之间的事务传播保证在同一个事务内,是通过统一的数据源来实现 阅读全文
posted @ 2022-04-16 12:44 字节悦动 阅读(4044) 评论(0) 推荐(21) 编辑
摘要:概述 Spring使用增强类定义横切逻辑,同时由于Spring只支持方法连接点,增强还包括在方法的哪一点加入横切代码的方位信息,所以增强既包括横切逻辑,又包括部分连接点的信息。 增强类型AOP联盟为增强定义了org.aopalliance.aop.Advice接口。 先了解一下增强接口的继承关系 带 阅读全文
posted @ 2022-04-14 20:47 字节悦动 阅读(508) 评论(0) 推荐(1) 编辑
摘要:最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了SpringMVC提供的RequestContextHolder遂去分析一番,并借此对SpringMVC的结构深 阅读全文
posted @ 2022-04-14 17:37 字节悦动 阅读(463) 评论(0) 推荐(2) 编辑
摘要:如果监听器、过滤器、 拦截器、 AOP都存在,则它们的执行顺序为:监听器 => 过滤器=> 拦截器=> AOP。 过滤器/拦截器/AOP 简介 过滤器:Filter。拦截器:Interceptor 。 在Spring构架的程序中,要优先使用拦截器。几乎所有 Filter 能够做的事情,interce 阅读全文
posted @ 2022-04-14 16:30 字节悦动 阅读(7473) 评论(0) 推荐(24) 编辑
摘要:@EnableAutoConfiguration 首先Spring Boot项目中都会如下启动类: @SpringBootApplication public class Application { public static void main(String[] args) { SpringApp 阅读全文
posted @ 2022-03-18 15:50 字节悦动 阅读(563) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示