Spring
文章平均质量分 88
Spring为了解决企业应用开发的复杂性而创建的,它是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring能够使用基本的JavaBean来完成以前只可能由EJB完成的事情。
洒家肉山大魔王
学习是一辈子的事情,去身上的戾气也是一辈子的修炼。
展开
-
Spring循环依赖,我本来都不想写的,但网上好多错误观点。
今天我们来盘一下 Spring的循环依赖,网上相应的文章很多,但是我还是想写一下,因为有些文章的观点在我看来是错的。比如有构造器就无法解决循环依赖? 一定要三级缓存才能解决循环依赖? 到底为什么要三级缓存?好了,话不多少,我们来盘一盘。1. 什么是循环依赖?什么是循环依赖?举个栗子:@Servicepublic class A { @Autowired private B b;}@Servicepublic class B { @Autowired.转载 2022-03-11 20:51:03 · 177 阅读 · 0 评论 -
Spring IoC容器初始化过程分析
IoC容器是什么?IoC文英全称Inversion of Control,即控制反转,我么可以这么理解IoC容器: “把某些业务对象的的控制权交给一个平台或者框架来同一管理,这个同一管理的平台可以称为IoC容器。”我们刚开始学习spring的时候会经常看到的类似下面的这代码:ApplicationContext appContext = new ClassPathXmlApplicationContext("cjj/models/beans.xml");Person p = (Perso转载 2022-02-16 21:03:38 · 254 阅读 · 0 评论 -
Spring的事务注解@Transactional 出现的6种失效场景
前言昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。@Transactional注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。一、事务事务管理在系统开发中是不可缺少...转载 2021-12-06 22:10:14 · 684 阅读 · 1 评论 -
Spring的注解 @Bean用法
随着SpringBoot的流行,基于注解式开发的热潮逐渐覆盖了基于XML纯配置的开发,而作为Spring中最核心的bean当然也能够使用注解的方式进行表示。所以本篇就来详细的讨论一下作为Spring中的Bean到底都有哪些用法。@Bean 基础声明Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。S原创 2020-12-26 20:08:09 · 27406 阅读 · 0 评论 -
Spring的注解@Autowired和@Resource的区别
自动绑定(Autowiring)模式模式 说明 no 默认值,未激活Autowiring,需要手动执行依赖注入对象 byName 根据被注入属性的名称作为Bean名称进行依赖查找,并将对象设置到该属性 byType 根据被注入属性的类型作为依赖类型进行查找,并将对象设置到该属性 constructor 特殊的byType类型,用户构造器参数 @Autowired是spring的注解,@Resource是JSR-250中...原创 2021-04-08 21:25:41 · 766 阅读 · 0 评论 -
(14)Spring框架----Spring 注解机制和XML配置机制之间的比较
Spring的Annotation注解机制与XML注入机制本质上是相同的。Annnotation简洁一些,遵循一些Coc.有些人喜欢Annotation, 这样bean的声明,注册,注入都在“刚好”的地方出现,很自然。也有些人喜欢XML注入机制,认为这种方法集中声明在一起,能一下看到关系网,清晰明了。、从这一点看,这两种选择有点个人口味的意思。刚才自己敲代码分别实现了一下Annot...原创 2019-05-04 17:03:24 · 2040 阅读 · 3 评论 -
(13)Spring框架----Spring与Mybatis的框架整合(XML配置详解)
目前大部分的Java互联网项目,都是使用Spring+SpringMVC+MyBatis搭建平台的。使用SpringIOC可以有效管理各类Java资源,达到即插即拔功能;通过AOP框架,数据库事务可以委托给Spring处理,消除很大一部分事务代码,配合MyBatis的高灵活、可配置、可优化SQL等特性,完全可以构建出高性能的大型网站。Spring与MyBatis的集成使得业务层和模型层得到了更...原创 2019-04-14 15:15:29 · 1496 阅读 · 0 评论 -
(12)Spring框架----Spring框架是如何配置数据库资源的
1、JDBC代码的弊端先来简单看一下public class JdbcDemo01 { public static void main(String[] args) throws SQLException, ClassNotFoundException { Class.forName("com.mysql.jdbc.Driver"); String url = "...原创 2019-04-14 12:05:43 · 663 阅读 · 0 评论 -
(11)Spring框架----基于@AspectJ注解方式和基于XML配置方式开发AOP
AOP并不是Spring框架特有的,Spring只是支持AOP编程的框架之一。每一个框架对AOP的支持各有特点,有些AOP能够对方法的参数进行拦截,有些AOP对方法进行拦截。而Spring AOP是一种基于方法拦截的AOP,换句话说Spring只能支持方法拦截的AOP。在Spring中有4中方式去实现AOP的拦截功能。❤使用ProxyFactoryBean和对应的接口实现AOP❤使用XML...原创 2019-04-13 23:41:05 · 1209 阅读 · 0 评论 -
(10)Spring框架----AOP面向切面编程的实现原理
AOP(Aspect Orient Programming),一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理。静态代理的代表为AspectJ,是编译期实...原创 2019-04-13 10:10:07 · 1553 阅读 · 0 评论 -
(9)Spring框架----AOP的HelloWorld
1 准备环境首先准备开发需要的jar包,请到spring-framework-3.0.5.RELEASE-dependencies.zip和spring-framework-3.0.5.RELEASE-with-docs中查找如下jar包:org.springframework.aop-3.0.5.RELEASE.jarcom.springsource.org.aspectj.wea...原创 2019-04-09 00:23:56 · 440 阅读 · 0 评论 -
(8)Spring框架----面向切面编程(AOP)的那些基础知识
1 AOP是什么 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平台,面对这样的支付系统该如何解决呢?传统解决方案:1)日志部分提前公共类LogUtils,定义“longPayBegin”方法用于记录支付开始日志,“logPayEnd”用于记录支付结果...原创 2019-04-07 17:16:45 · 521 阅读 · 0 评论 -
(7)Spring框架----面向切面编程(一个简单的约定游戏)
如果说IoC是Spring的核心,那么面向切面编程就是Spring最为重要的功能之一了,在数据库事务中切面编程被广泛使用。一切要从Spring AOP的底层技术----动态代理技术说起。一个简单的约定游戏1、约定规则先来一个Interceptor接口:/** * 拦截器 */public interface Interceptor{ public void bef...原创 2019-04-07 17:00:10 · 680 阅读 · 0 评论 -
(6)Spring框架----Bean生命周期分析(详细)
实现方式当我们需要在bean初始化和销毁时执行特定的动作时,Spring为我们提供了两个不同的方式来实现:bean继承InitializingBean和DisposableBean接口。接口InitializingBean的afterPropertiesSet()会在属性设置方法调用完成后调用;接口DisposableBean的destroy()方法会在bean销毁时(超出作用域)执行;...原创 2019-04-02 21:54:19 · 2626 阅读 · 0 评论 -
(5)Spring框架----Bean作用域
一、Spring中bean的作用域什么是作用域呢?即“scope”,在面向对象程序设计中一般指对象或变量之间的可见范围。而在Spring容器中是指其创建的Bean对象相对于其他Bean对象的请求可见范围。Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”、“session”、“global session”三种web作用域;Spr...原创 2019-04-07 15:49:41 · 5007 阅读 · 0 评论 -
(4)Spring框架----依赖注入(DI)
Spring发展到现在遵循“约定大于配置”原则,在基本的应用配置上(如数据库配置),建议采用XML配置方式;在业务逻辑处理上,建议采用注解方式。回顾过往,XML配置方式真的让人又爱又恨。所以,本节通篇采用XML配置方式。1.DI的配置使用1.1 依赖和依赖注入传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系:泛化:表示类与类之间的继承关系、接口与...原创 2019-04-02 21:47:03 · 2275 阅读 · 0 评论 -
(3)Spring框架----Bean实例化的几种方式对比
在学习Bean实例化前,先让我们来看下IoC容器到底是如何工作。在此我们以xml配置方式来分析一下:一、准备配置文件:就像前边Hello World配置文件一样,在配置文件中声明Bean定义也就是为Bean配置元数据。二、由IoC容器进行解析元数据:IoC容器的Bean Reader读取并解析配置文件,根据定义生成BeanDefinition配置元数据对象,IoC容器根据BeanDe...原创 2019-04-02 21:20:14 · 7640 阅读 · 0 评论 -
(2)Spring框架----IOC基础快速入门
《跟开涛学Spring》1. Spring架构图核心容器:包括Core、Beans、Context、EL模块。Core模块:封装了框架依赖的最底层部分,包括资源访问、类型转换及一些常用工具类。Beans模块:提供了框架的基础部分,包括反转控制和依赖注入。其中Bean Factory是容器核心,本质是“工厂设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而...原创 2019-04-02 20:52:22 · 1875 阅读 · 0 评论 -
(1)Spring框架----通俗易懂的IoC原理
原文链接在此:https://blog.csdn.net/m13666368773/article/details/78021261. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,...原创 2018-12-27 22:17:02 · 3155 阅读 · 0 评论