zoukankan      html  css  js  c++  java
  • Spring学习(一)

    1、既然是学习Spring,我们首先要搞清楚Spring是什么?

    Spring是分层的、JavaSE/EE一站式的、轻量级的开源框架。

    2、Spring的核心

    百度百科:Spring是基于IOC和AOP的一套编程框架

    框架特征:

    轻量级(大小、开销、非侵入(Spring应用中对象不依赖与Spring特定类))

    控制反转:一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

    面向切面:基于动态代理的功能增强方式,允许通过分离应用的业务逻辑与系统级服务(事务管理)进行内聚性开发。应用对象只实现他们应该做的:完成业务逻辑,而不负责其他的系统级关注点。

    容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器。

    框架:Spring可以将简单的组件配置、组合成为复杂的应用。

    3、Spring的优点

    spring的出现,解决了javaee的很多实际问题。

    a,方便解耦,简化开发

    b,AOP编程的支持

    c,声明式事务的支持

    d,方便程序的测试

    e,方便集成各种优秀框架

    f,降低JavaeeAPI的使用难度

    4、 IoC和DI概念区分

    DI和IOC说的都是同一件事情,都是将控制权交给第三方(spring )管理,只是站在不同的角度而已。

    5、 XML配置

    5.1实例化Bean方式(4—前三种都好好练习)

    第一种:无参构造器

    第二种:静态工厂方法

    第三种:实力工厂方法

    第四种:FactoryBean方式

    5.2FactoryBean 使用(重点) 区分BeanFactory和FactoryBean

    BeanFactory:是一个工厂,用来管理和获取很多bean对象

    Factorybean:是一个Bean生成工具,是用来获取一种类型的Bean,它是构造bean实例的一种方式

    5.3作用域 singleton和prototype

    singleton:在SpringIOC容器中仅仅存在一个Bean一个实例,Bean以单例形式存在

    prototype :每次从容器中调用Bean时,都会返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean()

    5.4初始化和销毁

    了解 BeanPostProcessor 后处理Bean

    5.5属性依赖注入的三种方式

    什么是Bean属性的注入?就是对一个对象的属性赋值

    依赖注入(2种):构造器注入 <constructor-arg> 、 属性setter注入 <property> 、接口注入

    了解 p名称空间 spEL 表达式 (一种表达式语言)

    了解 集合类型注入

    6、 注解配置

    Bean扫描注册 (配置属性)

    属性依赖注入(4种—至少要记住一种@autowaired)

    初始化、销毁

    作用域(@scope) :指定Bean的作用域(默认是单例)

    混合配置

    7、 web集成,配置Spring监听器 (ContextLoaderListener)—classpath:的使用,webappp…util.get(context)

    【思考、阅读】直接new ClassPathXmlApplicationContext()有什么缺点?

    缺点:在创建Spring容器同时,需要对容器中对象初始化。而每次初始化容器的时候,都创建了新的容器对象,消耗了资源,降低了性能。

    解决思路:保证容器对象只有一个。

    解决方案:将Spring容器绑定到Web Servlet容器上,让Web容器来管理Spring容器的创建和销毁。

    分析:ServletContext在Web服务运行过程中是唯一的, 其初始化的时候,会自动执行ServletContextListener 监听器 (用来监听上下文的创建和销毁),具体步骤为:

    编写一个ServletContextListener监听器,在监听ServletContext到创建的时候,创建Spring容器,并将其放到ServletContext的属性中保存(setAttribute(Spring容器名字,Spring容器对象) )。

    我们无需手动创建该监听器,因为Spring提供了一个叫ContextLoaderListener的监听器,它位于spring-web-3.2.0.RELEASE.jar中。

    8、 测试集成 (@runwith @ContextConfiguration(核心配置))---熟悉

  • 相关阅读:
    day 80 视图家族
    day 79 drf 多表关联操作
    day 78 drf 序列化
    day 77 drf中请求、渲染、解析、异常、响应模块的二次封装
    day 76 drf
    python小知识
    请求 渲染 解析 异常 响应模块
    子组件
    vue基础(2)
    vue基础
  • 原文地址:https://www.cnblogs.com/lizhaowen/p/6056774.html
Copyright © 2011-2022 走看看