Spring系列之父子容器详解

主要的问题 什么是父子容器? 为什么需要用父子容器? 父子容器如何使用? 下面我们就来探讨探讨。 我们先来看一个案例 系统中有2个模块:module1和module2,两个模块是独立开发的,module2会使用到module1中的一些类,module1会将自己打包为jar提供给module2使用,我们来看一下这2个模块的代码。 模块1…

hello hello 发布于 2024-01-18

Spring系列之jdk动态代理和cglib代理

Spring中有个非常重要的知识点,AOP,即面相切面编程,spring中提供的一些非常牛逼的功能都是通过aop实现的,比如下面这些大家比较熟悉的功能 spring事务管理:@Transactional spring异步处理:@EnableAsync spring缓存技术的使用:@EnableCaching…

hello hello 发布于 2024-01-17

Spring系列之@Scope、@DependsOn、@ImportResource、@Lazy 详解

@Scope:指定bean的作用域 用法 @Scope用来配置bean的作用域,等效于bean xml中的bean元素中的scope属性。 看一下其源码: @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented…

hello hello 发布于 2024-01-17

Spring之Bean循环依赖详解

什么是循环依赖? 这个很好理解,多个bean之间相互依赖,形成了一个闭环。 比如:A依赖于B、B依赖于C、C依赖于A。 代码中表示: kotlin复制代码public class A{ B b; } public class B{ C c; } public class C{ A a; } 如何检测是否存在循环依赖?…

hello hello 发布于 2024-01-17

Spring系列之玩转bean scope

本文内容 详细介绍5中bean的sope及使用注意点 自定义作用域的实现 应用中,有时候我们需要一个对象在整个应用中只有一个,有些对象希望每次使用的时候都重新创建一个,spring对我们这种需求也提供了支持,在spring中这个叫做bean的作用域,xml中定义bean的时候,可以通过scope属性指定bean的作用域,如: <bean id=""…

hello hello 发布于 2024-01-16

Spring系列之依赖注入—手动注入

本文内容 主要介绍xml中依赖注入的配置 构造器注入的3种方式详解 set方法注入详解 注入容器中的其他bean的2种方式 其他常见类型注入详解 依赖回顾 通常情况下,系统中类和类之间是有依赖关系的,如果一个类对外提供的功能需要通过调用其他类的方法来实现的时候,说明这两个类之间存在依赖关系,如: public class UserService{…

hello hello 发布于 2024-01-16

Spring Boot整合Camunda实现工作流

工作流是我们开发企业应用几乎必备的一项功能,工作流引擎发展至今已经有非常多的产品。最近正好在接触 Camunda ,所以来做个简单的入门整合介绍。如果您也刚好在调研或者刚开始计划接入,希望本文对您有所帮助。如果您是一名Java开发或Spring框架爱好者,欢迎关注我 程序猿DD open in new window ,持续非常技术干货。 #…

hello hello 发布于 2024-01-12

volatile关键字的作用、原理

此文对于部分原理的解释不全,甚至有错误。建议同时参考 一文解决内存屏障 阅读。 在只有双重检查锁,没有volatile的懒加载单例模式中,由于 指令重排序 的问题,我确实不会拿到 两个不同的单例 了,但我会拿到 “半个”单例 。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中 “出现频率最高的关键字”…

hello hello 发布于 2024-01-12

Java 中保持扩展性的几种套路和实现

前言 SOLID(单一、开闭、里式替换、接口隔离、依赖倒置)五大原则和23种设计模式(常见的单例、构建者、装饰、适配、代理、组合、模板等等),小伙伴们对这些肯定都很熟悉。这些原则和设计模式能够辅助我们,让我们在设计的时候有所抉择,从而达到高内聚、低耦合的目的。…

hello hello 发布于 2024-01-12

对比Spring Boot中的JdbcClient与JdbcTemplate

本文我们一起看看Spring Boot中 JdbcClient 和 JdbcTemplate 之间的差异。 以下内容使用的Java和Spring Boot版本为: Java 21 Spring Boot 3.2.1 假设我们有一个 ICustomerService 接口: public interface ICustomerService {…

hello hello 发布于 2024-01-10
上一页 下一页