zoukankan      html  css  js  c++  java
  • Sping笔记一览

    Sping 介绍

    sping 是覆盖整个三层框架

    作用:负责管理项目中的所有对象,

    sping 看作项目中的管家。

    sping 一站式框架,因为他是整个项目对象的容器,就是一个容器。

    因为他在 sping 中管理所有的对象,因此可以处理不同的请求;也因为如此里面装着可以操作

    数据库的对象。

    容器中装着什么对象就有什么功能。

    可以很清晰的将对象的关系理清,三层架构。

    sping  的核心是控制反转(Ioc)和面向切面(Aop)。

    sping 是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。

    SPING的优点:

    方便解耦,简化开发

         Sping 就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Sping管理

    AOP编程的支持。

         Sping 提供面向切面的编程,可以方便的实现对程序进行权限拦截,运行监控等功能声明事务

    的支持

       只需要通过配置就可以完成对事务的管理,而无需手动编程

    方便程序的测试

       Sping 对junit4支持,可以通过过注解方便的测试Sping 程序

    方便集成各种优秀的框架

     

    Sping 不排斥其他框架,还能帮其他框架管理对象。

    aop支持 ioc思想 sping  jdbc aop 事务 juint 测试支持

    SPING 框架的搭建

    1.导包

    模块图:

    最下排中红框中的包就是我们使用Sping 要导入的最最基础的jar包

    同时导入日志包 使用apache的jar包

    左上层的五个包是有关dao层的jar包

    右上角的四个jar包是有关于web层的包

     2.创建一个对象

    一个CLASS类,一个简单的Java Bean文件

    3.书写配置注册对象到容器。

    sping 配置文件规则----就是没有规则,但是建议注意业内规范,一般用applicationContext.xml

    同时位置任意但是建议放在src文件之下。

    导入约束:

    导入约束后,将User对象交给sping容器管理

    用<bean></bean>来导入

    导入成功的界面。

    4.代码测试。

    新建一个测试类,放入包下。

    测试过程

    1)创建容器对象。

    2)向容器要“user”对象

    3) 打印user对象

    IOC 反转控制:

    将我们创建的对象方式反转了

    以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用sping 之后,对象的创建以及依赖关系可以由sping 完成创建以及注入。反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序(sping)。

     DI:依赖注入:(一种技术)

    实现IOC思想需要DI做技术支持

    注入方式:

     set方法注入

    构造方法注入

    字段注入

    注入类型:

    值类型注入:八大基本数据类型

    引用类型注入:将依赖的对象注入

    application Context&Beanfactory(接口)

    Beanfactory:接口(原始接口,实现功能较为单一)

    特点:接口实现类的容器。特点是每次在获得对象时才会创建对象。

    继承关系图:

    applicationContext :

    特点:每次容器启动时就会创建容器中配置的所有对提供了更多功能。

    从类路径下加载配置文件ClassPathXmlApplicationContext

    从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext.

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

    三:学习配置文件:

    sping 配置详解--

    1.Bean元素:

    该元素描述需要sping容器管理的对象

    name属性:给被管理的对象起个名字,获得对象是根据该名称获得对象。(可以使用特殊字符可以重复)

    class属性:被管理对象的完整类名。

    id属性:与name属性一模一样。规范:名称不可重复,不能使用特殊字符。

    结论:尽量使用name属性。

    2.sping 配置详解。

    三种对象创建方式。

    创建方式一:空参构造创建方式

    以下两种创建方式了解

    创建方式二:静态工厂方式。

    创建方式三:动态示例工厂创建user

     3.sping 配置详解-scope属性:

    在bean元素中加的scope属性。

     四个取值:

    1)singleton:(默认值)单例对象。绝大多数时都会使用单例的。

    被标识为 单例的对象在sping 容器中只会存在一个实例

    2)prototype:多例原型,被标识为多例的对象每次在获得时才会创建,每次创建都是新的对象

     在于与struts框架整合的时候,action对象要交给sping来管理,这是action要配置为多例。

    以下两种了解:

    3)request:在web环境下,与request的生命周期一致。

    4)session:在web环境下,与session的生命周期一致。

    4.sping 配置详解,初始化&销毁方法。

    生命周期属性(了解)

    配置一个方法作为生命周期初始化方法,sping会在对象创建之后立即调用。

    init-method destory-method

    配置一个方法作为生命周期的销毁方法,sping容器再关闭并销毁所有容器中的对象之前调用5.

    5.模块化配置:

    sping的分模块配置。在主配置文件中,引入其他配置用的元素为import导入其他sping配置文件

    6.sping属性注入:(set方式)(构造函数注入)(p名称空间注入)(spel注入)

    set 方式注入:

    ref属性制定哪一个对象注入

    2)构造函数注入:

    再用构造函数方式注入时,有了name,type,index可以指定到任何一个构造函数。

    当有多个构造函数符合要求时。

    用name属性可以指定构造函数的名称。

    用index属性可以指定构造函数的顺序。

    用type 属性可以指定构造函数的类型。

    P名称空间注入:首先要导入P名称空间

    7.复杂类型注入:

     

    1)数组类型注入:

    注意:如果数组中只准备注入一个值(对象),直接使用 value/ref即可

    其他复杂类型注入中,在多个数值注入时,在property元素下加入要注入的类型元素即可,例如:

    在array类型注入中,在property元素下,加入array元素,在array元素中进行赋值。即可得到所想注入的值。

    注意,其中map类型的为键值对,所以在注入时可以使用entry元素来进行注入,

  • 相关阅读:
    在C#中使用消息队列RabbitMQ
    从url到页面经历了什么
    jsonp跨域远离
    DNS预处理
    一个架构师需要考虑的问题
    angular2和Vue2对比
    图片多的问题
    xinwenti
    xss和csrf
    ajax是什么
  • 原文地址:https://www.cnblogs.com/shuai9999/p/9551600.html
Copyright © 2011-2022 走看看