- 浏览: 57493 次
- 性别:
- 来自: 广州
最新评论
-
Joson_Coney:
11.
while( (*strDest++ = *strSr ...
c++笔试题汇总 -
Joson_Coney:
③ 1.
int func(x)
{
int countx = ...
c++笔试题汇总 -
Joson_Coney:
链表反向1:
#include <cstdlib&g ...
c++笔试题汇总
(转自:http://javasight.net/2011/05/spring-contructor-inject-example/)
在本示例中你将学到如何通过构造器注入来设置bean的属性。考虑如下的User bean类。
package net.javasight.designpattern.spring;
public class User {
private String name;
private int age;
private String country;
User(String name, int age, String country) {
this.name = name;
this.age = age;
this.country = country;
}
public String toString() {
return name + " is " + age + " years old, living in " + country;
}
}
User类有三个属性:name, age,country。所有的三个属性是通过构造器注入来设置。User的toString()方法覆盖来展示用户对象信息。
下面是beans.xml你勇于Spring的配置。下面的代码展示了如何通过构造器来设置属性值。
<?xml version="1.0" encoding="UTF-8"?> <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.xsd"> <bean id="user" class="net.javasight.designpattern.spring.User"> <constructor-arg value="Eswar" /> <constructor-arg value="24" /> <constructor-arg value="India" /> </bean> </beans>
bean中的constructor-arg元素用于通过构造器注入来设置属性。因为User类中只有一个构造器,所以该代码没有任何问题。当有相同个数的构造方法时,将会出现冲突。考虑如下代码:
User(int age, String country) { this.age = age; this.country = country; } User(String name, String country) { this.name = name; this.country = country; }
下面是配置文件。
<bean id="user" class="net.javasight.designpattern.spring.User">
<constructor-arg value="24" />
<constructor-arg value="India" />
</bean>
那么现在你认为哪个构造器将被调用?第一个带有int和String参数的,是吧?但是你将惊讶于Spring将调用第二个构造方法。即使我们知道第一个参数是int第二个参数是String,spring将其都解析为String。要避免该冲突,你需要定义constructor-arg的 type 属性。现在如下配置,第一个构造方法将被调用。
<bean id="user" class="net.javasight.designpattern.spring.User">
<constructor-arg type="int" value="24" />
<constructor-arg type="java.lang.String" value="India" />
</bean>
那么现在考虑如下情况。我们在User类中有如下的构造方法
User(String name, int age) { this.name = name; this.age = age; } User(int age, String country) { this.age = age; this.country = country; }
配置文件如下.
<bean id="user" class="net.javasight.designpattern.spring.User">
<constructor-arg type="int" value="24" />
<constructor-arg type="java.lang.String" value="India" />
</bean>
那么现在你认为哪个构造方法将被调用?第二个,是吗?但是你将又一次吃惊,这是因为在调用构造方法配置文件中定义的参数顺序不做考虑。要解决该问题,需要指定index。
下面是增加了index属性的配置文件:
<bean id="user" class="net.javasight.designpattern.spring.User">
<constructor-arg index="0" type="int" value="24" />
<constructor-arg index="1" type="java.lang.String"
value="India" />
</bean>
现在,如我们所期待的,第二个构造方法将被调用.
发表评论
-
【转】Compiling with cython and mingw produces gcc: error: unrecognized command lin
2012-05-03 10:46 1069(From: http://stackoverflow.com ... -
【转】Lucene:基于Java的全文检索引擎简介
2012-04-19 16:15 679(转自:http://www.chedon ... -
Lucene:基于Java的全文检索引擎简介
2012-04-19 16:12 0<p>(转自:http://www.chedong ... -
spring源码阅读
2012-04-18 12:15 0框架包:struts2.3.1+spring 3.1.1+hi ... -
【转】SQL 2008 R2 problems on a Windows 2008 R2 Enterprise server
2012-03-30 15:15 1117(From: http://social.msdn.micro ... -
oracle管理
2012-03-06 10:21 0(转自:http://www.examw.co ... -
【转】 Struts2源代码分析(一)配置文件加载
2012-02-17 09:47 1125(转自:http://blog.csdn.net/zha ... -
【转】[WebZine]Struts2框架安全缺陷
2012-02-16 17:31 984(转自:http://huaidan.org/archives ... -
FreeBSD Install Nginx Webserver
2012-01-20 15:26 769(From: http://www.cyberciti.biz ... -
SSH系统,调用HibernateTemplate.find()方法的时候,会导致内存泄露?
2012-01-11 20:19 760(转自:http://www.iteye.co ... -
【转】Hibernate性能“暴差”引发的考证
2011-12-16 16:13 567(转http://blog.csdn.net/jxspace/ ... -
网络收藏夹 - 编程
2011-12-06 21:49 684网络收藏夹 1. 在线看jdk源码: http:// ... -
Hibernate、Spring和Struts工作原理及使用理由
2011-12-01 17:27 594(转自:http://tech.hexun.c ... -
Struts2源码分析--请求处理
2011-12-01 10:03 651(转自:http://www.blogjava.ne ... -
【转】spring 监听器 IntrospectorCleanupListener简介
2011-11-15 15:50 786spring中的提供了一个名为org.springfra ... -
java web学习笔记
2011-11-21 09:50 596Tomcat Configuration 资 ... -
GTK+ 中文显示解决方案
2011-10-15 06:01 660(转自:http://www.wangchao.net.cn/ ... -
a lib: jXHR (JSON-P XHR)
2011-10-11 12:18 707http://mulletxhr.com/ -
GTK+主循环(main loop)的工作原理
2011-10-11 11:59 1109GTK+主循环(main loop)的工作原理 转 ... -
Node / v8 1gb memory limit?
2011-09-30 20:52 745Node / v8 1gb memory li ...
相关推荐
在Spring Boot应用中,构造器注入是一种常见的依赖注入方式,但它可能会引发循环依赖的问题。循环依赖是指两个或多个Bean之间形成一个闭环,彼此依赖对方,导致Spring容器在初始化Bean时无法确定创建顺序,从而抛出...
本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...
该变量将在构造器中被初始化,通过构造注入steelAxe bean实例作为参数传递给Chinese构造器。 在Spring框架中,构造注入可以通过两种方式实现,一种是使用constructor-arg元素,另一种是使用 @Autowired 注解。使用...
标题中的“spring介绍(set和构造器注入)”是指在Spring框架中两种主要的依赖注入(Dependency Injection,简称DI)方式:setter注入和构造器注入。在Spring框架中,DI是一种核心特性,它允许我们解耦组件之间的关系...
DI主要有两种实现方式:setter注入和构造器注入。 首先,我们来理解setter注入。setter注入是通过Spring容器调用对象的setter方法来设置其依赖的对象。这种方式比较灵活,因为可以在运行时改变对象的依赖。例如,...
Spring支持多种类型的构造器注入,包括单一参数的构造器和多个参数的构造器。 1. 单一参数构造器注入 当只有一个参数时,Spring会自动匹配类型并调用相应的构造器。例如: ```java public class UserService { ...
通过实例了解 Java Spring 使用构造器注入的原因 通过实例了解 Java Spring 使用构造器注入的原因,主要介绍了 Spring 框架中的依赖注入机制,特别是构造器注入的方式。文章通过示例代码详细介绍了构造器注入的原理...
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...
Spring 框架基于这些知识点,为我们提供了两种注入方式:setter 注入和构造器注入。 二、setter 注入 setter 注入是指通过 setter 方法将依赖对象注入到 Bean 中。例如,在 BookServiceImpl 中定义了引用类型属性 ...
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...
1. **构造器注入** 构造器注入是通过构造函数来传递依赖对象的。当创建一个类的新实例时,Spring容器会调用带有所需参数的构造函数,从而完成依赖注入。这种方式确保了对象在创建时就已经具备了所有必要的依赖。...
本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...
我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频
Spring 构造器注入是 Spring 调用有参数构造器创建对象。使用构造器参数标签,实现构造器参数注入:<constructor-arg></constructor-arg>。 Spring 的 Bean 属性注入可以实现各种类型的数据注入,包括 String 类型...
在Spring中,依赖注入主要有三种方式:构造器注入、setter注入和接口注入。构造器注入是在对象实例化时通过构造函数传入依赖;setter注入则是通过调用对象的setter方法来设置依赖;接口注入则相对较少使用,它通过...
在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...
本文将深入探讨Spring中的依赖注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过在类的构造函数中传入依赖对象来实现的。Spring容器在创建对象时,会调用带有相应依赖的构造...
1. **构造器注入**:通过构造函数传递依赖对象,每个构造函数参数代表一个依赖。这种方式确保对象在创建时就具备了所有必需的依赖。 2. **setter注入**:通过setter方法来注入依赖。Spring容器调用带有@Autowired...
1. **构造器注入**:通过类的构造方法来注入依赖项。 2. **设值注入**:通过setter方法来注入依赖项。 #### 四、使用注解进行依赖注入 随着Spring框架的发展,除了XML配置之外,Spring还引入了注解的方式来简化...