SpringIOC(di )是spring框架的核心,所有对象的生命周期都由它们来管理。 了解Spring IOC非常重要,很多时候,我们第一次接触Spring IOC大家都会一头雾水。 当然,这篇文章将以程序为例进行介绍。 如果还有不知道的朋友,建议去看看Spring的官方文档,或者参考网上的其他博客。
1. Spring IOC概念IOC(inversionofcontrol,控件反转),所有Java类)无论是JDK库中的Java类,还是您自己定义了Java类,Spring框架
Spring框架完成Java类的初始化对象的工作
Spring控制对象的生命周期和对象之间的关系
2. Spring DI的概念di(dependencyinjection,依存注入),主要作用是动态地提供某个对象所需的其他对象
3. Spring IoC和DI有区别吗? 虽然是我个人的见解,但实际上在Spring中,IOC和DI其实是同一概念
IOC控件将逆转,所有Java类的初始化工作都将被抛到Spring框架中。 Spring框架有效利用Java反射
DI依赖注入,如果某个Java类依赖于其他Java类,则依赖于其他Java类的初始化工作也将抛到Spring框架中进行。 例如,以下说明有助于重新理解DI的核心功能。 可以从MVC分层开发的角度理解DI
在开发过程中,众所周知,控制器依赖于服务。 假设在Web开发过程中使用Spring框架,则Serivce初始化工作Controller不需要在意服务对象是如何创建的,Service创建过程将抛给Spring框架
DI和IOC程序实现的原理是什么
4 .上面确实从我个人的角度理解并告诉我什么是Spring IOC,下面开始我们第一个Spring框架的程序。 它告诉我们如何编写面向Spring框架的Java程序来运行Spring框架。 首先导入与Spring相关的开发包。 如果使用的是spring.4.0.3版本的软件包,请参阅(spring-core.jar、spring-beans.jar、spring-context.jar、spring-expressse.jar
为佩尔松创建一个Java类
公共类人员{
私有字符串名称;
公共void set name (string name ) {
this.name=name;
() ) ) ) )。
公共字符串获取名称
return name;
() ) ) ) )。
创建Spring配置文件
是什么? XML version=' 1.0 ' encoding=' utf-8 '?
xmlns 3360 xsi=' http://www.w3.org/2001/XML架构-instance '
xsi :方案位置=' http://www.spring framework.org/schema/beans
33558 www.spring framework.org/schema/beans/spring-beans.xsd '
编写测试程序以运行Spring框架管理的配置文件package com.zlt.spring.test01;
import org.junit.Test;
importorg.spring framework.beans.factory.bean factory;
importorg.spring framework.context.support.classpathxmlapplicationcontext;
import com.zlt.spring.day 01.person;
公共类te st01 {
@Test
公共void m01 () ) {
//*
要运行Spring框架,需要BeanFactory
* 1.BeanFactory帮助启动IOC容器
* 2.帮助您找到需要实例化的Java对象
*/
beanfactory beanfactory=newclasspathxmlapplicationcontext (spring.XML );
人员=(人员) Beanfactory.getBean ) )人员);
Person.setname(Helloworld );
system.out.println (person.getname );
() ) ) ) )。
() ) ) ) )。
5 .上面第一个Spring框架的代码。 在此简单说明几个重点。 接下来创建的Java类将注册在Spring配置文件中
Spring配置文件是一个容器工厂,用于检测在程序运行时注入到配置文件中的Java类。 如果检测到配置文件中包含Java类,Spring框架将在这些Java类中创建对象
BeanFactory是Spring框架的中心接口,用于在运行Java APP应用程序时启动IoC容器,以帮助您查找需要实例化的Java对象
如何找到需要实例化的Java对象? 通过BeanFactory接口的get bean (字符串beanname )方法实现