news 2026/7/5 9:18:36

Spring框架的介绍和IoC入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring框架的介绍和IoC入门

目录

1.Spring框架介绍

1.1 Spring 框架的概述

1.2 Spring框架的优点

2.SpringIoC

2.1 什么是IoC?

2.2 入门程序

3.IOC技术总结


1.Spring框架介绍

1.1 Spring 框架的概述

Spring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的 松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由RodJohnson创建。简单来说,Spring 是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。 Spring 是于2003 年兴起的一个轻量级的Java开发框架,由RodJohnson在其 著作Expert One-On-One J2EEDevelopment and Design中阐述的部分理念和原 型衍生而来。 它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层 架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提 供集成的框架。 Spring 的核心是控制反转(IoC控制反转)和面向切面(AOP)。简单来说,Spring 是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。

1.2 Spring框架的优点

1.方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象创建和依赖关 系维护,交给Spring管理。

2.AOP 编程的支持,Spring提供面向切面编程,可以方便的实现对程序进行权限 拦截、运行监控等功能。(可扩展性)

3.声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程。

4.方便程序的测试,Spring对Junit4支持,可以通过注解方便的测试Spring程序。

5.方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对 各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz 等)的直接支持。

6.降低JavaEE API 的使用难度,Spring 对JavaEE开发中非常难用的一些API (JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

2.SpringIoC

2.1 什么是IoC?

IOC-- Inverse of Control,控制反转,将对象的创建权力反转给Spring框架!! 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计 原则,可以用来减低计算机代码之间的耦合度。 解决问题:使用IOC可以解决的程序耦合性高的问题!!Spring的工厂读取配 置文件。

2.2 入门程序

导入依赖:

<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies>

创建UserService接口及其实现类:

package com.qcby.service; public interface UserService { void hello(); }
package com.qcby.service.Impl; import com.qcby.service.UserService; public class UserServiceImpl implements UserService { @Override public void hello() { System.out.println("Hello IOC!"); } }

编写配置文件applicationContext.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 http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--IOC管理bean --> <bean id="userService" class="com.qcby.service.Impl.UserServiceImpl"></bean> </beans>

测试方法:

import com.qcby.service.UserService; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Demo1 { /** * 入门程序 */ @Test public void run1() { //使用Spring的工厂 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //通过工厂获得类 UserService userService = (UserService) context.getBean("userService"); userService.hello(); } }

运行:

流程:

导入Spring依赖(如spring-context)

编写接口与实现类

创建Spring配置文件

通过ApplicationContext获取Bean并调用方法

3.IOC技术总结

ApplicationContext接口,工厂的接口,使用该接口可以获取到具体的Bean对象。

该接口下有两个具体的实现类。

ClassPathXmlApplicationContext,加载类路径下的Spring配置文件。 FileSystemXmlApplicationContext,加载本地磁盘下的Spring配置文件。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 21:01:39

ArcObjects SDK 10.8:从零开始的GIS开发实战指南

ArcObjects SDK 10.8&#xff1a;从零开始的GIS开发实战指南 【免费下载链接】arcobjects-sdk-community-samples This repo contains the source code samples (.Net c#, .Net vb, and C) that demonstrate the usage of the ArcObject SDK. 项目地址: https://gitcode.com…

作者头像 李华
网站建设 2026/7/5 3:52:47

Windows Server 2016 中文版、英文版下载 (2025 年 12 月更新)

Windows Server 2016 中文版、英文版下载 (2025 年 12 月更新) Windows Server 2016 x64 Version 1607 (updated Dec 2025) 请访问原文链接&#xff1a;https://sysin.org/blog/windows-server-2016/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a…

作者头像 李华
网站建设 2026/7/3 1:54:02

pycharm下新建一个项目并加入svn

因为要计划要经常新建工程&#xff0c;不再是都放在一个工程里面搞应用实现&#xff0c;另外还要加入svn版本库管理&#xff0c;所以稍微整理了一下新建的过程&#xff0c;供参考。 1、python版本 C:\Users\yegang>python -V Python 3.11.02、安装django并升级pip C:\Users\…

作者头像 李华
网站建设 2026/7/3 13:59:41

用于电力系统瞬态稳定性评估的机器学习。 从数据挖掘和机器学习的角度来解决电力系统的稳定性

用于电力系统瞬态稳定性评估的机器学习。 从数据挖掘和机器学习的角度来解决电力系统的稳定性&#xff0c;该模型由去噪堆叠自编码器和投票集成分类器构建。 集成由来自支持向量机和随机森林的池化预测组成。 报告并讨论了分类器在电力系统测试用例中的应用结果。 TSA问题的ML应…

作者头像 李华
网站建设 2026/7/1 14:31:10

三小时前刚调通的新鲜案例还在冒热气。ZYNQ这玩意儿玩TCP传输,核心就三件事:怎么把PL数据塞进DDR、怎么让LWIP别偷懒、怎么让DMA别堵车。直接上干货

ZYNQ平台基于LwIP实现TCP数据通信&#xff0c;PL端产生数据传递到PS端的DDR3&#xff0c;再利用LwIP通过TCP传输到PC端。 实测数据吞吐量能到达到500Mbps左右&#xff0c;最高能到700M 长达一小时的视频&#xff0c;从硬件设计的注意事项&#xff0c;到软件设计的思路都包含了。…

作者头像 李华
网站建设 2026/7/4 12:00:25

Mcdowell-CV:专业级LaTeX简历模板终极指南

Mcdowell-CV&#xff1a;专业级LaTeX简历模板终极指南 【免费下载链接】mcdowell-cv A Nice-looking CV template made into LaTeX 项目地址: https://gitcode.com/gh_mirrors/mc/mcdowell-cv 在当今竞争激烈的求职市场中&#xff0c;一份专业、整洁的简历是脱颖而出的关…

作者头像 李华