Spring框架的概述和搭建

article/2025/10/27 19:57:04

文章目录

  • Spring是什么?
  • Spring的特点
    • 轻量级的
    • 非侵入式的
    • IOC
    • AOP
    • 一站式
  • Spring的体系结构
  • Spring Hello Word的搭建
    • 在Maven中导入Spring的核心基础jar包
    • 创建一个类
    • 编写Spring的配置文件
    • 测试Spring
  • Spring的IOC

Spring是什么?

Spring是于2003年新起的一个轻量级(非侵入式)的IOC和AOP的Java开发框架,它的出现就是为了简化企业级应用开发而生的。

Spring的特点

  1. 轻量级的
  2. 非侵入式的
  3. IOC
  4. AOP
  5. 一站式框架

轻量级的

Spring框架使用的jar包都比较小,一般在1M以下或者几百kb。Spring核心功能的所需的jar包一般总共都是在3M左右。Spring框架运行占用的资源少,但运行效率高。

Spring的jar包小,运行时消耗内存小,

非侵入式的

在编写一些业务代码的时候是不需要继承spring特定的类,是通过配置完成依赖注入后就可以使用,此时,Spring就没有侵入到我们业务类的代码里。

框架的代码是不会侵入到我们的业务代码中去,是分开的。

IOC

IOC即为Inversion of Control(控制反转),缩写为IOC,就是由Spring IOC容器管理对象,而非传统实现中由程序代码直接操控。

将谁的控制权 反转 给谁
以前在写代码的时候,就是哪儿需要就在当地new一个对象

控制反转就是在使用Spring框架的时候,我们就不需要自己来new这个对象,Spring框架会帮我们创建好对象,那里需要就直接注入这个对象就可以了。
这个就是把控制生成对象的权利反转给Spring框架,由Spring框架生成并管理对象。

AOP

通过 Spring 提供的 AOP 功能,方便进行面向切面(Aspect Oriented Programming)的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付在 Spring 中,开发人员可以从 繁杂的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

举例:
在我们之前编写代码的时候,我们最开始写了一个saveStudent(){ }的方法。
现在我们想要给之前写好的代码里加入一个新的功能,那么我们现在就要改写之前写好的代码,将它改为saveStudent(){ saveLog(); }
而我们现在使用Spring框架AOP的思想的时候,就可以帮我们动态的代理调用,而不需要再修改原代码。就比如我们现在saveStudent的方法中要调用saveLog的方法,我们就直接告诉框架在执行saveStudent的方法时,再执行一个saveLog这个方法,就这样我们就不需要再在源代码中做修改了

但是像这些方法我们就必须有一个要求,就是和我们要求的业务代码本身就不是很大的关联。

一站式

一站式就是一条龙的针对服务

Spring 本身也提供了数据访问功能和 web 功能,以及可以很好的管理其他框架。

它就是一个后端管理架构的框架,集基础容器,数据访问(jdbc、事务管理),web(Servlet),AOP为一身的一站式框架

Spring的体系结构

请添加图片描述
在Spring的体系当中已经合成了20多个的,这些模块又分为以下的模块当中去。

▶核心容器(Core Container)
● Beans: 管理 Beans
● Core: Spring 核心
● Context: 配置文件
● ExpressionLanguage: SpEL 表达式
▶ 数据访问/集成(Data Access/Integration)层
● JDBC, ORM, OXM, JMS, Transaction
▶ Web层
● Web, Servlet, Portlet, Struts
▶ AOP(Aspect Oriented Programming)面向切面 模块
▶ 植入(Instrumentation)模块
▶ 消息传输(Messaging)
▶ 测试(Test)模块

Spring的官方网站 https://spring.io/

Spring Hello Word的搭建

在Maven中导入Spring的核心基础jar包

        <!-- spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.2.RELEASE</version></dependency>

我这采用了5.2.2的版本,在导入这个jar包的时候,就会将Core Container(核心容器)中的四个对应jar包导入进来
在spring的context的jar包中是依赖了四个jar包在这里插入图片描述

创建一个类

创建一个类,用来测试展示说明问题

package com.demo.spring.model;public class User {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}

编写Spring的配置文件

Spring配置由容器必须管理的至少一个或多个Bean定义组成的。是基于xml的配置元数据将这些bean配置为顶级< beans/ >元素中的< bean/ >元素

<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置我们项目中的类,配置进来后Spring就会对其进行管理(生成对象,存储)由Spring框架生成的这个对象就称为一个bean(特值Spring框架创建的对象,它会添加额外的功能)--><!--id:就是起个名字class:全类名地址就是通过id这个键,获得class的这个对象--><bean id="user" class="com.demo.spring.model.User"></bean>
</beans>

测试Spring

package com.demo.spring.test;import com.demo.spring.model.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test1 {public static void main(String[] args) {//ApplicationContext是Spring的一个底层定义的接口,定义了一些接口//这个接口最终都会继承与BeanFactory//ClassPathXmlApplicationContext()是Spring中的一个具体落地实现的类,它就会创建并管理类ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");//现在是测试代码,所以就要启动ClassPathXmlApplicationContext,// 如果是web程序的话,就不用书写的,直接就可以启动的//通过applicationContext拿到配置文件中的beanObject user = applicationContext.getBean("user");//它的返回值是一个Object的类型,因为它并不知道这个的结果,也没有任何说明,所以他的返回结果是ObjectUser user1 = (User) applicationContext.getBean("user");//用使用这个User接受的话,就要强制向下转型来使用的User user2 = applicationContext.getBean("user", User.class);//这里通过反射的方式也可以直接转换为所对应的接受属性System.out.println(user);System.out.println(user1);System.out.println(user2);//Spring的思想:IOC 就是把生成对象的控制权反转给Spring的框架//在程序中需要对象的时候,直接从Spring容器中直接获取即可(也就是依赖输入)}
}

所拿到的对象都是同一个的
在这里插入图片描述
这就已经算成功的搭建了一个在Spring框架下的Hello Word模板

Spring的IOC

IOC就是控制反转
读作“反转控制”(Inverse of Control)更好的理解,它不是什么技术,它只是一种设计的思想,就是将原本的在程序中手动创建对象的控制权,交又Spring的这个框架来具体实现。

IOC容器是具有依赖注入功能的容器,负责对象的实例化,对象的初始化,对象和对象之间依赖关系配置,对象的销毁,对外提供对象的查找等操作,棋对象的整个生命周期都是又容器所控制的。

我们需要的使用的对象都是又IOC容器进行管理的,不在需要我们手动的通过new的方式创建所需要的对象,而是由IOC容器直接帮我们组装好,当我们在什么地方需要的话直接就从IOC容器中直接获取就可以了。

正控:就是在要使用某个对象时,就需要我们自己的去负责所要的对象创建

反控:就是在要使用某个对象的时候。只需要从Spring的容器中获取拿到所需要使用的对象,并不关心对象的创建过程,也就是把创建对象的控制权反转给了Spring这个框架。

下一篇:>>> Spring Bean的管理(IOC 依赖注入)


http://chatgpt.dhexx.cn/article/82QCvs7Q.shtml

相关文章

Spring框架

一&#xff0c;spring框架概述 1、spring框架是轻量级的开源JavaEE框架 2、spring可以解决企业应用开发的复杂性 3、spring有两个核心部分&#xff1a;IOC和AOP IOC&#xff1a;控制反转&#xff0c;把创建对象过程交给Spring来进行管理 AOP&#xff1a;面向切面&#xff0c;不…

简单的spring项目搭建流程

一、搭建步骤 创建空maven项目pom文件导入相应依赖jar包创建包结构&#xff08;domain、test即可)创建JavaBean配置文件编写简单示例 二、开始 1、创建一个空的maven项目 2、在pom.xml文件中导入spring5依赖jar包 <dependency><groupId>org.springframework</…

Maven搭建Spring框架

Maven搭建Spring框架 一、前言二、准备工作1、IDE2、创建项目3、导入jar包 三、创建实体四、创建Spring配置文件五、测试结果结束语 一、前言 这一篇我会比较详细的将Maven搭建Spring框架的步骤记录下来&#xff0c;可能会有很多人说这里怎么不是SpringMVC,不是Spring Boot,单…

Spring 框架的搭建

以软件idea为例 第一步&#xff1a;配置lib包 配置lib包&#xff1a;首先在web里面的web-info里面创建一个lib包。 右键点击 web-info 然后把提前准备的jar包放入&#xff0c;如需要可以评论。 然后点击jar包 shift 全选 点击右键&#xff1a;如图 之后jar包前会呈小三角 …

springboot基础框架搭建

一、SpringBoot 开源&#xff0c;轻量级开发框架 为了解决企业级应用开发的复杂性而创建的&#xff0c;简化开发 如何简化开发的 基于POJO的轻量级和最小侵入性编程通过IOC&#xff0c;依赖注入和面向接口实现松耦合基于切面AOP和管理进行声明式编程通过切面和模板减少样式…

[Spring]Spring框架搭建详解

首先是框架结构图解 Spring常用的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" xmlns:tx"http…

spring cloud 框架搭建

一、spring cloud简介 Spring Cloud为开发人员提供了用于快速构建分布式系统中某些常见模式的工具&#xff08;例如&#xff0c;配置管理&#xff0c;服务发现&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线&#xff09;。分布式系统的协调产…

spring boot框架新手搭建

使用maven搭建基本的spring boot框架 先创建一个maven项目&#xff0c;基本流程可查看&#xff1a;https://blog.csdn.net/yuguiyang1990/article/details/8796726 …

spring框架介绍及搭建

介绍 Spring是一个开源框架&#xff0c;它由Rod Johnson创建。它是为了使企业应用开发更简单。Spring使用基本的JavaBean替代以前只可能由EJB完成的事情。 spring主要起到解耦合的作用 spring主要学习AOP和IOC概念 IOC :inverse of control 控制反转或者依赖注入 控制反转&…

spring boot项目框架的搭建

spring boot项目框架的搭建 一、实验目的要求二、实验环境三、实验内容任务一 JDK的安装与配置任务二 maven组件的安装与配置任务三 设置localRepository任务四 测试任务五 eclipse中的设置任务六 spring项目的构建与运行任务七 jsp页面的部署任务八 问题与解决方案 一、实验目…

spring 框架简介与搭建

Spring的一个最大的目的就是使J2EE开发更加容易。同时&#xff0c;Spring之所以与Struts、Hibernate等单层框架不同&#xff0c;是因为Spring致力于提供一个以统一的、高效的方式构造整个应用&#xff0c;并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说S…

SpringBoot框架搭建

SpringBoot是一种开源&#xff0c;轻量级开发框架 为了解决企业级应用开发的复杂性而创建的&#xff0c;简化开发 如何简化开发的&#xff1f; 基于POJO的轻量级和最小侵入性编程通过IOC&#xff0c;依赖注入和面向接口实现松耦合基于切面AOP和管理进行声明式编程通过切面和…

Spring框架详解

简介 Spring5框架 内容介绍&#xff1a; 1.Spring概念 2.IOC容器 3.Aop 4.JDBCTEmplate 5.事物管理 6.Spring5新特性 一.Spring框架概述 1.概述 1.Spring框架是轻量级的JavaEE框架 2.Spring可以解决企业应用开发的复杂性 3.Spring有两个核心部分&#xff1a;IOC和Aop…

如何搭建一个Spring框架超详细

如何搭建一个Spring框架&#xff0c;首先我们要先了解Spring的核心构成部分 1.Spring 的构成 IOC 控制反转 spring 框架最核心的部分 DAO spring 对 访问数据库的支持 MVC spring 对 mvc设计模式的支持 ORM 对象关系映射 (数据库中的数据映射成对象的技术) 也有针对其它的ORM的…

Eclipse搭建Spring框架(绝对成功!)

花了许久才把Spring框架搭建完成&#xff0c;一把辛酸泪。。。。。。。。。。 一、首先下载好全部所需要的工具和jar包 1 安装 springsource-tool-suite: &#xff08;1&#xff09;打开eclipse-help-marketplace search中输入spring&#xff0c;下载 按install&#xff0c;…

Spring框架的介绍以及搭建

Spring框架的介绍以及搭建 1、框架和架构1.1、什么是框架1.2 架构的发展历程 2、Spring2.1、Spring框架的优势 3、IOC3.1、什么是IOC 4、Maven4、搭建Spring4.1、基于导入jar包和xml配置4.2、基于maven和xml配置4.2.1、本地搭建一个maven4.2.2、创建一个基于Maven的项目4.2.3、…

Spring 框架搭建

1 Spring 框架搭建 第一步&#xff1a;新建 Maven 项目、设置项目坐标以及Maven环境&#xff1a; 设置项目的名称和存放的工作空间&#xff1a; 第二步&#xff1a; 调整JDK版本 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEnc…

Spring框架介绍与搭建

文章目录 1. 简介1.1 什么是Spring1.2 为什么用Spring1.3 Spring5的特性 2. Spring框架核心2.1 IOC&#xff08;控制反转&#xff09;2.2 AOP(面向切面编程&#xff09;2.3 Spring 中 bean 的作用域2.4 Spring 中 bean 生命周期 3. Spring快速搭建3.1 官方提供的搭建方式3.2 使…

Spring框架搭建

Spring是一个轻量级的开源的控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;的框架&#xff0c;是很多程序员必须学的一个框架&#xff0c;所有我们使用他的第一个步骤就是导入框架&#xff0c;本文使用的是idea导入。 Spring有以下几个优点&am…

Python模块——glob模块详解

本文大纲 glob模块也是Python标准库中一个重要的模块&#xff0c;主要用来查找符合特定规则的目录和文件&#xff0c;并将搜索的到的结果返回到一个列表中。使用这个模块最主要的原因就是&#xff0c;该模块支持几个特殊的正则通配符&#xff0c;用起来贼方便&#xff0c;这个…