美文网首页
spring框架学习

spring框架学习

作者: 行者和他的钢笔 | 来源:发表于2018-09-18 08:41 被阅读18次

    1、开发中主要使用spring的什么技术?

    a)IOC容器管理各层组件
    b)使用aop配置声明式事务

    c)整合其他框架

    2、为什么说spring是一站式框架

    3、spring搭建


    (1)导包:基本包+日志包
    (2)创建一个pojo对象
    (3)书写配置注册对象到容器
    ------------配置文件:applicationContext.xml

    ------------这其中的导入约束是什么意思? (4)代码测试

    其实就是在实际编码过程中我们是如何使用这个对象的。首先是创建对象,然后就是通过容器调用他的方法来获取我们想要的对象。

    4、spring概念

    5、spring中的工厂(容器)

    (1)ApplicationContext

    ApplicationContext接口有两个实现类:
    ClassPathXmlApplicationContext:加载类路径下的spring配置文件
    FileSystemXmlApplicationContext:加载本地磁盘下的spring的配置文件

    (2)ApplicationContext和BeanFactory的区别

    BeanFactory接口实现类的容器,特点是每次在获得对象的时候才会创建对象。
    ApplicationContext接口实现类的容器,特点是每次加载配置文件,容器启动的时候就会创建容器中配置的所有对象。

    结论:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.

    6、spring中的bean元素----看下视频明白一下空参构造创建对象

    spring中如何配置bean对象

    (1)通过全类名(反射)
    (2)通过静态工厂或者实例工厂

    如何创建bean对象

    (1)空参构造的方式 (2)静态工厂的方式 (3)实例工厂的方式

    bean元素属性注入---看视频明白set方法注入

    set方法注入 构造函数注入 p名称空间注入 spel注入 复杂类型注入

    bean元素属性

    Bean元素:使用该元素描述需要spring容器管理的对象

    使用name属性时,开发中不建议名称重复

    scope属性:对象的作用域

    四个取值对应四个范围

    当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:

    singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例
    prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例
    request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效
    session:对于每次HTTP Session,使用session定义的Bean都将产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效
    globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效

    其中比较常用的是singleton和prototype两种作用域。对于singleton作用域的Bean,每次请求该Bean都将获得相同的实例。容器负责跟踪Bean实例的状态,负责维护Bean实例的生命周期行为;如果一个Bean被设置成prototype作用域,程序每次请求该id的Bean,Spring都会新建一个Bean实例,然后返回给程序。在这种情况下,Spring容器仅仅使用new 关键字创建Bean实例,一旦创建成功,容器不在跟踪实例,也不会维护Bean实例的状态。

    如果不指定Bean的作用域,Spring默认使用singleton作用域。Java在创建Java实例时,需要进行内存申请;销毁实例时,需要完成垃圾回收,这些工作都会导致系统开销的增加。因此,prototype作用域Bean的创建、销毁代价比较大。而singleton作用域的Bean实例一旦创建成功,可以重复使用。因此,除非必要,否则尽量避免将Bean被设置成prototype作用域。

    bean元素生命周期

    1、通过构造器或者工厂方法创建bean实例
    2、为bean的属性值设置值和对其他bean的引用
    3、调用bean的初始化方法
    4、使用bean对象

    5、容器关闭时调用bean的销毁方法
    经过如上对Bean作用域的介绍,接下来将在Bean作用域的基础上讲解Bean的生命周期。

    Spring容器可以管理singleton作用域下Bean的生命周期,在此作用域下,Spring能够精确地知道Bean何时被创建,何时初始化完成,以及何时被销毁。而对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean的实例后,Bean的实例就交给了客户端的代码管理,Spring容器将不再跟踪其生命周期,并且不会管理那些被配置成prototype作用域的Bean的生命周期。Spring中Bean的生命周期的执行是一个很复杂的过程,读者可以利用Spring提供的方法来定制Bean的创建过程。Spring容器在保证一个bean实例能够使用之前会做很多工作:

    7、使用注解代替xml配置

    (1)导包
    (2)导入新的约束
    (3)在spring配置文件applicationConfig.xml中开启使用注解代理配置文件
    (4)在类中使用注解完成配置

    注解有:将对象注册到容器(区分对象属于哪一层): 修改对象的作用范围:
    在类的成员变量上注解 引用类型注入,需要先把这个对象注册到容器中。 @Autowired自动扫描容器中符合这个类型的对象,如果找到的话就会赋值给变量

    8、spring与junit整合测试


    @RunWith(SpringJUnit4ClassRunner.class)注解功能时帮助我们创建容器

    @ContextConfiguration("classpath:applicationContext.xml")指定创建容器时使用的配置文件
    容器创建好之后,从容器中取对象的方式如下:


    作用:方便程序的测试
    spring对junit4的支持,可以通过注解方便的测试spring程序

    9、spring的JDBC模板

    spring提供了很多模板整合dao技术

    相关文章

      网友评论

          本文标题:spring框架学习

          本文链接:https://www.haomeiwen.com/subject/nfthmftx.html