`
zwh910621
  • 浏览: 147266 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring 注入的几种方法及构构器参数的解析

阅读更多

感觉总结的比较乱,希望能给初学都带来点帮助吧!

<bean id="age" class="a.b.A"  autowire-candidate="false">autowire-candidate的属性设为false,这样容器在查找自动装配对象时将不考虑该bean

	
                <constructor-arg>构造器的注入方式
		
		</constructor-arg>
		<property name="属性名">setter注入方式
			<value>直接量(基本类型,strings类型等)</value>
			<idref bean="不同XML里的bean也可以访问到" local="只有本XML里的bean可以访问到" parent="访问父类的bean"/>
			<ref bean="本地bean的id属性或name属性"/>该元素用来将bean中指定属性的值设置为对容器中的另外一个bean的引用
			<bean class="a.b.B"></bean>内部bean不需要有id or name
		</property>
		<property name="">
			<props>*.properties文件注入方法
				<prop key="key名" >key对应的值</prop>
			</props>
			<list>
				<value>值</value>
			</list>
			<list ></list>
			<set>
				<value>值</value>
			</set>
			<map>
				<entry>
					<key>key名</key>
					<value>key值</value>
					<key>
						<value></value>
					</key>
				</entry>
			</map>
		</property>
</bean>

depends-on使用:

多数情况下,一个bean对另一个bean的依赖最简单的做法就是将一个bean设置为另外一个bean的属性。在xml配置文件中最常见的就是使用<ref/> 元素。有时候它还有另外一种变体,如果一个bean能感知IoC容器,只要给出它所依赖的id,那么就可以通过编程的方式从容器中取得它所依赖的对象。无论采用哪一种方法,被依赖bean将在依赖bean之前被适当的初始化。

在少数情况下,有时候bean之间的依赖关系并不是那么的直接(例如,当类中的静态块的初始化被时,如数据库驱动的注册)。depends-on 属性可以用于当前bean初始化之前显式地强制一个或多个bean被初始化。下面的例子中使用了depends-on 属性来指定一个bean的依赖。

 

<bean id="beanOne" class="ExampleBean" depends-on="manager"/>

<bean id="manager" class="ManagerBean" />
 

 

若需要表达对多个bean的依赖,可以在'depends-on' 中将指定的多个bean名字用分隔符进行分隔,分隔符可以是逗号、空格及分号等。下面的例子中使用了'depends-on' 来表达对多个bean的依赖。

<bean id="beanOne" class="ExampleBean" depends-on="manager,accountDao">
  <property name="manager" ref="manager" />
</bean>
  <bean id="manager" class="ManagerBean" />
<bean id="accountDao" class="x.y.jdbc.JdbcAccountDao" />
 

 

 

 

延迟初始化lazy-init

在XML配置文件中,延迟初始化将通过<bean/> 元素中的lazy-init 属性来进行控制。例如:

<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init="true" > 
 <!-- various properties here... --> 
</bean>  
<bean name="not.lazy" class="com.foo.AnotherBean">  
<!-- various properties here... --> 
</bean>

ApplicationContext 实现加载上述配置时,设置为lazy 的bean将不会 ApplicationContext 启动时提前被实例化,而not.lazy 却会被提前实例化。

 



  


  
2
0
分享到:
评论

相关推荐

    Spring技术内幕:深入解析Spring架构与设计原理(第2版) .pdf

    - **依赖注入**:依赖注入是Spring框架的核心功能之一,通过构造函数注入、setter方法注入或字段注入等方式,实现了组件之间的解耦。 - **面向切面编程**:Spring支持在运行时动态地添加行为到程序中,如日志记录、...

    Java开发学习(六)----DI依赖注入之setter及构造器注入解析.doc

    Java 开发学习(六)----DI 依赖注入之 setter 及构造器注入解析 本文将详细介绍 Java 中的依赖注入(Dependency Injection,简称 DI),特别是 setter 注入和构造器注入两种方式的使用和实现。 一、DI 依赖注入 ...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    在Spring中,DI主要通过两种方式实现:构造器注入和setter注入。构造器注入是在创建对象时通过构造函数传入依赖,而setter注入则是在对象创建后通过setter方法设置依赖。 当我们使用`@Autowired`注解时,Spring容器...

    Spring系列面试题129道(附答案解析)

    依赖注入(DI)是一种设计模式,它允许一个对象通过构造器、工厂方法的参数或属性来定义它们对其他对象的依赖关系,然后由外部实体(通常是IoC容器)在运行期来解析这些依赖关系,并将依赖的对象注入到需要它们的...

    spring源码解析

    在"spring源码解析"的资料中,我们可能会深入探讨以下几个关键知识点: 1. **IoC(Inversion of Control,控制反转)与DI(Dependency Injection,依赖注入)**:这是Spring的核心特性,它通过反转对象的创建和管理...

    利用xml解析完成依赖注入 源码

    XML解析则是实现依赖注入的一种常见方式,尤其是在Spring框架中广泛使用。本篇文章将深入探讨如何利用XML解析来完成依赖注入,并结合源码`xmlparse_Ioc`进行详细解释。 首先,我们要理解什么是依赖注入。依赖注入的...

    spring视频教程种子

    3. **依赖注入**:深入解析依赖注入的概念,如何通过构造器注入、设值注入和接口注入等方式实现对象间的依赖关系。 4. **AOP**:介绍AOP的基本概念,包括切面、通知、连接点、切入点表达式等,并演示如何使用Spring...

    Spring注入Date类型的三种方法总结

    在Spring框架中,注入Date类型的属性有多种方式,下面我们将详细讲解上述三种方法。 1. 利用`SimpleDateFormat`的构造方法注入: 这种方式通过创建一个`SimpleDateFormat`实例来解析日期字符串,然后将解析后的日期...

    自定义 Schema 解析 Spring Bean

    在IT行业中,Spring框架是Java应用开发中的一个关键...总的来说,自定义Schema解析是Spring框架中一个强大的工具,它为项目提供了一种灵活的方式来管理和配置应用的组件,增强了Spring XML配置的可扩展性和可定制性。

    SPRING技术内幕:深入解析SPRING架构与设计原理.pdf 下载

    依赖注入是一种软件设计模式,它的核心思想是将一个类的依赖项通过构造器、setter方法或其他方式注入到该类中,而不是由该类自己创建这些依赖项。Spring框架通过BeanFactory或ApplicationContext接口提供了依赖注入...

    Spring技术内幕:深入解析Spring架构与设计原理 第2版

    Spring支持三种依赖注入方式:构造器注入、setter方法注入和基于字段的注入。 - **构造器注入**:通过构造器参数传递依赖项。 - **setter方法注入**:通过setter方法设置依赖项。 - **基于字段的注入**:直接在类的...

    定时启动--启动按钮(spring注入)

    通过对给定文件中的信息进行解析,我们了解到了两种实现定时任务的方法:一种是基于 Java 标准库 `java.util.Timer` 的简单实现;另一种则是利用 Spring 框架集成 Quartz 实现更为复杂灵活的定时任务管理。这两种...

    Spring技术内幕:深入解析Spring架构与设计原理

    ### Spring技术内幕:深入解析Spring架构与设计原理 #### Spring框架概述 Spring是一个开源的Java应用框架,由Rod Johnson创建并领导开发。Spring的核心特性包括依赖注入(Dependency Injection,DI)、面向切面...

    详解Spring基于Annotation的依赖注入实现

    在深入探讨Spring框架中基于注解(Annotation)的依赖注入(Dependency Injection,简称DI)实现之前,我们首先需要理解几个核心概念:Spring框架、依赖注入、以及注解本身。 ### Spring框架简介 Spring框架是一个...

    Spring、SpringMVC入门及整合JDBC、Mybatis

    - 构造方法注入:要求提供一个带参数的构造器,容器通过调用构造器将依赖注入到类中。这种方式在实例化时就需要所有依赖,不能延迟创建。 为了简化配置,Spring还提供了p命名空间和c命名空间的配置方式,分别对应...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版)带标签

    本书《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》是由计文柯所著,旨在深入分析和探讨Spring框架的架构及设计原理。Spring框架是目前Java开发者中使用最广泛的开源框架之一,它不仅提供了一种轻量级...

Global site tag (gtag.js) - Google Analytics