Spring 框架根本

程序员 2024-9-16 15:33:59 67 0 来自 中国
主要学习,总结 和先容一下几点内容:
    1.Spring支持"面向接口编程"的设计方法:
     2.使用静态和实例工厂创建bean
     3.基于构造函数DI,用于将bean依靠关系作为构造函数参数转达.
      4.将简朴的String值作为参数转达给构造函数和setter方法:
      5.bean的工作域
1.面向接口编程的设计方法:
    假如依靠于其他类的类直接引用其依靠项的具体类,则会导致类之间的精密耦合.这意味着假如要更换其依靠项的其他实现,则必要更改这个依靠于其他类的类自己.
    我们知道Java接口界说了器实现类应遵照的左券.因此,假如一个类依靠于其依靠项实现的接口,那么当更换差别的依靠项实现时,类不必要改变.一个类依靠于由其依靠项所实现的接口的应用步调的设计方法称为"面向接口编程". 这种设计方法使得依靠类与依靠项之间松耦合.由以来累实现的接口称为依靠接口.
1.png 如上图所示, FixedDepositService 依靠 FixedDepositService 接口, FixedDepositService 接口有两个实现类,可以差别的方式毗连数据库.当有一天必要用Mybatis 毗连数据库时 ,只必要新增一个Mybatis实现类并将实现类提供给FixedDepositService 接口即可,不消修改 FixedDepositService  接口类.
2.使用静态和实例工厂方法创建Spring bean
    2.1 用静态工厂创建SpringBean 
在上述bean的界说中,class 特性指定了界说静态工厂方法的类的完全限定名称。
factory-method特性指定了spring 容器调用的获取FixedDepositDao 对象实例的静态工厂方法名称。
<constructor-arg>元素在Spring 的bean schema 中界说,用于转达构造函数的参数以及静态和实例工厂方法的参数.
index 特性值为0意味着<contructor-arg>元素为getFixedDepositDao工厂方法的第一个参数(即daoType),而value特性值指定了参数值.假如工厂方法汲取多个参数,则必要为每个参数界说一个<contructor-arg>
2.2实例工厂创建SpringBean
在上述代码清单中, FixedDepositDaoFactory 类被设置为通例的SpringBean ,而且使用单独的<bean>元向来设置实例工厂方法的具体信息.
设置实例工厂的具体信息,使用<bean>元素的factory-bean 和factory-method特性.factory-bean特性是指界说实例工厂的方法的bean、factory-method特性指定实例工厂方法的名称。
与static工厂方法一样,可以使用<constructor-arg> 元素将参数转达给实例工厂方法.
2.3 基于构造函数的DI
    2.3.1回顾基于setter 的DI
6.png 基于构造函数的DI
基于构造函数和基于setter的DI机制的结合使用
将设置信息转达给bean
bean 的作用域
bean的作用域可以指定,假如不指定默以为singleton范围,表现该实例可以被容器内其他实例共享。
在Web应用场景中,Spring答应你指定其他的范围:request、session、websocket和applciation。这些范围决定了bean实例的生命周期。比方,request 范围的bean 的生命周期仅限于单个HTTP哀求。
13.png JUnit 的 @BeforeClass 注解订定了类中任何测试方法之前调用init方法,这意味着@BeforeClass方法只被调用一次,而@Test注解的方法只有在实验@BeforeClass注解的方法后才气实验.
由于controller bean 是 singleton 范围的,因此 controller1 bean 和 controller1 bean 的实例是一样的.
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 00:25, Processed in 0.141370 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表