Spring入门案例--IOC入门案例

news/2025/2/12 5:26:15/

IOC入门案例思路分析

(1)Spring是使用容器来管理bean对象的,那么管什么?

主要管理项目中所使用到的类对象,比如(Service和Dao)

(2)如何将被管理的对象告知IOC容器?

使用配置文件

(3)被管理的对象交给IOC容器,要想从容器中获取对象,就先得思考如何获取到IOC容器?

Spring框架提供相应的接口

(4)IOC容器得到后,如何从容器中获取bean?

调用Spring框架提供对应接口中的方法

(5)使用Spring导入哪些坐标?

用别人的东西,就需要在pom.xml添加对应的依赖

入门案例代码实现

需求分析:将BookServiceImpl和BookDaoImpl交给Spring管理,并从容器中获取对应的bean 对象进行方法调用。

1.创建Maven的java项目

2.pom.xml添加Spring的依赖jar包

3.创建BookService,BookServiceImpl,BookDao和BookDaoImpl四个类

4.resources下添加spring配置文件,并完成bean的配置

5.使用Spring提供的接口完成IOC容器的创建

6.从容器中获取对象进行方法调用

步骤1:创建Maven项目

步骤2:添加Spring的依赖jar包

pom.xml

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>
</dependencies>

步骤3:添加案例中需要的类

创建BookService,BookServiceImpl,BookDao和BookDaoImpl四个类

public interface BookDao {public void save();
}public class BookDaoImpl implements BookDao {public void save() {System.out.println("book dao save ...");}
}
public interface BookService {public void save();
}
public class BookServiceImpl implements BookService {private BookDao bookDao = new BookDaoImpl();public void save() {System.out.println("book service save ...");bookDao.save();}
}

步骤4:添加spring配置文件

resources下添加spring配置文件applicationContext.xml,并完成bean的配置

步骤5:在配置文件中完成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">
<!--bean标签标示配置bean
id属性标示给bean起名字
class属性表示给bean定义类型
--><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/><bean id="bookService" class="com.itheima.service.impl.BookServiceImpl"/>
</beans>

 注意事项:bean定义时id属性在同一个上下文中(配置文件)不能重复

 

步骤6:获取IOC容器

要想拿bean先拿容器

使用Spring提供的接口完成IOC容器的创建,创建App类,编写main方法

public class App {public static void main(String[] args) {//获取IOC容器ApplicationContext ctx = new
ClassPathXmlApplicationContext("applicationContext.xml");}
}

 

步骤7:从容器中获取对象进行方法调用

public class App {public static void main(String[] args) {//获取IOC容器ApplicationContext ctx = new
ClassPathXmlApplicationContext("applicationContext.xml");
// BookDao bookDao = (BookDao) ctx.getBean("bookDao");
// bookDao.save();BookService bookService = (BookService) ctx.getBean("bookService");bookService.save();}
}

 

步骤8:运行程序

测试结果为:

Spring的IOC入门案例已经完成,但是在BookServiceImpl的类中依然存在BookDaoImpl对象的 new操作,它们之间的耦合度还是比较高,这块该如何解决,就需要用到下面的DI:依赖注入。 


http://www.ppmy.cn/news/44546.html

相关文章

网络安全自学笔记+岗位介绍

我就在这个行业&#xff0c;目前湖南&#xff0c;薪资就没必要说了&#xff0c;高就对了。 这个行业优势就是工资高&#xff0c;缺点就需要一直学&#xff0c;卷得要死&#xff0c;不是跟别人卷&#xff0c;而是自己卷&#xff0c;一会后面细说 这个行业目前分为几个岗位&#…

低代码,是稳打稳扎还是饮鸩止渴?

2023年&#xff0c;业内对低代码的发展充满了想象。 人们认为&#xff0c;未来低代码它的商业价值不可估量。 据Gartner的最新报告显示&#xff0c;到2023年&#xff0c;全球低代码开发技术市场规模预计将达到269亿美元&#xff0c;比2022年增长19.6%。 随着数字化进入深水区&a…

Excel VBA 之Interior 对象设置底色

Interior 对象 代表一个对象的内部 针对interior对象&#xff0c;我们用得最多的是它的颜色&#xff0c;下面就来讨论一下。 1.ColorIndex 索引颜色值 Sub 索引颜色值()For i 1 To 56Cells(i, 1).Interior.ColorIndex iCells(i, 2) iNext iFor i 1 To 56Cells(i, 3).Interi…

【C++】哈希的应用——bitset(STL)位图

哈希的应用——bitset(STL)位图 文章目录哈希的应用——bitset(STL)位图一、bitset的介绍1.位图的引入2.位图的概念3.位图的应用二、bitset的使用1.bitset的构造方式2.bitset成员函数的使用3.bitset运算符的使用三、bitset位图的模拟实现1.位图的基本框架2.成员函数2.1.构造函数…

【教程】Unity 与 Simence PLC 联动通讯

开发平台&#xff1a;Unity 2021 依赖DLL&#xff1a;S7.NET 编程语言&#xff1a;CSharp 6.0 以上   一、前言 Unity 涉及应用行业广泛。在工业方向有着一定方向的涉足与深入。除构建数据看板等内容&#xff0c;也会有模拟物理设备进行虚拟孪生的需求需要解决。而 SIMATIC&a…

4点决定你在银行的到手薪资

众所周知&#xff0c;银行的工资水平在整个国家中也是排名靠前的。然而&#xff0c;全国范围之内&#xff0c;有4000多家银行&#xff0c;有20多万个网点&#xff0c;不同的银行&#xff0c;甚至同一银行不同区域的网点之间的工资差别都是比较大的&#xff0c;即使是在同一家银…

如何用ChatGPT写毕业论文?

老早之前就听说有同学用ChatGPT写论文了 但是一直不觉得人工智能够真的替代人类 正好最近毕业论文开始降重了&#xff0c;超高的重复率愁得我快睡不着了 刷微博突然看到这个有关ChatGPT的问题。 出于好奇的我决定先来试试这个ChatGPT到底能不能帮我解决降重问题哈哈哈 点击…

报错解决:Python ‘NoneType‘ object is not subscriptable , 获取到的数据为None,需要保留数据

人生苦短&#xff0c;我用python 爬取某DB电影数据的时候&#xff0c; 在获取内容的时候出现 NoneType object is not subscriptablePython 资料报错交流:点击此处跳转文末名片获取 获取数据的部分代码是&#xff1a; writer_avatars (writers_list[wi][avatars][small]) …