返回顶部
首页 > 资讯 > 后端开发 > Python >Spring-全面详解(学习总结)
  • 420
分享到

Spring-全面详解(学习总结)

2024-04-02 19:04:59 420人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、spring介绍简介特点、主要特点为什么要学?二、ioc(依赖注入)Spring 容器ioC 和 bean介绍控制反转:容器概述:bean介绍aop总结一、Spring介绍

一、Spring介绍

简介

Spring 框架为现代基于 java 的企业应用程序提供了一个全面的编程和配置模型——在任何类型的部署平台上

特点、主要特点

1、非侵入式

2、容器

3、IoC

4、AOP

5、方便程序的测试

为什么要学?

主流市场推荐、学习的人数多、Spring社区活跃、工作需要、属于开源框架、方便web开发、集成度高。

还因为Spring具有 以下优点:

  • 轻量级:相较于EJB容器,Spring采用的IoC容器非常的轻量级,基础版本的Spring框架大约只有2MB。Spring可以让开发者们仅仅使用POJO(Plain Old Java Object,相对于EJB)就能够开发出企业级的应用。这样做的好处是,你不需要使用臃肿庞大的 EJB容器(应用服务器),你只需要轻量的servlet容器(如Tomcat)。尤其在一些开发当中,很稀缺内存和CPU资源时,采用Spring比EJB无论是开发还是部署应用都更节约资源。
  • 控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。
  • 面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。
  • mvc框架:Spring MVC是一个非常好的MVC框架,可以替换其他WEB框架诸如Struts。
  • 集成性:Spring非常容易和其他的流行框架一起集成开发,这些框架包括:ORM框架,logging框架,JEE, Quartz,以及Struts等表现层框架。
  • 事务管理:Spring强大的事务管理功能,能够处理本地事务(一个数据库)或是全局事务(多个数据,采用JTA)。
  • 模块分离:Spring框架是由模块构成的。虽然已经有太多的包和类了,但它们都按照模块分好类了,你只需要考虑你会用到的模块,而不用理其他的模块。
  • 异常处理:由于Java的JDBC,Hibernate等api中有很多方法抛出的是checked exception,而很多开发者并不能很好的处理异常。Spring提供了统一的API将这些checked exception的异常转换成Spring的unchecked exception。
  • 单元测试:Spring写出来的代码非常容易做单元测试,可以采用依赖注射(Dependency Injection)将测试的数据注射到程序中。

Spring框架体系结构:

img

二、IOC(依赖注入)

Spring 容器IOC 和 bean介绍

本章介绍了控制反转原则的 Spring 框架实现。也被称为依赖注入。这是一个过程,对象仅通过构造函数参数、工厂方法的参数或者在对象实例被构造或者从工厂方法返回后在其上设置的属性来定义它们的依赖关系(也就是说,它们使用的其他对象)。然后容器在创建 bean 时注入这些依赖项。这个过程从根本上来说是 bean 本身的逆过程(因此得名为控制反转) ,通过使用类的直接构造或服务定位器模式之类的机制来控制其依赖项的实例化或位置。

上面的话,简单的说就是 使用对象的人并不和对象有直接关联。

控制反转:

控制反转(Inversion of Control)是说创建对象的控制权发生转移,以前创建对象的主动权和创建时机由应用程序把控,而现在这种权利转交给 IoC 容器,它就是一个专门用来创建对象的工厂,你需要什么对象,它就给你什么对象。有了 IoC 容器,依赖关系就改变了,原先的依赖关系就没了,它们都依赖 IoC容器了,通过 IoC 容器来建立它们之间的关系。

在这里插入图片描述

在这里插入图片描述

容器概述:

Context.applicationcontext 接口代表 spring ioc 容器,负责实例化、配置和装配 bean。

  • Spring IOC容器就是一个org.springframework.context.ApplicationContext的实例化对象
  • 容器负责了实例化,配置以及装配一个bean

ApplicationContext 接口表示 Spring IoC 容器,负责实例化、配置和装配 bean。容器通过读取配置元数据获取关于实例化、配置和组装什么对象的指令。配置元数据用 XML、 Java 注释或 Java 代码表示。它允许您表达组成应用程序的对象以及这些对象之间丰富的相互依赖关系。

  • ClassPathXmlApplicationContext
  • FileSystemXmlApplicationContext

Spring 如何工作?

container magic

  • Spring容器通过我们提交的pojo类以及配置元数据产生一个充分配置的可以使用的系统
  • 这里说的配置元数据,实际上我们就是我们提供的XML配置文件,或者通过注解方式提供的一些配置信息

bean介绍

在 Spring 中,构成应用程序主干的对象和由 Spring IoC 容器管理的对象称为 bean。Bean 是由 Spring IoC 容器实例化、组装和管理的对象。否则,bean 只是应用程序中的许多对象之一。

配置元数据

  • 传统上,配置元数据是以一种简单和直观的 XML 格式提供的
  • 现在,大部分使用注解方式。

基本结构


下面的示例显示了基于 xml 的配置元数据的基本结构:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="Http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="..." class="...">  
        <!-- collaborators and configuration for this bean Go here -->
    </bean>
    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>
    <!-- more bean definitions go here -->
</beans>
  • id 属性是标识单个 bean 定义的字符串
  • class 属性是全限定类名

AOP

面向切面编程,是针对面向对象编程的一种补充,同时也是spring中第二个最核心的功能,例如可以进行权限认证,日志输出等,可以无侵入的对原来的功能进行切面加入自定义的非业务功能。

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Spring-全面详解(学习总结)

本文链接: https://lsjlt.com/news/130608.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring-全面详解(学习总结)
    目录一、Spring介绍简介特点、主要特点为什么要学?二、IOC(依赖注入)Spring 容器IOC 和 bean介绍控制反转:容器概述:bean介绍AOP总结一、Spring介绍 ...
    99+
    2024-04-02
  • Spring全面详解(学习总结)
    Spring FrameWork一、 前言二、IOC(控制反转)2.1 对于IOC的理解2.2如何使用IOC2.3配置文件的解读2.4IOC容器创建bean的两种方式2.5从IOC容器中取bean2.6bean的属性如...
    99+
    2023-08-16
    spring java IOC AOP
  • Spring MVC详解(学习总结)
    一、Sprig MVC简介1.1介绍1.2MVC是什么 二、Spring MVC实现原理2.1核心组件2.2工作流程 三、第一个Spring MVC四、常用注解五、参数绑定5.1URL风格参数绑定5.2RESTful风格...
    99+
    2023-08-16
    mvc spring 学习 Spring MVC
  • spring框架学习总结
    目录Spring 框架概述Spring优点Spring体系结构Spring拓展Spring Boot与Spring CloudSpring IoC 容器 (IoC 也称为依赖项注入(...
    99+
    2024-04-02
  • Mongodb学习总结
    Mongodb相关操作总结 2020/4/2 Mongodb使用的是类似与json字符串的形式存储数据 [ { key:value }, { key:value }, ] Mongodb使用了不存在的对...
    99+
    2019-08-19
    Mongodb学习总结
  • mysqlimport学习总结
    原文链接: https://www.modb.pro/db/23208xy 摘要:mysqlimport是MySQL数据库提供的一个命令行程序,可用于数据导入。...
    99+
    2024-04-02
  • WorkFlow学习总结
     最近在工作中要实现一种“流程审批”的功能,查阅资料得知,workFlow技术可以满足我的需求,于是就开始沉下心来好好学习一下这门技术。总结的学习资料也拿出来和大家共享一下。  什么是工作流: 工作流...
    99+
    2023-06-05
  • Java 线程池全面总结与详解
    目录原理阻塞队列有界阻塞队列无界阻塞队列同步移交队列实现类分析使用Executors创建线程池线程池关闭线程池是很常用的并发框架,几乎所有需要异步和并发处理任务的程序都可用到线程池。...
    99+
    2024-04-02
  • mysql学习总结(一)
        作为一名小白,今天开始上传自己的学习总结。 ...
    99+
    2016-11-21
    mysql学习总结(一)
  • python 学习总结4
    数字类型及操作 一、整数类型   (1)python中的整数与数学中的概念是一致的,可以正也可以负,没有取值范围。        pow(x,y)函数是计算x的y次幂,想计算多大就多大。   (2)在整数类型中有四种进制形式      十...
    99+
    2023-01-30
    python
  • python 学习总结5
    字符串类型及操作 一、字符串类型的表示   (1)字符串:由0个或多个字符组成的有序字符序列     例如:“请输入带有符号的温度值” 或者‘c’都是字符串   (2)字符串是字符的有序序列,可以对其中的字符进行索引     例如:“请”...
    99+
    2023-01-30
    python
  • python 学习总结1
    计算机与程序设计 一、计算机的概念   1.计算机是根据指令操作数据的设备。   2.计算机主要包括两个功能性一个是功能性另一个是计算性   功能性是对数据的操作,表现为数据计算,输入输出处理和结果存储   可编程性是根据一系列指令自动的...
    99+
    2023-01-30
    python
  • python 学习总结3
    Python蟒蛇绘制 一、实现程序如下 1 import turtle 2 turtle.setup (650, 350, 200, 200)#turtle的绘图窗体turtle.setup(width, height, start...
    99+
    2023-01-30
    python
  • python 学习总结2
    温度转换问题 一、温度转换   目前有两种表示温度的方法一种是摄氏度另一种是华氏度,摄氏度的结冰点为0度,沸点为100度将温度等分刻画,华氏度的结冰点为32度,沸点为212度将温度进行等刻度划分。   现需要将按格式输入的摄氏度转换为华氏...
    99+
    2023-01-30
    python
  • Python学习总结__Day1
    一、Python是一门什么类型语言 1、解释型:一边编译一边执行,劣势是运行速度慢,但通过运用PyPy交互解释器(JIT技术)会让python程序执行速度快很多。优势是可移植性强。 2、强类型:即类型安全类型。除非通过强制转换,否则变量类...
    99+
    2023-01-31
    Python
  • 函数学习总结
    定义 自己总结:就相当于现实中各种用途的工具,有着对数据进行各种处理的功能(实质就是比较复杂的变量?!) 分类  自定义函数和Python语言已经定义过的常用的内置函数 自定义函数的组成部分 def 函数名(参数1,参数2...): '...
    99+
    2023-01-31
    函数
  • python学习总结-----pytho
    一、python简介    python 是一种面向对象、解释性的脚本语言,遵循 GPL 协议。语法简单、社区强大、丰富的库支持。又被称为“胶水语言”。能把其他语言(主要C/C++)写的模块很轻松的结合在一起。二、python 安装 win...
    99+
    2023-01-31
    python pytho
  • BGP学习 总结3
      BGP DECISION PROCESS 1 largest weight ( local orininated path :32768 other 0 ) 2 largest local-preefernce (BGP default...
    99+
    2023-01-31
    BGP
  • list学习内容总结
    list定义:list[]或者[]内任意类型的内容,多个用逗号分开 name1 = list(['Cyberpunk2077', 'Jim', 2077]) name2 = list('Cyberpunk2077') name3 = ...
    99+
    2023-01-31
    内容 list
  • AIX 5L学习总结3
    1.-bash-3.00$ prtconf | more //查看配置信息可以看到大部分配置信息。 -bash-3.00$ prtconf | more System Model: IBM,9110-51A Machin...
    99+
    2023-01-31
    AIX
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作