首先在pom.xml里面导入依赖:

    <dependencies>

        <!--要使用spring需要添加4个包但是maven会把他的几个依赖包同时下好-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.6.RELEASE</version>
</dependency> </dependencies>

配置applicationContext.xml:

 1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:context="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans.xsd
7 http://www.springframework.org/schema/context
8 http://www.springframework.org/schema/context/spring-context.xsd">
9
10 <!--基于注解的方式我们的spring来实现控制反转以及依赖注入,扫描study下面的所有的包
11 包下面的所有的类但是符合条件的类是上面必须要带一个注解
12 -->
13 <context:component-scan base-package="com.lv.study"></context:component-scan>
14
15 </beans>

项目结构:

测试接口:

public interface TestService {

    //用来测试的
public void show(); }

测试的实现类:

 1 @Component
2 public class TestServiceImpl implements TestService {
3
4 TestMapper testMapper;
5
6 public void show() {
7
8 System.out.println("this is show time");
9 }
10 }

测试的servlet:

 1 @Component//代表当前类被spring去管理
2 public class TestServlet {
3
4 //核心部分就是:IOC(现在都是基于注解的方式)
5 //1: spring 帮我们创建对象; 控制反转IOC
6 //2: spring 帮我们赋值;依赖注入DI
7
8
9 @Autowired//将我们spring控制的testService的实现类,对这个属性进行依赖注入(赋值)
10 TestService testService;
11
12
13 public void test(){
14
15 testService.show();
16 }

测试结果类:

 1 public class Test {
2
3 public static void main(String[] args) {
4
5 //如何获取testservlet类
6 //根据spring提供给我们的实例获取xml文件里面的所有的bean
7 //在spring里面吧每一个交给spring管理的对象(类)都叫一个bean
8 ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
9 TestServlet testServlet = (TestServlet) ac.getBean("testServlet");
10
11 testServlet.test();
12
13 }
14 }

测试结果:

spring的控制反转DI---基于注解实现的更多相关文章

  1. Helloworld之Spring依赖注入/控制反转(DI/IoC)版

    Helloworld之Spring依赖注入/控制反转(DI/IoC)版 作者:雨水, 日期:2014-10-29 摘要:本文主要用于培训刚開始学习的人理解Spring中的依赖注入的基本概念. 先介绍依 ...

  2. 学习Spring IOC控制反转和DI依赖注入总结

    30岁的小曹,20岁的身体,还在坚持在能力允许控制范围内22点睡觉,5点起床锻炼身体,好好学习,除了加班或者像今天这样的深夜,再一次写已经有X百万人写过的 spring Ioc 的总结博客. 一.IO ...

  3. Spring的控制反转(IOC)和依赖注入(DI)具体解释

    Spring的控制反转(IOC)和依赖注入(DI)具体解释 首先介绍下(IOC)控制反转: 所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制器就有应 ...

  4. Spring IOC(控制反转)思想笔记

    Spring IOC(控制反转)思想笔记 IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为用户一个小需求的变化使得程序员需要改动大量代码. 案例 如果按照之前javaw ...

  5. 【SSH】——spring的控制反转和依赖注入

    spring是一个轻量级的容器框架,主要是为了使企业的开发变得简单.高效.无论是从大小还是开销来讲,他都可以算是轻量级的,也是非侵入性的. 下图是spring的框架示意图,说到spring,就不得不提 ...

  6. Spring IoC控制反转创建实例

    Spring IoC控制反转创建实例写一个配置文件beans.xml,配置文件的约束可以访问:完整链接:https://repo.spring.io/libs-release-local/org/sp ...

  7. Spring IoC 源码分析 (基于注解) 之 包扫描

    在上篇文章Spring IoC 源码分析 (基于注解) 一我们分析到,我们通过AnnotationConfigApplicationContext类传入一个包路径启动Spring之后,会首先初始化包扫 ...

  8. Spring 04: IOC控制反转 + DI依赖注入

    Spring中的IOC 一种思想,两种实现方式 IOC (Inversion of Control):控制反转,是一种概念和思想,指由Spring容器完成对象创建和依赖注入 核心业务:(a)对象的创建 ...

  9. Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)

    关于依赖注入, 这篇博文写的非常简单易懂. https://github.com/android-cn/blog/tree/master/java/dependency-injection 此外, 博 ...

  10. Spring入门--控制反转(IOC)与依赖注入(DI)

        1.控制反转(Inversion of Control)与依赖注入(Dependency Injection) 控制反转即IoC (Inversion of Control).它把传统上由程序 ...

随机推荐

  1. ubuntu网络连接失败

    首先要保证pc上可以连接上网络,然后进行下面的操作: 1.首先选择VMware的编辑选项 2.选择虚拟网络编辑器 3.还原默认设置,等待几分钟,确定就可以解决了

  2. 【Docker】常用服务镜像安装

    Docker常用安装 总体步骤 搜索镜像:docker search xxx 拉取镜像:docker pull xxx 查看镜像:docker images 启动镜像:docker run xxx 停 ...

  3. 【电脑】VirtualBox 安装 Win98 写网页

    VirtualBox 安装 Win98 写网页 记录一下,我成功在VirtualBox中安装了Win98系统,并且安装了Dreamweaver 3.0写网页. 零.起因 学校机房的极域电子教室软件不太 ...

  4. sql server2008出现set 选项的设置不正确:"ARITHABORT”

    ( SELECT STUFF(( SELECT '','' + CODE FROM INVNEWSAL11 WHERE (MASTERI=BILRCV.SRCERI) OR (LINKERI IN ( ...

  5. BotSharp + MCP 三步实现智能体开发

    1. 简介 1.1 什么是MCP Model Context Protocol(MCP)模型上下文协议是一种标准化协议,它让大模型能够更容易地和外部的数据.工具连接起来.你可以把MCP想象成一个通用的 ...

  6. RocketMQ消息是如何存储的

    RocketMQ的消息存储是一个复杂而高效的过程,设计上充分考虑了性能和扩展性, 消息存储的主要组件包括CommitLog文件.消费队列文件(ConsumerQueue).以及索引文件(IndexFi ...

  7. rabbitmq的消息的有顺序性

    一.rabbitmq:拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点:或者就一个queue但是对应一个consumer,然后这个consumer内部用内 ...

  8. 理解tomcat中的BIO、NIO、AIO、ARP

    理解tomcat中的BIO.NIO.AIO.ARP tomcat作为springboot中默认的web容器,了解tomcat的运转可以帮助我们更好的去调整tomcat的参数达到更好的性能 前置知识 I ...

  9. Python实验3 函数与代码复用

    目的:理解函数封装与递归思想 实验任务: 基础 :编写函数cal_factorial(n)计算阶乘(循环实现). 源码: def cal_factorial(n): result = 1 for i ...

  10. PyQt6安装与配置(附带Vscode配置)

    1. 安装PyQt6和PyQt-tools pip install PyQt6 pip install PyQt6-tools 2. Vscode配置QtDesigner 安装PyQt Integra ...