spring
文章平均质量分 86
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。
赵广陆
CSDN认证博客专家、CSDN的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
Spring Cache简化缓存开发
目录1 背景介绍2 使用方式3 常用注解3.1 @Cacheable3.2 @CachePut3.3 @CacheEvict3.4 @CacheConfig3.5 @Caching4 实战:Spring Cache整合redis缓存4.1 CacheManager 缓存管理器4.2 配置spring-boot-starter-cache4.3 手动配置4.4 开启缓存功能 @Cacheable({"…"})...原创 2022-08-16 22:05:01 · 237 阅读 · 0 评论 -
Spring Bean的生命周期和扩展点源码解读
目录1 Bean的生命周期2 Bean的定义、注册及创建过程3 Bean的注入过程4 Bean的销毁过程5 Bean的生命周期1 Bean的生命周期在Spring框架中,Bean对象也有着它的生命周期,然而对于Bean对象的生命周期,我们并不是很清楚,因为Spring帮助我们管理了Bean对象,所以,掌握Bean的生命周期,并知晓Spring在每个阶段为我们做了哪些事情是非常有必要的。原创 2023-09-13 23:53:58 · 171 阅读 · 0 评论 -
Spring框架@Autowired和@Resource到底有什么区别
目录1 来源不同2.依赖查找顺序不同2.1 @Autowired 查找顺序2.2 @Resource 查找顺序2.3 查找顺序小结3.支持的参数不同4.依赖注入的支持不同5.编译器提示不同6 总结原创 2023-09-13 23:47:55 · 173 阅读 · 0 评论 -
Spring框架中的@Conditional系列注解
目录1 @Contidional 介绍1.1 Condition 接口1.2 Spring @Conditional注解实例1.3 @Conditional 与@Profile 的对比2 Spring boot 扩展2.1 @ConditionalOnClass和@ConditionalOnMissingClass注解2.2 @ConditionalOnBean 和@ConditionalOnMissingBean注解2.3 @ConditionalOnProperty注解原创 2023-09-13 23:34:45 · 923 阅读 · 0 评论 -
Spring ioC源码深入剖析Bean的实例化
目录1 Spring源码阅读技巧2 ioC初始化流程与继承关系3 Bean是怎么实例化的3.1 找到 ioC源码的入口4 容器13大模板方法实例化bean4.1 容器13大模板方法之一:prepareRefresh()4.2 容器13大模板方法之二:obtainFreshBeanFactory()4.3 容器13大模板方法之三:prepareBeanFactory(beanFactory)4.4 容器13大模板方法之四:postProcessBeanFactory(beanFactory)原创 2022-06-02 16:42:44 · 394 阅读 · 0 评论 -
Spring Ioc源码深入剖析预备知识
目录1 Spring源码环境编译与构建1.1 自动化构建gradle介绍1.2 源码环境搭建与编译2 构建gradle源码测试项目2.1 开始搭建测试项目3 Spring基本概念回顾3.1 Spring中的基本概念3.2 Spring AOP和AspectJ4.3 设计模式之责任链4 ioC用到的那些设计模式4.1 设计模式之工厂4.1.1 简单工厂模式4.2 设计模式之模板4.3 设计模式之观察者5 AOP用到的那些设计模式5.1 设计模式之代理1 Spring源码环境编译与构建工欲善其事 必先利其原创 2022-05-25 23:18:20 · 259 阅读 · 0 评论 -
面试题@Component和@Bean的区别
个人回答:1.作用对象不同:@Component 注解作用于类,而 @Bean 注解作用于方法、2.@Component 通常是通过路径扫描来自动侦测以及自动装配到 Spring 容器中(我们可以使用 @ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)。@Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean,@Bean 告诉了 Spring 这是某个类的实例,当我们需要用它的时候还给我。3.@Bean 注解比 .原创 2021-06-14 17:24:00 · 767 阅读 · 0 评论 -
Spring源码剖析设计模式
目录1 观察者模式1.1 Spring观察者模式1.2 ApplicationContext事件监听1.3 自定义监听事件2 Spring AOP-动态代理3 BeanFactory工厂模式4 适配器模式4.1 Spring Aop适配器+代理模式案例4.2 Spring AOP适配器体系1 观察者模式基础知识:Java常用设计模式定义:对象之间存在一对多或者一对一依赖,当一个对象改变状态,依赖它的对象会收到通知并自动更新。MQ其实就属于一种观察者模式,发布者发布信息,订阅者获取信息,订阅了原创 2022-01-10 20:30:00 · 1245 阅读 · 0 评论 -
SpringData JPA多表关联操作
目录1 关联映射操作1.1 多表之间的关系和操作多表的操作步骤1.1.1 @OneToMany:1.1.2 @ManyToOne1.1.3 @JoinColumn1.2 一对多的关联关系1.3 多对多的关联关系1.3.1 @ManyToMany1.3.2 @JoinTable1.3.3 @JoinColumn2 对象导航查询3 Specification的多表联合查询1 关联映射操作1.1 多表之间的关系和操作多表的操作步骤1.1.1 @OneToMany:作用:建立一对多的关系映射属性: t原创 2021-08-14 15:02:10 · 5245 阅读 · 0 评论 -
Spring中的@Lazy注解简析
@Lazy 的属性Spring IoC (ApplicationContext) 容器一般都会在启动的时候实例化所有单实例 bean 。如果我们想要Spring 在启动的时候延迟加载 bean,即在调用某个 bean 的时候再去初始化,那么就可以使用 @Lazy 注解。value 取值有 true 和 false 两个 默认值为 truetrue 表示使用 延迟加载, false 表示不使用,false 纯属多余,如果不使用,不标注该注解就可以了。Person 类public class P原创 2021-06-12 11:59:09 · 621 阅读 · 0 评论 -
spring定时任务Spring Scheduler
Spring Scheduler是Spring框架提供的一个简单的定时任务实现。我们使用的时候非常简单,只需要添加几个注解就行。主要是org.springframework.scheduling.annotation包下的类。我们先看一下怎么用,然后再分析一下其源码。代码示例可以是xml配置,也可以用注解实现。此处选择注解实现。@Service@Slf4j@Datapublic class SpringScheduleTest { private AtomicInteger .原创 2021-05-09 13:26:34 · 1431 阅读 · 0 评论 -
Spring注入和new对象产生的错误场景
问题:@Autowired注入Spring Bean,则当前类必须也是Spring Bean才能调用它,不能用new xxx()来获得对象,这种方式获得的对象无法调用@Autowired注入的Bean。1、类1,加入Spring Poolpublic class PersonServiceImpl implements PersonService{ public void save(){ System.out.println("This is save for test原创 2021-03-05 23:52:53 · 628 阅读 · 0 评论 -
SpringData MongoDB
目录1 SpringData MongoDB简介2 MongoDB环境搭建2.1 解压2.2 创建需要的目录2.3 创建配置文件2.4 启动mongodb3 SpringData MongoDB入门案例3.1目标3.2 创建工程,引入坐标3.3 创建配置文件3.4 创建实体类3.5 自定义dao接口3.6 测试4 SpringData MongoDB实现CRUD操作4.1 增删改4.2 简单查询4.3 命名规则查询1 SpringData MongoDB简介MongoDB是一个跨平台的,面向文档的数据原创 2021-01-18 22:17:00 · 3929 阅读 · 1 评论 -
SpringData JPA
目录1 持久层开发的问题1 SpringData简介2.1 什么是SpringData2.2 SpringData的主要模块3 JPA基础4 JPA实战4.1 目标4.2 准备数据库环境4.3 创建java工程,导入坐标4.4 创建实体类4.5在实体类中配置映射关系4.6 加入 JPA 的核心配置文件4.7 测试4.7.1 实现保存操作4.7.2 实现查询操作4.7.3 实现修改操作4.7.4 实现删除操作5 JPA的重要API介绍5.1 EntityManagerFactory5.2 EntityMana原创 2021-01-18 22:10:27 · 995 阅读 · 0 评论 -
Spring Session MongoDB管理会话
目录1.Spring Session MongoDB1.1 什么是 Spring Session MongoDB1.2.他与 Spring Session 的区别1.3 安装 MongoDB2.搭建案例环境2.1 技术版本2.2 创建项目2.3 修改 POM 文件添加依赖2.4 添加配置文件2.5 创建启动类3.编写测试代码3.1 Session_mongo13.2 Session_mongo23.3 修改 MongoDB 的配置文件添加 bind_ip3.4 测试4.共享自定义对象4.1 创建 Users原创 2021-01-17 16:58:43 · 765 阅读 · 0 评论 -
Spring Session分布式会话管理
目录1 HttpSession 回顾1.1 什么是 HttpSession2 Session 共享2.1 什么是 Session 共享2.2 Session 共享应用场景3 Session 共享常见的解决方案3.1 Session 复制3.2 Session 绑定3.3 利用 Cookie 记录 Session3.4 Session 服务器4 什么是 Spring Session5 Spring Session 的使用5.1 安装 Redis5.2 搭建案例环境5.2.1 版本介绍5.2.2 创建项目5.3原创 2021-01-17 16:23:28 · 978 阅读 · 0 评论 -
Spring事务异常不回滚的原因
目录1 一个方法出错,另一个方法不会回滚2 一个方法出错,另一个方法会回滚3 捕获异常为Exception而不是runtimeexcetpion4 原因1 一个方法出错,另一个方法不会回滚if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); } catch原创 2020-12-26 14:28:47 · 2579 阅读 · 0 评论 -
Spring中的Bean是线程安全的吗?
Spring容器中的bean可以分为5个范围:(1)singleton:默认,每个容器中只有一个bean的实例(2)prototype:为每一个bean请求提供一个实例一般来说下面几种作用域,在开发的时候一般都不会用,99.99%的时候都是用singleton单例作用域(3)request:为每一个网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收(4)session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,be原创 2020-12-05 19:13:51 · 8065 阅读 · 1 评论 -
Spring进阶-AOP注解开发
目录基于注解的 AOP 开发快速入门创建目标接口和目标类(内部有切点)创建切面类将目标类和切面类的对象创建权交给 spring在切面类中使用注解配置织入关系在配置文类中开启组件扫描和 AOP 的自动代理测试代码测试结果注解通知的类型企业开发经验综合案例案例介绍案例分析案例制作步骤案例制作核心代码案例后续思考与设计代理设计模式介绍静态代理和装饰者设计模式的区别相同点不同点静态代理动态代理技术JDK 的动态代理cglib 的动态代理代理模式的选择面试AOP是什么动态代理的分类在开发中经常的通知有哪些要想对某个方原创 2020-12-05 08:53:34 · 1367 阅读 · 0 评论 -
Spring进阶事物的传播行为
目录1 事物知识点回顾1.1 事物的四个特征1.2 事物的四个隔离级别2 编程式事务控制相关对象2.1 PlatformTransactionManager2.2 TransactionDefinition2.3 事务隔离级别2.4 事务传播行为(机制)2.5 事务隔离级别和事务传播行为(机制)个人理解2.6 TransactionStatus3 声明式事物3.1 概念3.2 开发步骤3.3 XML配置声明式事务的开发步骤3.3.1 配置平台事物管理器3.3.2 为spring提供的通知配置对应的配置信息,原创 2020-12-04 18:18:56 · 1108 阅读 · 0 评论 -
Spring进阶-AOP配置xml
目录1 Spring 的 AOP 简介1.1 OOP开发思路1.2 什么是 AOP1.3 AOP 的作用及其优势1.4 AOP 的底层实现1.5 AOP 相关术语2 基于AOP的开发步骤3 基于 XML 的 AOP 开发3.1 快速入门3.1.1 导入maven库3.1.2 创建目标接口和目标类3.1.3 创建切面类以及通知3.1.4 将目标类和切面类的对象创建权交给spring3.1.5 在 applicationContext.xml 中配置切面3.1.7 测试代码3.1.8 测试结果3.1.9 可能出原创 2020-12-04 18:17:18 · 897 阅读 · 0 评论 -
Spring入门-注解配置
目录注解开发1)注解驱动的意义1.1)什么是注解驱动1.2)注解驱动的弊端2)常用注解2.1)启动注解功能2.2)bean的定义2.3)bean的作用域2.4)bean的生命周期2.5)加载第三方资源2.6)bean的非引用类型属性注入2.7)bean的引用类型属性注入2.8)bean的引用类型属性注入2.9)bean的引用类型属性注入2.10)加载properties文件2.11)纯注解格式2.12)第三方bean配置与管理3)bean加载控制3.1)依赖加载**3.2)依赖加载应用场景**4)整合第三方原创 2020-12-04 17:49:32 · 1234 阅读 · 0 评论 -
Spring入门-IOC和XML配置
目录Spring入门1 Spring简介1.1 什么是框架1.2 框架的作用1.3 Spring是什么1.4 Spring的体系结构1.5 Spring的发展历史1.6 Spring容器概念(简单来说就是MAP)2 IoC简介2.1 优质程序代码的制作原则2.2 耦合与内聚2.3 工厂模式发展史2.4 Spring发展历程2.5 IoC3 入门案例3.1 案例环境说明3.2)IoC入门案例制作步骤3.2.1 IoC入门案例制作步骤-13.2.2 IoC入门案例制作步骤-23.2.3 IoC入门案例制作步骤-原创 2020-12-04 17:46:41 · 916 阅读 · 0 评论 -
由浅入深理解Spring的IOC机制和AOP机制
目录1 Spring是什么2 Spring发展史3 Spring的两大核心4 Spring的优势5 SpringIOC没有使用之前的问题6 SpringIOC系统的类与类之间彻底的解耦合7 Spring IOC框架,控制反转,依赖注入实例7.1 什么是IOC7.2 什么是DI7.3 Spring的生命周期8 配置Spring框架8.1 编写UserDao接口和实现类8.2 创建Spring配置文件8.3 在配置文件中配置bean标签,将对象的创建交..原创 2020-10-31 17:12:41 · 1252 阅读 · 0 评论 -
Spring模板对象Template
目录1 Spring模板对象2 JdbcTemplate2.1 JdbcTemplate基本使用-开发步骤2.2 JdbcTemplate基本使用-快速入门代码实现2.3 JdbcTemplate基本使用-spring产生模板对象分析2.4 JdbcTemplate基本使用-spring产生模板对象代码实现2.5 JdbcTemplate基本使用-spring产生模板对象代码实现(抽取jdbc.properties)2.6 JdbcTemplate基本使用-常用操作-更新操作2.7 JdbcTemplate原创 2020-07-19 09:56:17 · 1228 阅读 · 0 评论 -
SpringAOP介绍与使用
目录1.Spring 的 AOP 简介1.1 什么是 AOP1.2 AOP 的作用及其优势1.3 AOP 的底层实现1.4 AOP 的动态代理技术1.5 JDK 的动态代理1.6 cglib 的动态代理1.7 AOP 相关概念1.8 AOP 开发明确的事项1)需要编写的内容2)AOP 技术实现的内容3)AOP 底层使用哪种代理方式1.9 知识要点2. 基于 XML 的 AOP 开发2.1 快速入门2.2 XML 配置 AOP 详解1) 切点表达式的写法2) 通知的类型3) 切点表达式的抽取2.3 知识要点3原创 2020-07-18 17:22:14 · 693 阅读 · 0 评论 -
SpringIoC和DI注解开发
目录1.Spring配置数据源1.1 数据源(连接池)的作用1.2 数据源的手动创建1.3 Spring配置数据源1.4 抽取jdbc配置文件1.5 知识要点2. Spring注解开发2.1 Spring原始注解2.2 Spring新注解3. Spring整合Junit3.1 原始Junit测试Spring的问题3.2 上述问题解决思路3.3 Spring集成Junit步骤3.4 Spring集成Junit代码实现1.Spring配置数据源1.1 数据源(连接池)的作用数据源(连接池)是提高程序原创 2020-07-18 17:12:48 · 723 阅读 · 0 评论 -
Spring学习中用到的一些面向对象的知识
目录1. 构造方法1.1 构造方法概述【理解】1.2 构造方法的注意事项【理解】1.3 标准类制作【应用】2 static(应用)2.1 static访问特点(掌握)3.反射3.1反射的概述【理解】3.2获取Class类对象的三种方式【应用】3.2.1三种方式分类3.2.2示例代码3.3反射获取构造方法并使用【应用】3.3.1Class类获取构造方法对象的方法1. 构造方法 1.1 构造方法概述【理解】 构造方法是一种特殊的方法作用:.原创 2020-07-18 17:03:41 · 873 阅读 · 0 评论 -
Spring依赖注入与文件配置
目录1 Bean标签基本配置2 Bean标签范围配置3 Bean生命周期配置4 Bean实例化三种方式5 Bean的依赖注入入门6 Bean的依赖注入概念7 Bean的依赖注入方式8 Bean的依赖注入的数据类型9 引入其他配置文件(分模块开发)1 Bean标签基本配置用于配置对象交由Spring 来创建。默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功。基本属性:id:Bean实例在Spring容器中的唯一标识class:Bean的全限定名称2 Bean标签范围配原创 2020-07-16 20:49:01 · 746 阅读 · 0 评论 -
spring快速入门
目录1 Spring程序开发步骤2 导入Spring开发的基本包坐标3 编写Dao接口和实现类4 创建Spring核心配置文件5 在Spring配置文件中配置UserDaoImpl6 使用Spring的API获得Bean实例7 项目结构8 运行效果9 Spring注解之@Autowired:Setter 方法上使用@Autowired注解1 Spring程序开发步骤①导入 Spring 开发的基本包坐标②编写 Dao 接口和实现类③创建 Spring.原创 2020-07-16 20:23:51 · 868 阅读 · 0 评论 -
Spring环境搭建
目录1 创建文件2 打开文件3 创建标准的web文件结构1 创建文件2 打开文件3 右键new一个module此时项目缺少webapp选择项目编译器输出:此路径用于存储所有项目编译结果。在此路径下创建与每个模块对应的目录。此目录包含两个子目录:生产和测试,分别用于生产代码和测试源代码。可以根据需要为每个模块配置特定于模块的编译器输出路径。选择后修改路径3 创建标准的web文件结构同理创建...原创 2020-07-16 18:01:38 · 717 阅读 · 0 评论 -
Spring概况和框架介绍
目录1 spring介绍2 spring发展历程3 spring带来的改变4 spring 的架构分层5 依赖注入6 控制反转7 AOP面向切面编程8 什么是框架8.1 为什么要使用软件框架8.2 spring下载1 spring介绍spring框架 是一个轻量级的解决方案,并且提供了java企业级的构建服务,它使得java程序开发变得简单高效。...原创 2020-05-03 11:27:28 · 851 阅读 · 0 评论