
Spring
文章平均质量分 91
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。
Mr.D.Chuang
时代各有不同,青春一脉相承。一起学习,一起奋进,一起进步,砥砺前行。
展开
-
Spring中Autowired原理
构造方法参数Autowire:BeanClass可以在构造方法上标注@Autowired注解,Spring在创建Bean实例时将自动为其注入依赖参数;Spring会优先使用标注@Autowired注解的构造方法;当一个构造方法标注了@Autowired注解且required=true时,其余构造方法不允许再标注@Autowired注解;当多个构造方法标注了@Autowired注解且required=false时,它们会成为候选者,Spring将选择具有最多依赖项的构造方法;如果没有候选者可以满足,Sprin原创 2024-01-04 07:45:00 · 855 阅读 · 0 评论 -
Spring项目AOP事务管理
Spring项目AOP事务管理。事务作用:在数据层保障一系列的数据库操作同成功同失败;Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败。Spring为了管理事务,提供了一个平台事务管理器PlatformTransactionManager,commit是用来提交事务,rollback是用来回滚事务。PlatformTransactionManager只是一个接口,Spring还为其提供了一个具体的实现DataSourceTransactionManager。原创 2022-10-30 16:36:27 · 272 阅读 · 0 评论 -
Spring项目AOP总结
Spring项目AOP总结。AOP的核心概念:AOP(Aspect Oriented Programming)面向切面编程,一种编程范式。作用:在不惊动原始设计的基础上为方法进行功能增强。切入点表达式标准格式:动作关键字(访问修饰符 返回值 包名.类/接口名.方法名(参数)异常名)。五种通知类型(前置通知、后置通知、环绕通知、返回后通知、抛出异常后通知)。获取切入点方法的参数,所有的通知类型都可以获取参数;获取切入点方法返回值,前置和抛出异常后通知是没有返回值,后置通知可有可无,所以不做研究;获取切入点原创 2022-10-30 08:00:00 · 126 阅读 · 0 评论 -
Spring项目AOP百度网盘密码数据兼容处理
Spring项目AOP百度网盘密码数据兼容处理。需求: 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理。当我们从别人发给我们的内容中复制提取码的时候,有时候会多复制到一些空格,直接粘贴到百度的提取码输入框,但是百度那边记录的提取码是没有空格的,这个时候如果不做处理,直接对比的话,就会引发提取码不一致,导致无法访问百度盘上的内容,所以多输入一个空格可能会导致项目的功能无法正常使用。AOP有五种通知类型,该使用哪种呢?我们的需求是将原始方法的参数处理后在参与原始方法的调用,能做这件事的就只有环绕通知。原创 2022-10-29 22:26:55 · 180 阅读 · 0 评论 -
Spring项目AOP通知获取数据
AOP通知获取数据。获取切入点方法的参数,所有的通知类型都可以获取参数,JoinPoint:适用于前置、后置、返回后、抛出异常后通知,ProceedingJoinPoint:适用于环绕通知;获取切入点方法返回值,前置和抛出异常后通知是没有返回值,后置通知可有可无,所以不做研究;获取切入点方法运行异常信息,前置和返回后通知是不会有,后置通知可有可无,所以不做研究。原创 2022-10-29 20:54:06 · 880 阅读 · 0 评论 -
Spring项目AOP业务层接口执行效率
AOP业务层接口执行效率。具体实现的思路:(1) 开始执行方法之前记录一个时间;(2) 执行方法;(3) 执行完方法之后记录一个时间;(4) 用后一个时间减去前一个时间的差值,就是我们需要的结果。说明:原始方法如果只执行一次,时间太快,两个时间差可能为0,所以我们要执行万次来计算时间差。补充说明:当前测试的接口执行效率仅仅是一个理论值,并不是一次完整的执行过程。具体的实际值是有很多因素共同决定的。原创 2022-10-29 17:36:26 · 675 阅读 · 0 评论 -
Sping项目AOP通知类型
AOP通知描述了抽取的共性功能,根据共性功能抽取的位置不同,最终运行代码时要将其加入到合理的位置通知具体要添加到切入点的哪里?共提供了5种通知类型:前置通知、后置通知、环绕通知、返回后通知、抛出异常后通知。前置通知:追加功能到方法执行前,类似于在代码1或者代码2添加内容;后置通知:追加功能到方法执行后,不管方法执行的过程中有没有抛出异常都会执行,类似于在代码5添加内容;返回后通知:追加功能到方法执行后,只有方法正常执行结束后才进行,类似于在代码3添加内容,如果方法执行抛出异常后才会被添加;环绕通知:环绕通原创 2022-10-28 22:02:45 · 115 阅读 · 0 评论 -
Spring项目AOP切入点表达式
Spring项目AOP切入点表达式。对于AOP中切入点表达式,三个内容需要介绍,分别是语法格式、通配符和书写技巧。切入点:要进行增强的方法;切入点表达式:要进行增强的方法的描述方式。书写技巧有:描述切入点通常描述接口,而不描述实现类,如果描述到实现类,就出现紧耦合了;访问控制修饰符针对接口开发均采用public描述(可省略访问控制修饰符描述);返回值类型对于增删改类使用精准类型加速匹配,对于查询类使用\*通配快速描述;包名书写尽量不使用..匹配,效率过低,常用\*做单个包描述匹配,或精准匹配等等。原创 2022-10-27 08:15:00 · 348 阅读 · 0 评论 -
Spring项目AOP工作流程
Spring项目AOP工作流程。由于AOP是基于Spring容器管理的bean做的增强,所以整个工作过程需要从Spring加载bean说起。流程1:Spring容器启动;流程2:读取所有切面配置中的切入点;流程3:初始化bean;流程4:获取bean执行方法。目标对象(Target):原始功能去掉共性功能对应的类产生的对象,这种对象是无法直接完成最终工作的。代理(Proxy):目标对象无法直接完成工作,需要对其进行功能回填,通过原始对象的代理对象实现。原创 2022-10-26 21:09:09 · 972 阅读 · 0 评论 -
Spring项目AOP入门案例
Spring项目AOP入门案例。案例设定:测算接口执行效率,在方法执行前输出当前系统时间。思路分析需求明确后,具体该如何实现,都有哪些步骤,我们先来分析下:1.导入坐标(pom.xml);2.制作连接点(原始操作,Dao接口与实现类);3.制作共性功能(通知类与通知);4.定义切入点;5.绑定切入点与通知关系(切面)。原创 2022-10-25 08:15:00 · 320 阅读 · 0 评论 -
Spring项目AOP简介
Spring有两个核心的概念,一个是IOC/DI,一个是AOP。AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构。OOP(Object Oriented Programming)面向对象编程。OOP是一种编程思想,那么AOP也是一种编程思想,编程思想主要的内容就是指导程序员该如何编写程序,所以它们两个是不同的编程范式。原创 2022-10-24 08:15:00 · 143 阅读 · 0 评论 -
Spring项目整合Mybatis/Junit
Spring项目整合Mybatis/Junit。Spring整合Mybatis,大体需要做两件事,第一件事是:Spring要管理MyBatis中的SqlSessionFactory;第二件事是:Spring要管理Mapper接口的扫描。Spring整合Junit,Junit是一个搞单元测试用的工具,它不是我们程序的主体,也不会参加最终程序的运行,从作用上来说就和之前的东西不一样,它不是做功能的,看做是一个辅助工具就可以了。原创 2022-10-23 20:34:25 · 113 阅读 · 0 评论 -
什么是响应式编程
响应式编程(Reactive Programming 或称反应式编程)是一种流行的编程方法,编写代码是基于对变化的反应。它的灵感来自于我们的日常生活,也即我们如何采取行动以及与他人沟通。我们在执行日常生活活动时,我们会尽可能多任务,但大脑无法处理多任务,不管我们如何努力去做。我们人类实现多任务的唯一办法是在时间线上在任务之间切换。事实上,我们总是切换任务,即使我们没有意识到它。原创 2022-10-15 13:30:00 · 1266 阅读 · 0 评论 -
Spring项目IOC/DI注解开发管理第三方bean
Spring项目IOC/DI注解开发管理第三方bean。第三方的类,这些类都是在jar包中,没有办法在类上面添加注解,这个时候该怎么办?注解开发管理第三方bean、引入外部配置类(使用包扫描引入、使用@Import引入)、注解开发实现为第三方bean注入资源。原创 2022-10-23 08:00:00 · 164 阅读 · 0 评论 -
Spring项目IOC/DI注解开发
Spring项目IOC/DI注解开发。Spring到底是如何简化代码开发的呢?注解开发定义bean、纯注解开发模式。注解开发bean作用范围与生命周期管理。Bean的作用范围:@Scope设置该类创建对象的作用范围,可用于设置创建出的bean是否为单例对象;Bean的生命周期:@PostConstruct设置该方法为初始化方法,@PreDestroy设置该方法为销毁方法。原创 2022-10-22 17:26:55 · 233 阅读 · 0 评论 -
Spring项目核心容器
Spring项目核心容器。这里所说的核心容器,大家可以把它简单的理解为ApplicationContext。如何创建容器?创建好容器后,如何从容器中获取bean对象?容器类的层次结构是什么?BeanFactory是什么?容器的创建方式、Bean的三种获取方式、容器类层次结构、BeanFactory的使用。核心容器总结:容器相关、bean相关、依赖注入相关。原创 2022-10-22 08:15:00 · 149 阅读 · 0 评论 -
Spring IOC&DI配置管理第三方bean
使用Spring的IOC容器来管理Druid连接池对象,使用Spring的IOC容器来管理C3P0连接池对象。Spring框架如何从配置文件中读取属性值来配置就是接下来要解决的问题。如何开启context命名空间?如何加载properties配置文件?如何在applicationContext.xml引入properties配置文件中的值?需求:使用Spring的IOC容器来管理Druid连接池对象:1.使用第三方的技术,需要在pom.xml添加依赖2.在配置文件中将【第三方的类】制作成一个bean原创 2022-10-21 21:12:47 · 309 阅读 · 0 评论 -
Spring项目自动装配&集合注入
什么是依赖自动装配?IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配。自动装配方式有哪些?按类型(常用)、按名称、按构造方法、不启用自动装配。集合中既可以装简单数据类型也可以装引用数据类型,对于集合使用进行注入。最后对于依赖注入,需要注意一些其他的配置特征:自动装配用于引用类型依赖注入,不能对简单类型进行操作;使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用;自动装配优先级低于setter注入与构造器注入,同时出现时自动装配配置失效原创 2022-10-19 20:53:10 · 396 阅读 · 0 评论 -
Spring项目构造器注入
基于Spring为我们提供了两种注入方式,分别是:setter注入(简单类型、引用类型)、构造器注入(简单类型、引用类型)。两种参数的注入方式,具体我们该如何选择呢?强制依赖使用构造器进行,使用setter注入有概率不进行注入导致null对象出现;可选依赖使用setter注入进行,灵活性强;实际开发过程中还要根据实际情况分析,如果受控对象没有提供setter方法就必须使用构造器注入;如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用setter注入完成可选依赖的注入;原创 2022-10-19 08:15:00 · 1218 阅读 · 0 评论 -
Spring项目setter注入
Spring中有哪些注入方式?向一个类中传递数据的方式有几种?普通方法(set方法)、构造方法。依赖注入描述了在容器中建立bean与bean之间的依赖关系的过程,如果bean运行需要的是数字或字符串呢?引用类型、简单类型(基本数据类型与String)。Spring就是基于上面这些知识点,为我们提供了两种注入方式,分别是:setter注入(简单类型、引用类型)、构造器注入(简单类型、引用类型)。原创 2022-10-18 08:45:00 · 1912 阅读 · 0 评论 -
Spring项目bean的生命周期
对于生命周期,我们主要围绕着 bean生命周期控制来介绍:首先理解下什么是生命周期?从创建到消亡的完整过程,例如人从出生到死亡的整个过程就是一个生命周期。bean生命周期是什么?bean对象从创建到销毁的整体过程。bean生命周期控制是什么?在bean创建后到销毁前做一些事情。现在我们面临的问题是如何在bean的创建之后和销毁之前把我们需要添加的内容添加进去。原创 2022-10-17 09:15:00 · 332 阅读 · 0 评论 -
Spring项目bean实例化
对象已经能交给 Spring的 IOC容器来创建了,但是容器是如何来创建对象的呢?就需要研究下 bean的实例化过程,在这块内容中主要解决两部分内容,分别是:bean是如何创建的?实例化bean的三种方式,构造方法,静态工厂和实例工厂。bean本质上就是对象,对象在new的时候会使用构造方法完成,那创建bean也是使用构造方法完成的。基于这点出发,我们来验证spring中bean的三种创建方式。原创 2022-10-17 08:15:00 · 297 阅读 · 0 评论 -
Spring项目bean基础配置
对于bean的配置中,主要有bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容:1. bean基础配置(id与class);2. bean的name属性(别名配置);3. bean作用范围scope配置。原创 2022-10-16 08:15:00 · 942 阅读 · 0 评论 -
Spring项目DI入门案例
要想实现依赖注入,必须要基于IOC管理Bean。需求:基于IOC入门案例,在UserServiceImpl类中删除new对象的方式,使用Spring的DI完成Dao层的注入。1.删除业务层中使用new的方式创建的dao对象;2.在业务层提供UserDao的setter方法;3.在配置文件中添加依赖注入的配置;4.运行程序调用方法;原创 2022-10-15 16:59:53 · 258 阅读 · 0 评论 -
Spring项目IOC入门案例
Spring是使用容器来管理bean对象的,那么管什么?如何将被管理的对象告知IOC容器?被管理的对象交给IOC容器,要想从容器中获取对象,就先得思考如何获取到IOC容器?IOC容器得到后,如何从容器中获取bean?使用Spring导入哪些坐标?原创 2022-10-15 15:15:00 · 229 阅读 · 0 评论 -
Spring介绍及相关概念理解
从官网我们可以大概了解到:Spring能做什么:用以开发web、微服务以及分布式系统等,光这三块就已经占了JavaEE开发的九成多。Spring并不是单一的一个技术,而是一个大家族,可以从官网的Projects中查看其包含的所有技术。Spring发展到今天已经形成了一种开发的生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能。Spring已形成了完整的生态圈,也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring有若干个项目,可以根据需要自行选择,把这些个项目组合原创 2022-10-13 22:24:02 · 311 阅读 · 0 评论