spring的ioc| 耗时:0.246秒|361095条结果

Spring IOCSpring IOC 具体过程

上回展示了IOC大致实现原型,那么在Spring框架中具体是怎么实现这个容器根据metadata元信息配置加载POJO过程呢?在整个Spring IOC容器工作过程中有很多地方是设计地相当灵活,供给使用者很多空间去完成自己任务,而不是一味地只是完成容器机械过程。 这是整个IOC容器
http://www.itnose.net/detail/6399153.html 2015-10-31 17:16   [Spring]

Spring IOC原理

这个理论已经被成功地应用到实践当中,很多J2EE项目均采用了IOC框架产品Spring。 2. 什么是控制反转(IoC)IOC是Inversion of Control缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”。1996年,Michael Mattson在
http://www.itnose.net/detail/499434.html 2014-01-25 13:44   [Spring]

springIoC介绍

Spring是j2ee领域比较出名一个应用框架,其中包括AOP、IoC/DI、MVC等方面应用,而且可以灵活根据项目情况来是用它一部分。在所有内容中,IoC/DI(反向控制,依赖注入)是比较好一个东西。 注:什么是依赖注入? 面向对象一个基础叫做基于/面向接口编程,即将接口与实现分离
http://www.itnose.net/detail/499422.html 2014-01-25 13:44   [Spring]

模拟SpringIoc

Spring容器来说,它首先是一个巨大工厂,负责创建所有Bean实例,整个应用所有组件都由Spring容器负责创建。不仅如此,Spring容器还扩展了这种简单工厂模式,他还可以管理Bean实例之间依赖关系;而且,如果中Bean实例具有singleton行为特征,则Spring容器还会缓存
http://www.itnose.net/detail/491389.html 2014-01-24 15:05   [Spring]

SpringIoC容器

。由IoC容器主动创建UserDao实现类实例,并注入到用户注册类中。我们下面将使用Spring提供IoC容器来管理我们用户注册类。 用户注册类UserRegister部分代码如下: public class UserRegister {     private
http://www.itnose.net/detail/491279.html 2014-01-24 15:04   [Spring]

Spring IOC理解总结

SpringIoc理解文章,好多人对Ioc和DI解释都晦涩难懂,反正就是一种说不清,道不明感觉,读完之后依然是一头雾水,感觉就是开涛这位技术牛人写得特别通俗易懂,他清楚地解释了IoC(控制反转) 和DI(依赖注入)中每一个字,读完之后给人一种豁然开朗感觉。我相信对于初学Spring框架人对
http://www.itnose.net/detail/6496658.html 2016-05-03 16:02   [Spring]

SpringIOC和AOP

  IOC:即控制反转,主要意思就是Spring容器来管理对象初始化,而不需要程序员人工使用new方式来创建对象,并且当A对象依赖于B对象时,在配置文件中可以指定,同样不需要程序员在构造函数或是setter中进行对象注入。   AOP:面向切面编程。其实就是一种新不同于继承代码重用技术
http://www.itnose.net/detail/6457854.html 2016-02-25 10:17   [J2SE]

springAOP和IOC

我不是很懂springAOP和IOC,希望哪位大侠指教。注入又是怎么回事呢? 回复讨论(解决方案) 原理是反射,动态代理, 在根源点貌似是.class字节码可以用各种方式生成,加载,读取 楼主啊,这种问题来CSDN问,怕是效率太低了。如果不能买本书学习学习话,至少也先Google
http://www.itnose.net/detail/211621.html 2014-01-01-15:59   [J2EE]

Spring Ioc 源码分析(一)Spring Ioc容器加载

1.目标:熟练使用spring,并分析其源码,了解其中思想。这篇主要介绍spring ioc 容器加载2.前提条件:会使用debug3.源码分析方法:Intellj idea debug 模式下源码追溯通过ClassPathXmlApplicationContext 进行xml 件读取,从每个堆栈中读取程序运行信息4.注意:由于Spring类继承体系比较复杂,不能全部贴图,所以只将分析源码之后发现最主要类继承结构类图贴在下方。5.关于Spring Ioc Demo:我们从demo入手一步步进行代码追溯。 1.Spring Ioc Demo 1.定义数据访问接口IUserDao.java public interface IUserDao { public void InsertUser(String username,String password); } 2.定义IUserDao.java实现类IUserDaoImpl.java public class UserDaoImpl implements IUserDao { @Override public void InsertUser(String username, String password) { System.out.println("----UserDaoImpl --addUser----"); } } 3.定义业务逻辑接口UserService.java public interface UserService { public void addUser(String username,String password); } 4.定义UserService.java实现类UserServiceImpl.java public class UserServiceImpl implements UserService { private IUserDao userDao; //set方法 public void setUserDao(IUserDao userDao) { this.userDao = userDao; } @Override public void addUser(String username,String password) { userDao.InsertUser(username,password); } } bean.xml配置文件 <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-3.0.xsd "> <!--id名字自己取,class表示他代表类,如果在包里话需要加上包名--> <bean id="userService" class="UserServiceImpl" > <!--property代表是通过set方法注入,ref值表示注入内容--> <property name="userDao" ref="userDao"/> </bean> <bean id="userDao" class="UserDaoImpl"/> </beans> 2.ApplicationContext 继承结构: 1.顶层接口:ApplicationContext2.ClassPathXmlApplicationContext实现类继承AbstractXmlApplication 抽象类3.AbstractXmlApplication 继承AbstractRefreshableConfigApplicationContext4.AbstractRefreshableConfigApplicationContext抽象类继承AbstractRefreshableApplicationContext5.AbstractRefreshableApplicationContext 继承 AbstractApplicationContext6.AbstractApplicationContext 实现ConfigurableApplicationContext 接口7.ConfigurableApplicationContext 接口继承ApplicationContext接口总体来说继承实现结构较深,内部使用了大量适配器模式。以ClassPathXmlApplicationContext为例,继承类图如下图所示: Spring ioc .png 3.Spring Ioc容器加载过程源码详解 在开始之前,先介绍一个整体概念。即spring ioc容器加载,大体上经过以下几个过程:资源文件定位、解析、注册、实例化 1.资源文件定位其中资源文件定位,一般是在ApplicationContext实现类里完成,因为ApplicationContext接口继承ResourcePatternResolver 接口,ResourcePatternResolver接口继承ResourceLoader接口,ResourceLoader其中getResource()方法,可以将外部资源,读取为Resource类。 2.解析DefaultBeanDefinitionDocumentReader,解析主要是在BeanDefinitionReader中完成,最常用实现类是XmlBeanDefinitionReader,其中loadBeanDefinitions()方法,负责读取Resource,并完成后续步骤。ApplicationContext完成资源文件定位之后,是将解析工作委托给XmlBeanDefinitionReader来完成解析这里涉及到很多步骤,最常见情况,资源文件来自一个XML配置文件。首先是BeanDefinitionReader,将XML文件读取成w3cDocument文档。DefaultBeanDefinitionDocumentReader对Document进行进一步解析。然后DefaultBeanDefinitionDocumentReader又委托给BeanDefinitionParserDelegate进行解析。如果是标准xml namespace元素,会在Delegate内部完成解析,如果是非标准xml namespace元素,则会委托合适NamespaceHandler进行解析最终解析结果都封装为BeanDefinitionHolder,至此解析就算完成。后续会进行细致讲解。 3.注册然后bean注册是在BeanFactory里完成,BeanFactory接口最常见一个实现类是DefaultListableBeanFactory,它实现了BeanDefinitionRegistry接口,所以其中registerBeanDefinition()方法,可以对BeanDefinition进行注册这里附带一提,最常见XmlWebApplicationContext不是自己持有BeanDefinition,它继承自AbstractRefreshableApplicationContext,其持有一个DefaultListableBeanFactory字段,就是用它来保存BeanDefinition所谓注册,其实就是将BeanDefinitionname和实例,保存到一个Map中。刚才说到,最常用实现DefaultListableBeanFactory,其中字段就是beanDefinitionMap,是一个ConcurrentHashMap。代码如下:>1.DefaultListableBeanFactory继承实现关系 public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable { // DefaultListableBeanFactory实例中最终保存了所有注册bean beanDefinitionMap /** Map of bean definition objects, keyed by bean name */ private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(64); //实现BeanDefinitionRegistry中定义registerBeanDefinition()抽象方法 public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException { } >2.BeanDefinitionRegistry接口 public interface BeanDefinitionRegistry extends AliasRegistry { //定义注册BeanDefinition实例抽象方法 void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException; 4.实例化 注册也完成之后,在BeanFactorygetBean()方法之中,会完成初始化,也就是依赖注入过程大体上流程就是这样,下一篇博客,再具体地从代码层面进行介绍。
http://www.itnose.net/detail/6658625.html 2016-11-01 01:57   [Spring]

spring ioc注解 IOC

@Autowired   1、Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。  Java代码   <!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired  Bean 进行自动注入 --> 
http://www.itnose.net/detail/6400055.html 2015-11-02 18:50   [Spring]

spring IOC

一.IOC(inverse of control) 两种方式    1.XML配置:set方法 引入相关jar包 commons-logging-1.0.4.jar spring
http://www.itnose.net/detail/6729351.html 2017-03-09 23:01   [Spring]

spring ioc

。HiveMind和Spring采用这种方式。 类型3 (基于 构造函数): 通过构造函数参数为可服务对象指定服务。PicoContainer只使用这种方式。HiveMind和Spring也使用这种方式。 优缺点 编辑 IoC最大好处是什么?因为把对象生成放在了XML里定义,所以
http://www.itnose.net/detail/6692832.html 2016-12-19 15:53   [Spring]

Spring ioc

       Spring两个很重要功能ioc和aop        依赖反转:依赖对象获得被反转;许多非凡应用都是由两个或多个类通过彼此合作来上线业务逻辑,这使得每个对象都需要与其他对象合作,也就是说 一个对象获得其他对象引用,这个被引用对象就是被引用其依赖,如果这个获取过程要考自身实现,那么很自然这个将导致代码高度耦合,并且难以 测试       在面向对象系统中,对象封装成数据和对数据处理,对象依赖关系常常体现在对对象数据或者方法依赖上,这些依赖关系,通常就可以交个容器来完 成,这里就是指springioc      Springioc可以再应用程序初始化时候将对象初始化,并且将数据和引用注入给所需要这个资源对象      这样好处很明显即是解耦,拆分容易,组装容易,要换一个实现也容易。Spring通过注解配置或者Spring配置文件配置信息来得到这些依赖信息,并且注入 其中     这还说一个概念,控制反转:应用控制反转后,当对象呗创建时,由一个调控系统内所有对象外界实体将其对象引用传递给他,也就是说,依赖被注入到 对象中了。所以,控制反转是关于一个对象如何获取它所依赖对象引用,在这里,反转指是责任反转。这里调控系统可以使之某个应用平台,也可以说 是ioc容器
http://www.itnose.net/detail/6178124.html 2014-12-21 14:19   [Spring]

SpringIOC

  好几次面试都遇到面试官问:"你简历上说你熟悉ssh框架,那你简单谈谈springioc,aop等",遇到这类问题我真很后悔之前为什么不好好打基础看概念然后在实践(因为学这个时候我都是边看视频边实践,所以过了一段时间概念性东西很快就忘记了)。现在来总结下IOC是个什么东西,呵呵。   概念:IoC (Inverse of Control,控制反转),是指类A中有一个类B对象,本来需要开发者在类A中初始化这个对象,现在经过配置,spring可以自动地完成类A中类B对象初始化。这个过程也可以被叫作DI (Depend Injection,依赖注入),因为B类对象依赖于A类,通过spring 类B变量被注入到了A类对象中。下面详细介绍缘由:   IOCspring核心,贯穿始终。所谓IOC,对于spring框架来说,就是由spring来负责控制对象生命周期和对象间关系。举个简单例子来说,我们如何找女朋友?常见情况是我们到处去看哪里有长得漂亮身材又好mm,然后想法设法认识她们等流程,我们必须自己设计和面对每个环节。传统程序开发也是如此,在一个对象中,如果要使用另外对象则必须得到它(要么自己new一个,要么从JNDI中查询一个)使用完之后还要将对象摧毁等流程,对象始终会和其他接口或类耦合在一起。、   然而,IOC是如何做到呢,有点像你通过婚介找女朋友,通过第三方给你介绍,介绍认识之后,你们自己做自己想做事情。然而这个第三方却管理了很多男男女女资料,你只要告诉你需求,它就会通过你需要给你找到相关mm;如果找到不到就会抛出异常。整个过程不再由我自己控制,而是有婚介这样一个类似容器机构来控制。Spring所倡导开发方式就是如此,所有类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当时候,把你要东西主动给你,同时也把你交给其他需要你东西。所有创建、销毁都由 spring来控制,也就是说控制对象生存周期不再是引用它对象,而是spring。对于某个具体对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。如图一,由于引进了中间位置“第三方”,也就是IOC容器 图1      IOC除了控制反转这个称呼之后,后面出现与之相关称呼DI(Dependency Injection, 依赖注入)来实现。比如对象A需要操作数据库,而我们以前每次都是在A中编写代码获取一个Connection对象,而有spring就需要告诉spring,A中需要一个Connection对象,至于该对象怎么构造,何时构造,A对象无需知道。在系统运行时,spring会在适当时候构造一个Connection,注入到A当中,这样就完成了对各个对象之间关系控制。而需要依赖Connection才能正常运行,而Connection是由spring注入到A当中。这就是依赖注入。    作用(好处):配置灵活。 IOC模式,系统中通过引入实现了IOC模式IOC容器,即可由IOC容器来管理对象生命周期、依赖关系等,从而使得应用程序配置和依赖性规范与实 际应用程序代码分开。其中一个特点就是通过文本配件文件进行应用程序组件间相互关系配置,而不用重新修改并编译具体代码。 因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样对象都是现实于某种接口),只要修改XML就可以了。虽然说修改XML后不需要重新编译java代码,但XML经常与java源代码一起打包。所有想要修改XML话,还是需要重新打包,还是免不了重新发布。就算修改java代码,重新编译这些修改后代码,也不是太麻烦。那使用IOC模式最本质好处是什么呢?有一种说法是,写大型程序时候,会用到很多其他人开发java类。当程序员甲用到程序员乙开发java类A时,如果使用IOC,在程序员乙写好XML配置文件后,程序员甲就不需要关心类A应如果初始化问题,直接使用即可。IOC有利于在多人开发大型程序中提高开发效率。   实现原理:java反射机制。     spring ioc整体流程,xml配置   spring ioc初始化流程结合上图 步骤编号 完成工作 1 spring容器读取配置文件,解析称注册表 2 根据注册表,找到相应bean实现类实例化bean 3 把实例化之后bean放到spring容器中 4 spring开放准备好bean供程序使用   参考文章: 1、http://www.cnblogs.com/haii714/archive/2012/08/20/2647205.html 2、http://www.cnblogs.com/sunada2005/p/3546753.html 3、http://www.cnblogs.com/snidget/p/3433889.html    
http://www.itnose.net/detail/6160350.html 2014-11-26 17:39   [J2SE]

  1  2  3  4  5 下一页>