当前位置: 首页 > news >正文

找logo的网站教育培训机构招生方案

找logo的网站,教育培训机构招生方案,2023年2月14疫情最新消息,郑州核酸vip服务小王学习录 IoC(Inversion of Control)1. 什么是IoC2. 什么是Spring IoC3. 什么是DI4. Spring IoC的作用 存储Bean对象1. 创建Bean2. 将Bean注册到Spring中. 取Bean对象.1. 获取Spring上下文信息使用ApplicationContext和BeanFactory的区别 2. 获取指定Bean对象 IoC(Inversion …

小王学习录

  • IoC(Inversion of Control)
    • 1. 什么是IoC
    • 2. 什么是Spring IoC
    • 3. 什么是DI
    • 4. Spring IoC的作用
  • 存储Bean对象
    • 1. 创建Bean
    • 2. 将Bean注册到Spring中.
  • 取Bean对象.
    • 1. 获取Spring上下文信息
      • 使用ApplicationContext和BeanFactory的区别
    • 2. 获取指定Bean对象

IoC(Inversion of Control)

1. 什么是IoC

Inversion of Control, 控制反转. 所谓控制, 就是控制对象的生命周期. 对象的生命周期由创建这个对象的类控制. 有时对控制权进行反转, 可以起到很好的编程效果, 从而完成特定的功能.

例如: 创建了一个对象, 称为对象1, 对象1要依赖于对象2, 对象2要依赖于对象3.

  1. 如果在对象1中创建对象2, 在对象2中创建对象3. (也就是对象3的控制权在类2中, 对象2的控制权在类1中)

  2. 当改变一个类的构造方法时, 如在构造方法中增加参数, 同时也需要对依赖这个类的类中的代码进行修改.

  3. 也就是如果此时要对类3的构造函数进行修改, 同时类2和类1中的构造函数也要进行修改. 这就造成了高耦合.

  4. 如果将创建对象的操作都在类1中进行, 也就是将控制权反转给类1, 那么此时如果要对类3的构造函数进行修改, 只需要对类1和类3的构造函数进行修改即可了.

2. 什么是Spring IoC

上面已经介绍了IoC控制反转, 所谓Spring IoC就是将控制权交给Spring, 即将对象的创建以及后续的管理(对象的生命周期交给Spring). 实际上IoC是Spring框架中的一个核心理念, 因此, Spring也可以看作是实现了IoC功能的容器(框架), 是一个包含了众多工具和方法的IoC容器.

Spring容器中用于存储JavaBean对象, 既然是容器, 就又有了两大核心功能, 即对象(Bean)的存和取.

3. 什么是DI

Dependency Injection, 依赖注入. 是将依赖的某个对象注入到当前类的行为.

DI依赖注入是一种技术, 而IoC是一种思想. Spring为IoC提供了容器. 而依赖注入是用于解决容器中取Bean的技术之一. 因此可以说DI是IoC的一种实现.

IoC(Inversion of Control)和DI(Dependency Injection)通常被认为是同一件事的不同表述,因为它们都涉及到将控制权从应用程序本身转移到外部容器,并通过容器来管理对象的创建、装配和生命周期。

在通过将对象之间的关系交给外部容器来实现解耦、可维护和可测试这件事中. IoC强调的是控制的反转,即应用程序不再控制对象的创建和生命周期,而是将这些任务交给外部容器。而DI强调的是依赖的注入,即对象不再负责自己依赖关系的创建,而是通过外部注入的方式获取依赖。

4. Spring IoC的作用

  1. Spring IoC通过控制反转的思想, 将对象的创建和管理交给了Spring, 实现了解耦
  2. 使用对象时更加方便. 程序员不必关注对象的创建以及这个对象背后的依赖关系, 而是直接向Spring容器中通过DI取对象, 当不需要再利用此对象时, 再交给Spring继续对对象进行管理即可.
  3. 创建对象更加高效. 对于一个类的实例来说, 不必再进行重复的创建操作, 而是由Spring创建(默认是单例的), 每当有程序要用到实例时, 直接从Spring中取即可.

存储Bean对象

spring作为一个容器, 要完成的两大核心功能是存储Bean对象和取出Bean对象.

存储Bean对象需要先创建Bean, 然后将Bean注册到Spring容器中.

1. 创建Bean

所谓Bean对象就是java中的普通对象. 在Spring中, 将被多次使用(取)的对象称为Bean对象. 创建Bean很简单, 和之前创建一个类的写法无异. 以下是创建一个简单的Bean

public class UseController {public void print(){System.out.println("do_useController");}
}

2. 将Bean注册到Spring中.

  1. 首先要在resources目录下创建一个spring配置文件(spring-config.xml).在配置文件中加入如下代码.
<?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"></beans>
  1. 将bean注册到spring中, 这一步也很简单. 在配置文件中加入如下代码
  <bean id="useController" class="com.annotation.UseController"></bean>

id是对象名, class是类的路径. 以上步骤就将useControoller这个Bean对象存储到Spring中了, 接下来我们看如何从Spring中吧Bean取出来.

取Bean对象.

取Bean对象分为以下两步:

  1. 获取Spring上下文信息. Bean对象交由Spring进行管理, 因此要想获取到Bean对象, 就需要先获取Spring上下文信息.
  2. 使用getBean方法获取Bean对象.

1. 获取Spring上下文信息

在获取Spring上下文信息时, 需要获取Spring的配置信息. 即xml文件.

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring-config.xml");

获取Spring上下文信息除了使用ApplicationContext外, 还可以使用BeanFactory, 如下代码

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("Spring-config.xml"));

使用ApplicationContext和BeanFactory的区别

继承关系和功能⽅⾯来说:Spring 容器有两个接⼝:BeanFactory 和
ApplicationContext。其中 BeanFactory 提供了基础的访问容器的能⼒,⽽ ApplicationContext属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。
从性能⽅⾯来说:ApplicationContext 是在Spring框架使用时⼀次性加载并初始化所有的 Bean对象, BeanFactory 是需要哪个才去加载哪个,因此更加轻量。

2. 获取指定Bean对象

获取指定Bean对象有以下三种写法:

UseController useController =(UseController) applicationContext.getBean("useController");
//这种方法不适于同一类有多个Bean对象的情况. 
//因为当同一类有多个Bean对象时, 不知道具体要获取UseController的哪个对象
UseController useController =applicationContext.getBean(UseController.class);
UseController useController =applicationContext.getBean("useController", UseController.class);



本篇文章到此结束, 下篇文章将具体介绍如何通过更简单的方式(基于注解)来存取Bean对象.

http://www.jinmujx.cn/news/112166.html

相关文章:

  • 网站备案和前置审批福州专业的seo软件
  • 网站备案 后期企业推广策划书
  • 电子商务网站建设影响因素网站权重查询工具
  • 在郑州做网站产品推广软文
  • 买卖域名哪个网站好百度搜索广告怎么投放
  • 像优酷这样的网站需要怎么做搜外网友情链接
  • 郑州淘宝网站推广 汉狮网络软文代发代理
  • 360算互联网大厂吗seo入门教程
  • 南昌网站外包手机seo快速排名
  • 网站建设与管理.pdf网站运营培训学校
  • 北京网站建设价格天专注网站建设服务机构
  • 购物商城外贸网站搜索引擎优化策略不包括
  • 企业网站页脚品牌策划运营公司
  • 网站建设目录结构设计长沙网站推广排名
  • 211工程建设网站百度模拟点击
  • 绍兴公司网站建设 中企动力绍兴百度人工智能开放平台
  • php动态网站开发视频免费推广引流平台
  • app定制软件seo网站关键字优化
  • 怎样做淘宝网站百度首页网站推广多少钱一年
  • 如何选择企业网站建设想要导航页面推广app
  • 个人网站做装修可以吗网络营销专业技能
  • 网络营销为导向的企业网站深圳推广系统
  • 有哪些学做衣服的网站网络营销和电子商务区别
  • 淘宝客推广网站模板seo是什么学校
  • 598网站建设掌门一对一辅导官网
  • 网站制作在线版上海做网站优化
  • 公司邮箱怎么注册北京seo排名外包
  • 廊坊app网站制作网络营销的核心
  • 龙华网站建设招聘总裁培训班
  • 企业站用wordpress做好吗如何进行线上推广