当前位置: 首页 > news >正文

Spring基础知识(一)

目录

1.Spring Framework

2.Spring Framework优点

3.Spring Framework的功能模块

4.Spring配置文件

5.Spring应用配置步骤

6.Spring的IoC是什么

7.IoC的理念

8.IoC体系的好处

9.Spring中的 IoC 容器

10.依赖注入的方式


1.Spring Framework

        Spring Framework即Spring框架,是所有Spring框架的基础框架。

        是一个开源框架,用来降低应用程序的耦合度。

2.Spring Framework优点

        1. 非侵入式:对应用程序本身结构影响很小,可以与原有结构结合使用

        2. 控制反转:IOC- Inversion of Control,反转资源获取方向,把自己创建资源、向环境索取资源变成环境将资源准备好,我们享受资源注入

        3. 面向切面编程:AOP- Aspect Oriented Programming,在不修改源代码的基础上增强代码功能

        4. 免费:是开源的

        5. 组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用
 

3.Spring Framework的功能模块

         1. Core Container:核心容器,在Spring环境下使用任何功能都必须基于IOC容器

        2. AOP&Aspects:面向切面编程

        3. Testing:提供了对junit或TestNG测试框架的整合

        4. Data Access/Integration:提供了对数据访问/集成的功能

        5. Spring MVC:提供了面向Web应用程序的集成功能

4.Spring配置文件

        配置文件为 .xml 文件,包含类的配置与依赖注入等。

        一般的文件路径为:src\main\resources\applicationContext.xml

代码示例:比如一个配置文件可以引入外部属性文件,配置数据源,编写操作数据库的代码

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--    1.引入外部属性文件--><context:property-placeholder location="jdbc.properties"></context:property-placeholder><!--    2.配置数据源--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean><bean id="studentTest" class="com.gz.spring.pojo.Student" scope="prototype">
<!--    <bean id="studentTest" class="com.gz.spring.pojo.Student" scope="singleton">--><property name="id" value="1001"></property><property name="name" value="张三"></property></bean></beans>

详细关于配置文件管理bean的操作见:

Spring的重点知识_perseveregz的博客-CSDN博客

5.Spring应用配置步骤

        1. 配置pom.xml文件

        2. 创建pojo实体类

        3. 创建配置文件applicationContext.xml;配置一个bean对象,将对象交给IOC容器管理

        4. 进行测试

6.Spring的IoC是什么

1.概念

        IoC:Invention of Control;控制反转;也叫做DI:Dependency Injection:依赖注入

2.作用

        若对象A与对象B存在依赖关系,引入IoC后,控制权交给了IoC;当A需要B时,不需要主动与对象B进行交互,而直接让IoC创建一个对象注入到A所需要B的位置。A获取B的方式由主动创建转为被动接受注入。这,就是IoC。同时也引出了IoC的同义名词-依赖注入。

关于SpringIoC的详解见:

Spring中关于bean与IoC的解析_perseveregz的博客-CSDN博客

7.IoC的理念

        对于软件工程而言,可能需要多个系统之间、多个模块之间、多个对象之间的相互耦合,共同组成一个企业级应用工程,随着耦合度越来越高,极容易牵一发而动全身的情况,只要其中一小部分出现问题,整个工程便无法实现功能。为了解决这种系统、模块、对象之间的耦合度过高的问题,提出了IoC的概念。如今IoC的理论在Spring中得到充分的展现。IoC其实就相当于一个第三方中间件,对象之间都根据这个第三方形成依赖关系。

8.IoC体系的好处

IoC体系的好处在于:之前对象之间组成依赖关系,若其中一个对象出现问题,则全局无法开展;而使用一个第三方中间件之后,尽管其中一个对象出现问题,其他模块都能够正常工作。因此,可以将IoC容器看作是所有对象之间的粘合剂,这些对象的控制权都交给了IoC,这样就叫做控制反转。


9.Spring中的 IoC 容器

Spring提供了两种IOC容器的实现方式:BeanFactory;ApplicationContext

     BeanFactory:IOC容器的基本实现,是Spring内部使用的接口,面向Spring本身,不提供给开发人员使用

     ApplicationContext:BeanFactory的子接口,面向Spring的使用者
 

10.依赖注入的方式

通过三种方式

        构造函数注入

        setter方法注入

        接口注入(由接口提供的方法进行对象注入,但现在不推荐使用)

http://www.lryc.cn/news/93596.html

相关文章:

  • 易语言使用node编译的js文件
  • 计算机网络笔记:动态主机配置协议(DHCP)
  • 新买的电脑怎么用U盘重装系统?新买的电脑用U盘重装系统教程
  • 图像边缘检测原理
  • 爬虫利器 Beautiful Soup 之遍历文档
  • 12、Nginx高级之高级模块(secure_link/secure_link_md5)
  • 【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐
  • 大模型入门(三)—— 大模型的训练方法
  • 人机交互学习-4 交互设计过程
  • 大话Stable-Diffusion-Webui之kohya-ss主题更改
  • 搜索在计算机中的地位十分重要
  • 多模态深度学习:定义、示例、应用
  • 基于ZCU106平台部署Vitis AI 1.2/2.5开发套件【Vivado+Vitis+Petalinux2020/2022】
  • ChatGPT原理简介
  • 从0搭建Hyperledger Fabric2.5环境
  • Rust每日一练(Leetday0026) 最小覆盖子串、组合、子集
  • c# 从零到精通-ArrayList-Hashtable的操作
  • pnpm带来了什么
  • 图像分类模型嵌入flask中开发PythonWeb项目
  • GIT安装教程(入门)
  • 全志V3S嵌入式驱动开发(触摸屏驱动)
  • 死信队列详解
  • 我用ChatGPT写2023高考语文作文(五):北京卷I
  • 《微服务实战》 第二十八章 分布式锁框架-Redisson
  • 局部搜索,变邻域搜索算法
  • 软件工程实训——第一天
  • 嵌入式C语言中if/else如何优化详解
  • 【LSTM】读取时间序列数据 | 时间序列数据的小批量划分方法
  • K8s in Action 阅读笔记——【12】Securing the Kubernetes API server
  • 爆肝整理,3个月从功能进阶自动化测试,一跃成测试卷王...