控制反转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

从充电管理芯片里‘偷师’:拆解一个PMOS双向开关电路,搞定你的固态继电器需求

本文深入解析了PMOS双向开关电路在固态继电器应用中的设计要点,重点探讨了防电流倒灌和高侧双向开关的实现技巧。通过拆解充电管理芯片中的PMOS背靠背结构,工程师可以构建高效可靠的固态开关方案,适用于智能硬件和电池管理系统。文章还提供了关键参数选择、电路优化建议及实测数据对比,助力解决电源防反接等工程难题。

weixin_33698043的博客 483

IOC 控制反转

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

qq_61453770的博客 7677

车规级非易失存储选型指南:从AEC-Q100到ISO 26262的可靠性设计

非易失存储器是电子系统中负责长期保存关键数据与代码的核心组件,其可靠性直接决定了系统的长期稳定运行能力。在汽车电子领域,这一要求被提升到了极致,必须满足严苛的车规级标准。从原理上看,存储器的数据保持能力、擦写寿命等关键参数在高温、振动等恶劣环境下会急剧衰减,因此需要专门的设计与验证。其技术价值在于保障车辆全生命周期的功能安全与数据完整性,避免因存储失效导致的安全隐患或频繁维护。应用场景涵盖从发动机控制单元、自动驾驶域控制器到智能座舱的各类电子控制单元。本文聚焦于车规级非易失存储的选型,深入解析AEC-Q10

weixin_30938149的博客 458

【上海大学计算机组成原理实验报告】七、程序转移机制

学习实现程序转移的硬件机制//掌握堆栈寄存器的使用//手动方式实现子程序调用转移过程//手动方式实现子程序返回转移过程//编程实现`OUT`寄存器交替显示`11`和`55`//若要求`11`和`55`各显示`50`次后停机,应该如何修改程序?//根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当`LDPC`有效时,如果此时`DUBS`上的值就是转移的目标地址,则此目标地址被打入`PC`,从而实现程序的转移;若`LDPC`为`0`是附带条件的,就形成“条件转移”。

HackerKevon的博客 2474

控制反转-IoC

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

kayyoo的博客 1206

VMware17安装教程(附安装包)VMware17小白详细一键安装教程

VMware 17.5 是一款强大的虚拟机软件。本安装教程将为您详细介绍VMware17安装教程其下载、安装步骤及验证方法,助您轻松完成安装,开启虚拟化体验。

2501_91538706的博客 2万+

IOC (控制反转)

Spring框架——IOC部分

weixin_46942121的博客 4389

SECS/GEM协议中的关键指令详解:从S1F1到S9F9的完整指南

本文详细解析了SECS/GEM协议中从S1F1到S9F9的关键指令,涵盖设备状态管理、控制诊断、报警处理等核心功能。通过实际案例和调试技巧,帮助开发者掌握半导体制造设备通信标准,解决SECS/GEM协议在实际工程应用中的通讯难题,提升生产线智能化水平。

weixin_26899659的博客 397

【Labview】对连续采集数据的一种采样方法

图1如图1,想要对这样一个连续信号进行数据点的采集,我根据网上收集到的方法,在此分享一下最终的结果。可以拓展结合文件的写入,完成对连续信号的采集和输出。 已知: 一个连续信号,如图1. 目标: 设定一定采集点个数、采集点时间间隔、和采集周期次数,得到这条连续信号的数据点,如图2. 图2 方法如下: 主要利用的是队列的方法。 在连续信号生成的时候,不断的写入队列,并且清除队列。 ...

李时珍食疗志的博客 1万+

IOC(控制反转)

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

m0_73837751的博客 6531

【Inpho精品教程】Inpho简介、安装教程(附Inpho8安装包下载)

本文介绍Trimble旗下Inpho UASMaster航空摄影测量软件,涵盖其核心功能模块(如Match-AT、OrthoMaster、Summit Evolution等)及安装教程。文章详细说明了从安装到汉化破解的全过程,并提供Inpho 8.0.1安装包下载链接与提取码,适用于无人机摄影测量专业用户。

智慧空间实验室 1万+

IOC控制反转

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

zhuzhu_YT的博客 9218

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

什么是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、付费专栏及课程。

余额充值