zoukankan      html  css  js  c++  java
  • spring~1

    1、什么是spring?

      spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。框架的优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。spring使用Javabean来完成以前只可能由EJB完成的事情。spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何一个Java应用都可以从spring中受益。spring的核心是控制反转和切面编程。

    控制反转(IOC):在传统的java开发模式中,需要一个对象时,我们使用new或getInstance()方法直接或间接调用构造方法创建对象,但在Spring开发模式中,Spring容器使用了工厂模式创建所需要的对象,不需要自己创建对象,直接使用Spring容器提供的对象即可。

    依赖注入(DI):依赖注入需要有IOC的环境,使用javabean对象的set方法或带参数构造方法,在创建对象时将其属性自动设置为所需值得过程,就是依赖注入的方法。

    面向切面编程(AOP):在面向对象编程(OOP)中,将事务抽象为一个个的对象,在面向切面编程中,我们将多个对象中类似的方面抽象为切面,对这些切面进行一些如权限管理、事务管理等公用操作处理的过程就是面向切面编程的思想。AOP的底层是基于动态代理实现的,如果是接口就使用JDK动态代理,如果是类就使用CGLIB方式实现动态代理。

    2、spring的优点?

      方便耦合,简化开发

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

      AOP编程的支持。

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

      声明式事务的支持。

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

      方便程序的测试。

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

      方便集成各种优秀框架

      spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持

      降低JavaEE API的使用难度

      spring对JavaEE开发中非常难用的一些API,都提供了封装,使这些API应用难度大大降低。

    3、spring中的工厂(容器)

      ApplicationContext接口有两个实现类:

        (1)、ClassPathXmlApplicationContext:加载类路径下spring的配置文件

        (2)、FileSystemXmlApplicationContext:加载本地磁盘下spring的配置文件

      BeanFactory(过时),与ApplicationContext的差别:

        BeanFactory是在getBean的时候才会生成类的实例

        ApplicationContext在加载applicationContext.xml(容器启动)时候就会创建类的实例。

    4、spring的相关配置

    (1)、id属性和name属性标签的配置

      id:给Bean起个名字。在约束中采用ID的约束:唯一。即ID必须具有唯一性。必须以字母开始,可以使用字母、数字、连字符、下划线、句号、冒号,id不能出现特殊字符。

      name:给Bean起个名字。没有采用ID的约束。name可以出现特殊字符。如果<bean>没有id的话,name可以当做id使用。

    (2)、scope属性:Bean的作用范围

      singleton:默认值,单例的。在整个应用中,只创建bean的一个实例。

      prototype:多例的。每次注入或者通过spring应用上下文获取的时候,都会创建一个新的bean实例。

      request:在web应用中,为每个请求创建一个bean实例。

      Session:在web应用中,为每个会话创建一个bean实例。

    5、spring的Bean的属性注入:

      构造方法的方式注入属性

      set方法的方式注入属性

  • 相关阅读:
    JSMpeg的使用
    Python模拟键盘输入
    Python处理文件打开窗口
    Airtest网页自动化批量执行脚本
    使用AirTest进行网页自动化测试
    iOS14适配
    Vue ref refs
    uni-app 离线打包后提示 打包时未添加Native UI、File模块
    uni-app 自定义弹窗组件、slot插槽
    Taro react事件传参 路由传参
  • 原文地址:https://www.cnblogs.com/xiaoxli/p/9591341.html
Copyright © 2011-2022 走看看