首页编程java编程java 什么是ioc?求大神,java中IOC具体是个什么意思

java 什么是ioc?求大神,java中IOC具体是个什么意思

编程之家2023-10-1394次浏览

今天给各位分享java 什么是ioc的知识,其中也会对求大神,java中IOC具体是个什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

java 什么是ioc?求大神,java中IOC具体是个什么意思

什么是JavaConfig

Java config是指基于java配置的spring。

Spring JavaConfig是Spring社区的产品,这一产品提供了配置Spring IOC容器的纯Java方法,有助于避免使用XML配置。

config在计算机的命令中是“配置”的意思,而在计算机中各类软件及系统都有类似CONFIG的文件,其中主要是系统或各软件的配置参数,

java 什么是ioc?求大神,java中IOC具体是个什么意思

如config.sys中记录了电脑系统启动时加载的配置参数。

JavaConfig组件的注册是写在配置类中的,配置类就类似于xml配置文件,同时该类对象也是容器中的一个组件。

JavaCofig的优点:1、面向对象的配置:

由于配置被定义为JavaConfig中的类,因此用户可以充分使用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。

java 什么是ioc?求大神,java中IOC具体是个什么意思
2、减少或者消除XML配置:

javaconfig为开发人员提供了一种纯Java的方法来配置与XML配置概念相似的Spring容器。

从技术角度来说,只使用javaconfig配置类来配置容器是可行的,但是实际开发中,很多场景都是javaconfig和xml配置共用是最方便,理想的。

3、类型安全和重构好:

javaconfig提供了一种类型安全的方法了来配置spring容器,由于Java5.0对泛型的支持,现在可以按类型而不是名称检索bean,不需要任何的强制转换或者基于字符串的查找。

求大神,java中IOC具体是个什么意思

控制反转,本来对象是需要你的程序自己创建的,有了IOC你可以把不用再程序中手动new一个对象了,将创建对象的过程交个一个组件,这个组件去创建你需要的对象,你只需要从中获得创建的对象,程序的所有对象都在这个组件中创建,如果你不需要程序的那一部分了,可以很用以删除,而不影响程序其他部分。

IOC容器是什么

IOC容器:Ioc—Inversion of Control,即“控制反转”,就是具有依赖注入功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。

IoC的全称叫做 Inversion of Control,可翻译为为「控制反转」或「依赖倒置」,它主要包含了三个准则:

1、高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象;

2、抽象不应该依赖于具体实现,具体实现应该依赖于抽象;

3、面向接口编程而不要面向实现编程。

扩展资料

Spring提供了许多 IOC容器

的实现。比如 XmlBeanFactory,ClasspathXmlApplicationContext等。其中 XmlBeanFactory就是针对最基本的IOC容器的实现,这个 IOC容器可以读取XML文件定义的 BeanDefinition(XML文件中对 bean的描述)。

ApplicationContext是 Spring提供的一个高级的 IOC容器,它除了能够提供 IOC容器的基本功

能外,还为用户提供了以下的附加服务。

参考资料来源:百度百科-IOC

什么是spring IOC

1.什么是Spring

Spring是一个容器,可以接管各个层次的Bean(action/domain/pojo/javabean),并且可以配置bean与bean之间的关系

在java代码里使用bean只需要用ApplicationContext的getBean(配置文件里bean的id)方法就可以了。

Spring是依赖反射机制的,

那到底什么是反射机制呢:

反射机制就是利用(dom4j=java反射机制)

userBean ub= Class.forName(com.bean.***)这里是com全路径

所以在Spring配置文件中bean的id属性和class属性中要写全路径。

<bean id="adminBean" class="com.service.AdminBean">

<property name="name" value="乐乐"></property>

<property name="id" value="1"></property>

2.IOC是什么?(面试题)

ioc(inverse of control)控制反转:所谓控制反转就是把对象(bean)对象和维护对象(bean)之间的关系的权利转移到Sqring容器中去了(ApplicationContext.xml)而程序本身不在维护了

3.DI是什么?(面试题)

di(dependency injection)依赖注入:实际上DI和IOC是同一个概念,因为在ApplicationContext.xml配置文件中bean和bean之间通过ref来维护的时候是相互依赖的,所以又叫做依赖注入。也就是控制反转。

因为ApplicationContext是非常消耗内存的,所以必须保证一个项目里只有一个ApplicationContext实例:

那么如何保证这有一个实例呢,就需要把ApplicationContext对象做成单例形式,如何提取单例:???

----------------------------------------------------------------------------------

package com.util;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

final public class ApplicationContextUtil{

private static ApplicationContext ac= null;

//提供一个构造方法

private ApplicationContextUtil(){

}

static{

ac= new ClassPathXmlApplicationContext("applicationContext.xml");

}

//提供一个方法供外面使用

public static ApplicationContext getApplicationContext(){

return ac;

}

}

----------------------------------------------------------------------------------

<!--这里就是注入的概念通过注入设置name and id相当于set方法在使用的时候用get方法-->

<bean id="userBean" class="com.bean.UserBean">

<property name="id" value="1"></property>

<property name="name" value="leilei"></property>

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

</bean>

<!--这里可以配置多个Bean类,main方法里使用的时候直接用ac.getBean()-->

<bean id="adminBean" class="com.bean.AdminBean">

<property name="id" value="2"></property>

<property name="name" value="lele"></property>

<property name="password" value="aihenmei"></property>

<!--这里是在一个Bean中引用另外一个Bean需要配置属性注意ref是你在配置文件里配置的那个对应的Bean的id

name是你bean类里的getset的字段名-->

<property name="userBean" ref="userBean"></property>

</bean>

----------------------------------------------------------------------------------

public static void main(String[] args){

//这里调用要实例化applicationContext

ApplicationContext ac= ApplicationContextUtil.getApplicationContext();

AdminBean ad=(AdminBean) ac.getBean("adminBean");//这里填写的是"applicationContext.xml"里bean的id

ad.adminInfo();

java 什么是ioc和求大神,java中IOC具体是个什么意思的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

java写代码用什么编辑器好,初学java 用什么编译器java的最新版本是什么意思 JAVA JDK 最新版本是什么