java 什么是ioc?求大神,java中IOC具体是个什么意思
今天给各位分享java 什么是ioc的知识,其中也会对求大神,java中IOC具体是个什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
什么是JavaConfig
Java config是指基于java配置的spring。
Spring JavaConfig是Spring社区的产品,这一产品提供了配置Spring IOC容器的纯Java方法,有助于避免使用XML配置。
config在计算机的命令中是“配置”的意思,而在计算机中各类软件及系统都有类似CONFIG的文件,其中主要是系统或各软件的配置参数,
如config.sys中记录了电脑系统启动时加载的配置参数。
JavaConfig组件的注册是写在配置类中的,配置类就类似于xml配置文件,同时该类对象也是容器中的一个组件。
JavaCofig的优点:1、面向对象的配置:由于配置被定义为JavaConfig中的类,因此用户可以充分使用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。
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具体是个什么意思的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!