控制反转IoC

Spring IOC(控制反转)思想笔记 Spring IOC(控制反转)思想笔记 IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为用户一个小需求的变化使得程序员需要改动大量代码。 案例 如果按照之前javaweb的固定方法,写一个简单的业务逻辑 一个DAO接口 public interface UserDao { public void getUser(); } 实现DAO接口 public class UserDaoImpl implements UserDao { @Overrid 阅读详情

1.1Spring组成

Spring框架主要由七大模块组成。
Spring的七大模块

  1. 核心模块
    Spring Core模块是Spring的核心容器,他实现了IoC模式,提供了Spring框架的基础功能。在模块中包含组重要的BeanFactory类是Spring的核心类,负责对JavaBean的配置与管理。Spring Core模块采用Factory模式实现了IoC容器即依赖注入。
  2. Context模块
    Spring Context模块继承BeanFactory类。它还提供了框架式的bean的访问方式和很多企业级的功能,如JNDI访问、支持EJB、远程调用、集成模板框架、E-mail和定时任务调度等。
  3. AOP模块
    Spring集成了所有AOP功能,通过事务管理可以使任意Spring管理的对象AOP化。
  4. DAO模块
    DAO模块提供了JDBC的抽象层,简化了数据库厂商的异常错误。
  5. O/R映射模块
  6. Web模块
  7. MVC模块
    Spring Web MVC模块建立在Spring核心功能之上,这使它能拥有Spring框架的所有特性。

1.2简单配置Spring

jar包名称说明
spring.jar整个Spring模块,包含表中所有的jar的功能
spring-core.jarSpring的核心模块,包含IoC容器
spring-aop.jarSpring的AOP模块
spring-context.jarSpring的上下文,包含ApplicationContext容器
spring-dao.jarSpring的DAO模块,包含对DAO与JDBC的支持
spring-orm.jarSpring的ORM模块,支持Hibernate、JDO等ORM工具
spring-web.jarSpring的Web模块,包含Web application context
spring-webmvc.jarSpring的MVC框架模块

Spring的配置结构如下图
Spring配置结构

1.3 ApplicationContext的应用

ApplicationContext容器不仅提供了BeanFactory的多有特性,同时也允许使用更多的声明方式来得到开发人员需要的功能。

  1. ClassPathXmlApplicationContext类
    从当前类路径中检索配置文件并加载来创建容器,其语法格式如下:
//获取到容器,容器配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//从容器中获取指定id的对象
People p = (People) context.getBean("p1");//对象不是new出来的,是从容器中get出来的
  1. FileSystemXmlApplicationContext类
    该类也是ApplicationContext接口的实现类,和1区别在于读取Spring配置文件的方式。它不再从类路径中获取配置文件,而是通过参数指定配置文件的位置,可以获取类路径之外的资源。
ApplicationContext context = new ClassPathXmlApplicationContext(String configLocation);
  1. WebApplicationContext类
    WebApplicationContext是Spring的Web容器,有两种方法可以再Servlet中使用WebApplicationContext。第一种方法是在Servlet的web.xml文件中配置Spring的ContextLoaderListener监听器;第二种方法同样修改web.xml文件,在文件中添加Servlet,使用Spring的org.springframework.web.context.ContextLoaderServlet类。

2.1控制反转与依赖注入

IoC将创建实例的任务交给IoC容器,这样开发应用代码时只需要直接使用类的实例,这就是IoC控制反转,即“依赖注入”,它使程序组件或类之间尽量形成一种松耦合的结构。

依赖注入有三种实现类型,Spring支持后两种:

  1. 接口注入
  2. Setter注入
  3. 构造器注入

2.2bean配置

想要在Spring IoC容器中获取一个bean,首先要在配置文件中的< beans>元素中配置一个子元素< bean>,Spring的控制反转机制会根据< bean>元素的具体配置来实例化这个bean实例。

<bean id="test" class="com.bean.Test">

其中,id属性为bean的名称,class属性为对应的类名,这样通过BeanFactory容器的getBean(“test”)方法就可以获取到该类的实例。

2.3Setter注入

首先创建用户的JavaBean,代码如下:

public class User{
	private String name;//姓名
	private Integer age;//年龄
	private String sex; //性别
	...                 //省略Setter()和Getter()方法
}

在Spring的配置文件ApplicationContext.xml中配置该JavaBean,代码如下:

<bean name="user" class="com.bean.User">
	<property name="name">
		<value>小强</value>
	</property>
	...
</bean>

2.4构造器注入

在用户JavaBean中创建构造方法,代码如下:

public class User{
	private String name;//姓名
	private Integer age;//年龄
	private String sex; //性别
	//构造方法
	public User(String name,Integer age,String sex){
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
}

在Spring的配置文件ApplicationContext.xml中通过< constructor-arg>元素为JavaBean的属性赋值,代码如下:

<bean name="user" class="com.bean.User">
	<constructor-arg>
		<value>小强</value>
	</constructor-arg>
	...
</bean>

以上内容均来自《Java Web从入门到精通》,作为自己的学习笔记,为了记录自己学习和探索的过程,仅供交流和学习。

控制反转( IoC) 控制反转(IoC)是一种重要的设计原则,通过外部容器管理对象依赖关系,降低模块耦合度并提升可测试性。它适用于大型项目,可简化对象生命周期管理,但不推荐用于小型脚本或性能敏感场景。.NET生态中常见的IoC框架包括Unity、Ninject、Autofac等,各有优劣,需根据项目需求选择。理解IoC基本概念和依赖注入是提升代码质量的关键,合理应用可优化项目开发效率。 阅读详情

相关推荐

Spring控制反转(IoC)的理解

NULL 博文链接:https://hgxs-org.iteye.com/blog/1469237

IOC(控制反转)

所谓依赖注⼊,就是由 IoC 容器在运⾏期间,动态地将某种依赖关系注⼊到对象之中依赖注入就是在程序运行的时候由IOC容器动态的将我所依赖的对象加入到当前类中的过程谁依赖于谁 : 应用程序依赖于IOC容器为什么需要依赖 : 应用程序需要IOC容器来提供对象所需要的外部资源谁注入谁 : IOC容器注入应用程序依赖的对象注入了什么 : 注入某个对象所依赖的外部资源(包括对象,资源,常量数据...)

欢迎来到我的博客,在这里我会用我的方式来讲解知识,请大家多多关照 8856

QMT与通达信代码实战:从预警到交易的自动化实现

本文详细介绍了如何利用QMT量化交易平台与通达信软件实现从预警到交易的全自动化。通过读取通达信预警生成的板块文件,QMT策略可自动执行买卖指令,有效解决手动交易滞后问题。文章提供了完整的代码框架、核心原理拆解及实盘注意事项,帮助投资者构建高效、纪律性的自动化交易系统。

ansible6ops的博客 648

IOC 控制反转

(80左右都是使用的set注入)属性:value就是对象的名称,也就是bean的id值,value的值是唯一的,创建的对象在整个spring的容器中就一个。创建对象,给属性赋值。DI:依赖注入,只需要在程序中提供要使用的对象的名称就可以,至于对象如何在容器中创建,赋值,查找都由容器内部实现。的上面):放在控制器(处理器)类的上面,创建控制器对象的,控制器对象,能够接受用户提交的参数,显示请求的处理结果。描述的:把对象的创建,赋值,管理工作都交给代码之外的容器实现,也就是对象的创建是有其它外部资源完成。

qq_61453770的博客 7677

Qt应用软件【协议篇】自定义协议处理串口半包贴包

Qt串口数据,半包,贴包,丢包数据处理

小鱼酱的博客 1211

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1426

控制反转-IoC

控制反转(Inversion of Control,缩写为IoC),是指原来由程序代码中主动获取的资源,转变为由第三方获取并使原来的代码被动接收的方式,以达到解耦的效果。

kayyoo的博客 1206

C#解析基恩士(KEYENCE)PLC数据:KV协议通信与实时监控实现

KV协议是基恩士PLC使用的一种专用通信协议,通常用于与上位机进行数据交换。KV协议通过RS-232C、RS-485、Ethernet等接口与上位机通信,支持多种数据类型的读写,包括但不限于位、字、双字、浮点数等。简洁易用:KV协议的通信格式简单,易于实现。支持多种数据类型:支持位数据、字数据、定长字符串等。高效实时性:能够提供较高的实时数据交换性能,适合实时监控应用。本文介绍了如何通过C#与基恩士KV系列PLC进行通信,实现数据的解析和实时监控功能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1807

IOC (控制反转)

Spring框架——IOC部分

weixin_46942121的博客 4389

用一套可追溯的闭环,把设备变成可管理的资产:SAP S/4HANA Asset Management 模块详解

摘要:SAP S/4HANA的资产管理模块(EAM)通过标准化流程管理企业资产全生命周期,解决资产状态、需求和资源的不确定性。系统将资产抽象为技术对象,支持纠正性和预防性维护流程,通过维护工单实现可执行的工作包,并与物料管理、财务、生产计划等模块集成形成管理闭环。该模块可帮助降低非计划停机时间,通过数据驱动决策优化维护策略,提升资产可用率和运营效率。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 254

【YOLOv11改进 - 特征融合】SDI:多层次特征融合模块,替换contact操作

【YOLOv11改进 - 特征融合】SDI:多层次特征融合模块,替换contact操作

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1771

IOC(控制反转)

4.1.什么是Bean:Spring容器中的核心组件在Spring框架中,Bean是由Spring IOC容器管理的对象,代表应用程序中的组件。Bean可以是任何Java对象,比如服务类、数据访问层类或其他业务逻辑类。Spring容器通过读取配置或注解,管理这些Bean的生命周期,包括创建、配置、依赖注入和销毁。Bean是Spring应用程序的基本构建块,Spring容器通过依赖注入来管理这些对象的依赖关系,从而实现松耦合设计。4.2.配置Bean的多种方式。

m0_73837751的博客 6531

Qt5.14.2开发Mqtt应用程序

然后,你就做不下去了…很明显,大部分博主写的东西不是缺头就是缺尾,带偏了许多读者。,因此我们需要clone的是这个分支版本,而不是这个默认的。然后将编译产物中include里的所有.h文件复制到。下载完后直接默认安装即可,这一步没什么好说的。看到了没,这个才是正确的操作方式,而主线的。信号来判断,自行实现自己的槽函数。然后选择构建方式,这里我选择的是。信号来判断自行实现自己的槽函数。信号来判断自行实现自己的槽函数。源代码,如下图所示,双击打开。收到下行消息时,可以通过连接。

Bruce.yang的嵌入式之旅 2310

IOC控制反转

通过Spring的IOC容器,我们不需要在 BusinessService 中创建 Logger 的实例,而是通过配置类 AppConfig 来告诉Spring如何创建这些Bean,以及它们之间的依赖关系。在传统的编程模式中,组件之间的依赖关系是由组件自身在内部创建和维护的。而在控制反转模式中,这种依赖关系由外部容器(如Spring框架)来管理,组件不再负责自己的依赖,而是通过外部容器来注入所需的依赖。Spring框架是实现控制反转的典型例子,它提供了一个强大的I0C容器来管理组件的生命周期和依赖关系。

zhuzhu_YT的博客 9218

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IoC控制反转

IoC控制反转 一、IoC概念和原理 1. 什么是IoC 2. IoC底层原理 二、IoC过程 1. xml配置文件,配置创建的对象 2. 有UserService和UserDao类,创建工厂类 三、IoC接口 1. IoC思想基于IoC容器完成,IoC容器底层就是Bean工厂 2. Spring提供实现IoC容器的两种方式(两个接口) 3. ApplicationContext接口的实现类 四、IoC操作

weixin_44775375的博客 4489

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

什么是IoC控制反转思想?

IoC(Inversion of Control)即控制反转,这里的控制是代表控制权的意思,IoC是一种编程思想,旨在降低代码之间的耦合度、降低代码的维护成本。这种思想的具体内容就是将对象的创建和管理交给外部的容器和框架,不再是由对象的调用者去new一个对象。在这个过程中,对象的创建和管理的权力由传统的对象调用者转移到了外部的容器和框架,即对象的控制权发生了反转。

luming的博客 2652

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

控制反转(IoC)是什么?

学习Spring框架的小伙伴肯定都知道Spring框架的核心是IoC容器和AOP模块。也都听说过。IoC容器是Spring框架的底层基础,负责管理对象的创建和对象依赖关系的维护IoC是一种思想,而DI就是实现这个思想的一种方法。那么本文就带大家来了解什么是IoC。

daydayup 2015

Ioc(控制反转)

通俗点讲,因为项目中每次创建对象是很麻烦的,所以我们使用 Spring IoC 容器来管理这些对象,需要的时候你就直接用,不用管它是怎么来的、什么时候要销毁,只管用就好了。容器负责创建、配置和管理 bean,也就是它管理着 bean 的生命,控制着 bean 的依赖注入。控制反转就是把创建和管理 bean 的过程转移给了第三方。而这个第三方,就是 Spring IoC Container,对于 IoC 来说,最重要的就是。bean又是什么?

2405_88415278的博客 597

IOC控制反转理解

1. IOC基础 IOC:全称Inversion Of Control,中文翻译是控制反转的意思。初学Spring绕不过去的一个弯,需要好好理解IOC的思想。网上看了很多博客,也看了很多网课,但是还是云里云雾。终于看到一个容易理解的例子,写下自己对IOC的理解。 2. IOC推导与理解 首先编写一个基本的项目,结构如下: 有一个Meizi(妹子)接口,里面有一个方法describe。 编写四个类(四种类型的妹子):Yujie(御姐)、Luoli(萝莉)、Xuemei(学妹)、NvWang(女王)类

weixin_43808717的博客 1150

Spring IOC控制反转

在Spring容器中管理的Bean对象的作用域,可以通过scope属性或用相关注解指定其作用域。最常用是singleton(单例)或prototype(多例)。singleton:单实例,是默认值。这个作用域标识的对象具备全局唯一性。当把一个 bean 定义设置scope为singleton作用域时,那么Spring IOC容器只会创建该bean定义的唯一实例。也就是说,整个Spring IOC容器中只会创建当前类的唯一一个对象。

weixin_58069198的博客 904

ioc控制反转_IoC控制反转是什么意思?

Spring最大的特点,相信大家在网上看了许多,都知道是控制反转(IOC),或者叫依赖注入(DI),那么究竟什么是控制反转,什么是依赖注入呢?IOC(inversion of control)控制反转模式;控制反转是将组件间的依赖关系从程序内部提到外部来管理;DI(dependency injection)依赖注入模式;依赖注入是指将组件的依赖通过外部以参数或其他形式注入;看起来很绕是...

weixin_39972996的博客 125

Spring IOC控制反转原理详解

查阅这些接口的源码和说明发现,每个接口都有他使用的场合,它主要是为了区分在 Spring 内部在操作过程中对象的传递和转化过程中,对对象的数据访问所做的限制。例如 ListableBeanFactory 接口表示这些 Bean 是可列表的,而 HierarchicalBeanFactory 表示的是这些 Bean 是有继承关系的,也就是每个Bean 有可能有父 Bean。AutowireCapableBeanFactory 接口定义 Bean 的自动装配规则。

2301_76166241的博客 1079
上一篇: Java Web应用开发体系与应用技术
下一篇: 面向切面编程AOP
_GNeh
博客等级 码龄9年 14粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值