Spring 两大核心IOC和DI

Spring的两大核心是IOC和DI

IOC:控制反转,对象创建的权利交给springApplication容器

DI:依赖注入,注入的是属性

传统意义上创建对象都是new操作。

举个例子:

dao层类:UserDao

service层类:UserService

web(controller)层:UserController

三个层的调用关系为:

web --->  service  --->   dao

这样的情况

web层会new一个service层对象

service层会new一个dao层对象

若是其中一个层的代码更改,也会导致其它层的代码也要做相应修改

三个层之间的耦合度很高,不利于代码维护

Spring对于上面的情况采用IOC和DI

IOC:底层实现是工厂模式和java反射机制

DI:依赖注入,有三种方式,构造函数注入,属性注入,set方法注入,多数情况下采用的set方法注入。

Spring实现对象创建有两种方式:xml配置,注解方式

xml配置方式:配置bean很多,个人觉得还是注解方式比较好

xml配置方式:

User类

属性:name,age

bean的其中一种写法

属性注入的方式,创建一个User对象,名字和年龄为hahahh,18

<bean id="user" class="com.smart.domain.User" >

  <property name="name" value="hahahh" />      <!--property属性,name对应User类里面属性的名字,value表示给属性赋的值,作用等同于setName(String name)方法-->

  <property name="age" value="18" />

</bean>

注解方式

1.设置扫描contaxt ,指定扫描的包全路径如:com.smart.domain

2.在不同的类上放置不同的注解,@Repository   @Service  @Controller 这几个注解的作用都是创建对象用的,没有非要写在哪一层的要求,放在不同的层上只是行业规范

3.domain层@Repository

 service层@service

 web层@controller

4.controller里面调用的service对象采用@Autowired

@Autowired

private UserService userService;

@Autowired自动注入方式,也有其他注解实现注入

最后总结

 控制反转对象创建的由spring容器来创建,创建的就是xml里面配置的bean

依赖注入: 必须在控制反转的基础上才能进行,是对spring容器创建的对象(bean)属性进行赋值操作,例如对User类里面的name属性进行操作

 

原文地址:https://www.cnblogs.com/shuzhongruyu/p/8863525.html

时间: 2024-07-31 21:12:58

Spring 两大核心IOC和DI的相关文章

Spring 两大核心 IOC 和 AOP

如果你的简历上写着Spring (请详述一下spring的两大核心)这个问题一定会被问到. 一.什么叫IOC 1. IOC 全称(Inversion of Control)-- 控制反转. IOC 只是一种设计思想,具体实现是 DI (Dependency Injection)-- 依赖注入 ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象:而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建:谁控制谁?当然

Java入门到精通——框架篇之Spring源码分析Spring两大核心类

一.Spring核心类概述. Spring里面有两个最核心的类这是Spring实现最重要的部分. 1.DefaultListableBeanFactory 这个类位于Beans项目下的org.springframework.beans.factory.support包下. XmlBeanFactory(位于org.springframework.beans.factory.xml包)继承自DefaultListableBeanFactory,而DefaultListableBeanFactory

Spring系列之——Spring事务以及两大核心IOC和AOP

1 Spring事务 1.1 Spring事务是什么(百度) 事务是对一系列的数据库操作(比如插入多条数据)进行统一的提交或是回滚操作,如果插入成功,那么一起成功,如果中间一条出现异常,那么回滚之前的所有操作. Spring事务管理机制使用的是TransactionManager进行管理.回滚注解@Transactional. 2 Spring特征 1)开源框架. 2)IOC(控制反转) 将类的创建和依赖关系写在配置文件中,由配置文件注入,实现松耦合. 3)AOP 将安全.事务等程序逻辑相对独立

spring.net中的IoC、DI和MVC

概述 spring.net是一个开源的业务层的框架,功能非常的强大,归结一下有3个功能:面向切面编程:IoC和DI:提供综合型的框架支持,本片博客主要说一下IoC和DI,和其提供的对MVC框架的支持. IoC和DI IoC,英文全称Inversion of Control,控制反转:DI,英文全称Dependency Injection,依赖注入.简而言之,IoC就是创建对象,DI就是创建对象的时候,进行初始化. IoC和DI就相当于我们通常写的抽象工厂+反射,只不过比抽象工厂的功能强大,但是其

抖音运营为您分析抖音企业的两大核心价值

疫情带来挑战也带来机遇可以预见的是,运算能力会是企业未来的根本能力,像一些短视频.外卖平台就是抓住了这个能力,在疫情来临时,才不会手忙脚乱,反而流量再创新高,并从传统企业手中批量夺走客户.宅经的济兴起,电商.短视频.科技.人工智能等领域会飞速增长.顺应时代潮流,是每个企业都必须做的事情, 学会运营抖音将就是第一步.现在抖音运营抖商快车为您分析抖音企业的两大核心价值.建立品牌在短视频平台上的用户资产:一般来讲,很多品牌在进行短视频营销时,只是一次性投放,视频传播过后只能留下曝光数据.而有了企业号这

Java Spring 两大特色

0 引言 本文主要描述的是Spring常用的两大特色功能:AOP和IoC容器 1 IoC Spring的IoC:就是常说的“控制反转”,也又叫依赖注入的(DI). 优点:IoC最大的好处就是把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变得很简单(说的是基于接口的编程),只需要修改XML就可以了,这样我们不用重新编译即可运行,甚至可以实现对象的热插拔. 缺点:由于对象的生成使用了反射编程,所以也给它带来了影响效率的缺点,但是相对于它能提高可维护性和灵活性,这点损耗也就不算什么了,

Spring框架中的IOC和DI的区别

上次面试被问到IOC和DI的区别时,没怎么在意,昨天又被问到,感觉有点可惜.今晚总算抽点时间,查看了spring官方文档.发现,IoC更像是一种思想,DI是一种行为.为了降低程序的耦合度,利用spring将对象依赖的对象进行注入的过程中,发生了什么呢?发生了控制权的反转.而spring官方文档中,也是将Dependency Injection放在了IoC Container这一章的子节中. spring官方文档:http://docs.spring.io/spring/docs/3.2.13.R

hadoop两大核心之一:MapReduce总结

MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,MapReduce程序 本质上是并行运行的,因此可以解决海量数据的计算问题. MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键 值对作为输入和输出.用户只需要实现map()和reduce()两个函数即可实现分布式计算. 执行步骤: map任务处理: 1.读取输入文件内容,解析成键值对(key/value).对输入文件的每一行,解析成 键值对(key/value).每一个键值对调

hadoop的两大核心之一:HDFS总结

什么是HDFS? hadoop distributed file system(hadoop分布式文件系统) 是一种允许文件通过网络在多台主机上分享的文件系统, 可让多机器上的多用户分享文件和存储空间. 特点: 1.通透性.让实际上是通过网络来访问文件的动作,由程序与用户看来, 就像是访问本地的磁盘一般. 2.容错性.即使系统中有某些节点脱机,整体来说系统仍然可以持续运作 而不会有数据损失. 适用场景: 适用于一次写入多次查询的情况,不支持并发写情况,小文件不合适. HDFS的架构 主从结构 主