Spring的IOC/DI,依赖注入的实现

news/2025/1/13 8:05:46/

Spring的IOC/DI,依赖注入的实现

https://download.csdn.net/download/weixin_41957626/87546826 资源地址

 

1.什么是Spring

1.1spring3 的体系结构图

图1 spring3的体系结构图

图2 spring4体系结构图

比较spring3的体系结构图,spring4去掉了spring3中的struts模块,添加了messaging模块和websocket模块,其他模块保持不变。spring的jar包有20个。

1.下面是spring4和5的区别?

在增强开发方面spring4是web开发增强,spring5是JDK8的增强。

在特性改进方面spring4是注解、脚本、任务、MVC等其他特性改进,spring5是测试方面的改进。

2.IOC/DI

2.1 IOC/DI

1.控制反转或者是依赖注入的含义。面向接口的编程。

2.实现方式

  • 采用工厂类的方式
  • 采用spring的ioc实现

2.2Spring的配置

1.依赖导入

<!--        spring依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.24</version>
        </dependency>

2.创建配置文件

<?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
id指定的是bean的名称
class指定的是bean所在的地址
ref指定的是要引入的bean
property设置的是bean的依赖的项,ref采用的是引用的数据类型的方式,value是赋一般的值的形式
-->
    <bean id="studentDao" class="cn.lxz.dao.impl.StudentDaoImpl"/>
    <bean id="studentService" class="cn.lxz.service.impl.StudentServiceImpl">
        <property name="studentDao" ref="studentDao"/>
    </bean></beans>

3.项目目录

图3 项目目录

4.实现的代码

采用的是gif的形式展示

 

图4 spring代码展示

测试类代码

    @Test
    public void testContext(){
        //采用的是读取xml的文件的配置形式
        ApplicationContext context= new ClassPathXmlApplicationContext("Spring-context.xml");
        StudentService service1=   context.getBean(StudentService.class);
        StudentService service2= (StudentService)context.getBean("studentService");
        System.out.println(service1);
        System.out.println(service2);
        service1.addStudent(new Student(1,"张三"));
    }

图5 效果图


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

相关文章

C++——IO流

目录 C语言的输入与输出 流是什么 CIO流 C标准IO流 C文件IO流 二进制读写 文本读写 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键 盘)读取数据&#xff0c;并将值存放在变量中。…

【卷积神经网络】激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / GeLU

文章目录一、Tanh二、Sigmoid三、ReLU四、Leaky ReLU五、ELU六、SiLU七、Mish本文主要介绍卷积神经网络中常用的激活函数及其各自的优缺点 最简单的激活函数被称为线性激活&#xff0c;其中没有应用任何转换。 一个仅由线性激活函数组成的网络很容易训练&#xff0c;但不能学习…

【编程基础之Python】12、Python中的语句

【编程基础之Python】12、Python中的语句Python中的语句赋值语句条件语句循环语句for循环while循环continue语句break语句continue与break的区别函数语句pass语句异常处理语句结论Python中的语句 Python是一种高级编程语言&#xff0c;具有简单易学的语法&#xff0c;适用于各…

SpringBoot的基本概念和使用

文章目录一、什么是SpringBoot二、Spring Boot优点三、Spring Boot项目创建四、Spring Boot 配置文件1. yml语法2.properties与yml关系3.多系统的配置五、Spring Boot日志文件1.日志对象2.日志级别日志级别的设置System.out.println VS 日志的两个致命缺点3.日志持久化4.更简单…

MySQL-索引

索引介绍索引是对数据库表中一列或者多列的值进行排序的一种结构&#xff0c;使用索引可提高数据库中特定数据的查询速度。索引是一个单独的、存储在磁盘上的数据库结构&#xff0c;它们包含着对数据表里所有记录的引用指针。使用索引用于快速找出在某个或多个列中有一特定值得…

刮刮乐--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例1&#xff1a;刮刮乐 刮刮乐的玩法多种多样&#xff0c;彩民只要刮去刮刮乐上的银色油墨即可查看是否中奖。每张刮刮乐都有多个兑奖区&#xff0c;每个兑奖区对应着不同的获奖信息&#xff0c;包括“一等奖”、“二等奖”、“三等奖”和“谢谢惠顾”。假设现在有一张刮刮乐…

蓝桥杯入门即劝退(二十六)组合问题(回溯算法)

-----持续更新Spring入门系列文章----- 如果你也喜欢Java和算法&#xff0c;欢迎订阅专栏共同学习交流&#xff01; 你的点赞、关注、评论、是我创作的动力&#xff01; -------希望我的文章对你有所帮助-------- 专栏&#xff1a;蓝桥杯系列 一、题目描述 给定两个整数 n …

java性能-原生内存-内存分析

原生内存最佳实践 内存占用 jVM使用的原生内存和堆内存总和就是一个应用程序的总内存——操作系统角度 jvm启动时候加载的类路径下的jar文件相关的内存和系统其他进程共享资源的可能 测量内存占用 线程是个例外——每当创建一个线程操作系统都会分配一些原生内存存储线程栈…