![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring框架
云计算小菜鸟
这个作者很懒,什么都没留下…
展开
-
Spring框架学习笔记-ThreadLocal基础知识
在前面我们已经说过,Spring通过各种模板降低了开发者使用各种数据持久化技术的难度。这些模板类都是线程安全的,也就是说,多个DAO可以复用同一个模板实例而不会发生冲突。我们使用模板类访问底层数据,根据持久化技术的不同,模板类需要绑定数据连接或会话的资源。但这些资源本身是非线性安全的,也就是说它们不能在同一时刻被多个线程共享,虽然模板类通过资源池获取数据连接或对话,但资源池本身解决的是数据连接或...原创 2020-01-15 21:15:16 · 363 阅读 · 0 评论 -
Spring框架学习笔记-Spring对DAO的支持
1.Spring的DAO理念DAO(Data Access Object)是用于访问数据的对象。在大多数情况下,我们会将数据保存在数据库中,但这并不是唯一的选择,用户也可以将数据存储到文件中或这LDAP中。DAO不但屏蔽了数据存储的最终介质的不同,也屏蔽了具体的实现技术的不同。只要为数据访问定义好DAO接口,并使用具体的技术实现DAO接口的功能,用户就可以在不同的实现技术之间平滑的切换。2.统...原创 2020-01-13 18:46:18 · 385 阅读 · 0 评论 -
Spring框架学习笔记-创建切面
1.增强与切面在介绍增强时,我们注意到一个问题:增强被织入到目标类的所有方法中。假设我们希望有选择地织入到目标类某些特定的方法中,就需要使用切点进行目标连接点的定位了。描述连接点是进行AOP编程最主要的一项工作。Spring通过org.springframework.aop.Pointcut接口描述切点,Pointcut有两个方法:getClassFilter() 以及 matches()...原创 2020-01-10 11:38:07 · 166 阅读 · 0 评论 -
Spring框架学习笔记-创建增强类
Spring使用增强类定义横切逻辑,同时由于Spring只支持方法连接点,增强还包括了在方法的哪一点加入横切代码的方位信息,所以增强既包括横切逻辑,还包括部分连接点的信息。1.增强类型AOP联盟为增强定义了org.aopalliance.aop.Advice接口前置增强: org.springframework.aop.BeforeAdvice,代表前增强,表示在目标方法执行前实施增强。后...原创 2020-01-01 17:03:39 · 132 阅读 · 0 评论 -
Spring框架学习笔记-AOP实现原理
JDK动态代理实现JDK的动态代理主要涉及到java.lang.reflect包中的两个类:Proxy以及InvocationHandler。JDK的动态代理实现AOP的步骤为:1.创建一个实现接口InvocationHandler的类,它必须实现invoke方法2.创建被代理的类以及接口3.通过Proxy的静态方法newProxyInstance(ClassLoaderloader,...原创 2019-12-30 16:48:23 · 111 阅读 · 0 评论 -
Spring框架学习笔记-引用Bean的属性值
将应用系统的配置信息放在配置文件中并非总是最合适的。如果应用系统是以集群方式部署的,或者希望在运行期动态调整应用系统的某些属性,这时,将配置信息放在数据库中不但方便集中管理,而且可以通过应用系统的管理界面动态维护,有效增强应用系统的可维护性,方便管理。在Spring3.0中,我们可以通过类似于#{beanName.benaProp}的方式方便地引用另一个Bean的值。package com.b...原创 2019-11-22 20:54:48 · 127 阅读 · 0 评论 -
Spring框架学习笔记-使用外部属性
在进行数据源或邮件服务器等资源的配置时,用户可以直接在Spring的配置文件中配置用户名和密码及连接地址等信息。但更好的一种做法是将这些配置信息独立到一个外部属性文件中,并在Spring配置文件中通过形如 $ {user}、$ {password}等占位符引用属性文件中的属性项,这种配置的方式拥有两个显而易见的好处:首先是可以减少维护的工作量,资源的配置信息可以被多个应用共享,在多个应用使用同一...原创 2019-11-22 17:26:54 · 149 阅读 · 0 评论 -
Spring框架学习笔记-属性编辑器
因为Spring注入的时候,属性值都是文本类型的,注入到Bean中肯定需要类型转换的。属性编辑器就是用于属性值与文本值之间的互相转换,每个属性编辑器仅仅适用于某一类属性。Spring中已经为我们注册了很多的编辑器,如果Spring提供的属性编辑器不能够满足需求,那么我们就需要进行自定义属性编辑器并注册到Spring中了。“属性编辑器”这个名字可能会让人误以为是一个带用户界面的输入器,其实属性编辑...原创 2019-11-21 19:53:22 · 249 阅读 · 0 评论 -
Spring框架学习笔记-Spring容器技术内幕
1.内部工作机制Spring的AbstractApplicationContext是ApplicationContext抽象实现类,该抽象类的refresh()方法定义了Spring容器在加载配置文件后的各项处理过程,这些处理过程清晰刻画了Spring容器启动时所执行的各项操作。下面,我们来看一下refresh()内部定义了哪些执行逻辑。1.初始化BeanFactory:根据配置文件实例化Be...原创 2019-11-20 10:26:19 · 130 阅读 · 0 评论 -
Spring框架学习笔记-Bean不同配置方式比较
原创 2019-11-19 21:05:27 · 92 阅读 · 0 评论 -
Spring框架学习笔记-基于Java类的配置
1.使用Java类提供Bean定义信息普通的POJO只要标注@Configuration注解,就可以为Spring容器提供Bean定义的信息了,每个标注了@Bean的类方法都相当于提供一个Bean的定义信息。package com.baobaotao.conf;import org.springframework.context.annotation.Bean;import org.spr...原创 2019-11-19 15:52:03 · 185 阅读 · 0 评论 -
Spring框架学习笔记-基于注解的配置
1.使用注解定义Bean我们知道,Spring容器成功启动的三大要件是:Bean定义信息、Bean实现类以及Spring本身。如果要采用基于XML的配置,Bean定义信息和Bean实现类本身是分离的,而采用基于注解的配置方式时,Bean定义信息即通过在Bean的实现类上标注注解实现。下面是使用注解定义一个DAO(数据访问对象)的Bean:package com.baobaotao.anno;...原创 2019-11-19 11:11:06 · 143 阅读 · 0 评论 -
Spring框架学习笔记-FactoryBean
在我们的开发工作中应该都见过或使用过FactoryBean这个类,也许你会看成了BeanFactory这个类。FactoryBean和BeanFactory虽然长的很像,但是他们的作用确实完全不像。这里你可以想象一下,你会在什么样的场景下使用FactoryBean这个接口?FactoryBean是一个工厂Bean,可以生成某一个类型Bean实例,它最大的一个作用是:可以让我们自定义Bean的创建过...转载 2019-11-18 16:13:50 · 93 阅读 · 0 评论 -
Spring框架学习笔记-Bean作用域
在配置文件中定义Bean时,用户不但可以配置Bean的属性以及相互的依赖关系,还可以定义Bean的作用域。作用域将对Bean的生命周期和创建方式产生影响,下面将列出Spring支持的所有作用域类型:类别说明singleton在Spring IoC容器中仅存在一个Spring实例,Bean以单实例的方式存在prototype每次从容器中调用Bean时,都返回一个新的实...原创 2019-11-18 15:13:35 · 122 阅读 · 0 评论 -
Spring框架学习笔记-<bean>之间的关系
不但可以通过< ref >引用另一个Bean,建立起Bean和Bean之间的依赖关系,相似的,< bean >元素标签之间也可以建立类似的关系,完成一些特殊的功能。1.继承OOP思想告诉我们,如果多个类拥有相同的方法和属性,则我们可以引入一个父类,在父类中定义这些共同的方法和属性,以消除重复的代码。相似的,如果多个< bean >存在相同的配置信息,Spri...原创 2019-11-18 10:13:46 · 157 阅读 · 0 评论 -
Spring框架学习笔记-方法注入
1.singleton与prototype作用域<bean id="person1" class="com.bean.life.Person"> <property name="name"> <value>小明</value> </property></bean><bean id=...原创 2019-11-18 08:59:40 · 118 阅读 · 0 评论 -
Spring框架学习笔记-注入参数详解
在Spring配置文件中,用户不但可以将String、int等字面值注入到Bean中,还可以将集合、Map等类型的数据注入到Bean中,此外还可以注入配置文件中其他定义的Bean。1.字面值所谓“字面值”一般是指可用字符串表示的值,这些值可以通过< value >元素标签进行注入。在默认情况下,基本数据类型及其封装类、String等类型都可以采取字面注入的方式。在下面的示例中,我...原创 2019-11-17 11:32:17 · 245 阅读 · 0 评论 -
Spring框架学习笔记-依赖注入
1.属性注入属性注入及通过setXXX()方法注入Bean的属性值或是依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式。属性注入要求Bean提供一个默认的构造函数 ,并为需要注入的属性提供对应的Setter方法,Spring先调用Bean的默认构造函数实例化Bean对象,然后通过反射的方式,调用Setter方法注入属性值。来看一个简单的例子:...原创 2019-11-11 21:31:03 · 224 阅读 · 0 评论 -
Spring框架笔记-Bean基本配置
要使应用程序中的Spring容器成功启动,需要以下三方面的条件都具备:1.Spring框架的类包都已经放在应用程序的类路径下。2.应用程序为Spring提供了完备的Bean配置信息。3.Bean的类都已经放到应用程序的类路径下。Spring启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的...原创 2019-11-07 14:59:12 · 163 阅读 · 0 评论 -
Spring框架学习笔记-Bean的生命周期
1.实例化Bean对象根据配置情况调用Bean构造函数或工厂方法实例化Bean;2.设置对象属性调用Bean的属性设置方法设置属性值;3.工厂调用setBeanName()传递Bean的ID如果Bean实现了org.springframework.beans.factory.BeanNameAware接口,将调用setBeanName()接口方法,将配置文件中该Bean对应的名称设置到B...原创 2019-11-06 17:15:29 · 119 阅读 · 0 评论 -
Spring框架笔记-理解Spring容器、BeanFactory以及ApplicationContext
1.Spring容器spring容器可以理解为生产对象(OBJECT)的地方,在这里容器不只是帮我们创建了对象那么简单,它负责了对象的整个生命周期–创建、装配、销毁。而这里对象的创建管理的控制权都交给了Spring容器,所以这是一种控制权的反转,称为IOC容器,而这里IOC容器不只是Spring才有,很多框架也都有该技术。2.BeanFactory和ApplicationContext之间的关...转载 2019-11-05 08:58:55 · 209 阅读 · 0 评论 -
Spring框架学习笔记-BeanFactory
BeanFactory是Spring框架最为核心的接口,它提供了高级IoC的配置机制。BeanFactory使管理不同类型的Java对象成为可能,ApplicationContext建立在BeanFactory的基础之上,提供了更多面向应用的功能。我们一般称BeanFactory为IoC容器,而称ApplicationContext为应用上下文。对于两者的用途,我们可以简单地划分:BeanFa...原创 2019-12-30 16:58:48 · 298 阅读 · 0 评论 -
Spring框架学习笔记-资源的访问
1.资源抽象接口JDK所提供的访问资源的类(如Java.net.URL、File等)并不能很好地满足各种底层资源的访问需求,比如缺少从类途径或者Web容器的上下文中获取资源的操作类。有鉴于此,Spring设计了一个Resource接口,它为应用提供了更强的访问底层资源的能力。该接口拥有对应不同资源类型的实现类。boolean exists()://资源是否存在boolean isOpen()...原创 2019-11-04 09:46:32 · 125 阅读 · 0 评论 -
Spring框架学习笔记-IoC概述
IoC(Inverse of Control)控制反转:是Spring容器的内核,AOP、声明式事务等功能在此基础上开花结果。但是IoC这个重要的概念却比较晦涩难懂。IoC确实包含很多内涵,它涉及代码解耦、设计模式、代码优化等问题的考量,我们打算通过一个小例子来说明这个概念。1.通过实例理解IoC的概念我们以一个城门问话的情景来进行描述。张之亮的《墨攻》中有这样一个镜头:当刘德华所饰演的墨者革...原创 2019-10-08 16:02:57 · 146 阅读 · 0 评论 -
Spring框架学习笔记-初识Spring框架
Spring框架由1400多个类组成,整个框架按照其所属功能可以划分为5个主要模块1.IoC控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象...原创 2019-12-30 16:58:23 · 267 阅读 · 0 评论