- 浏览: 54777 次
- 性别:
- 来自: 广州
最新评论
-
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 1031(From: http://stackoverflow.com ... -
【转】Lucene:基于Java的全文检索引擎简介
2012-04-19 16:15 655(转自: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 1077(From: http://social.msdn.micro ... -
oracle管理
2012-03-06 10:21 0(转自:http://www.examw.co ... -
【转】 Struts2源代码分析(一)配置文件加载
2012-02-17 09:47 1099(转自:http://blog.csdn.net/zha ... -
【转】[WebZine]Struts2框架安全缺陷
2012-02-16 17:31 922(转自:http://huaidan.org/archives ... -
FreeBSD Install Nginx Webserver
2012-01-20 15:26 721(From: http://www.cyberciti.biz ... -
SSH系统,调用HibernateTemplate.find()方法的时候,会导致内存泄露?
2012-01-11 20:19 716(转自:http://www.iteye.co ... -
【转】Hibernate性能“暴差”引发的考证
2011-12-16 16:13 522(转http://blog.csdn.net/jxspace/ ... -
网络收藏夹 - 编程
2011-12-06 21:49 651网络收藏夹 1. 在线看jdk源码: http:// ... -
Hibernate、Spring和Struts工作原理及使用理由
2011-12-01 17:27 541(转自:http://tech.hexun.c ... -
Struts2源码分析--请求处理
2011-12-01 10:03 607(转自:http://www.blogjava.ne ... -
【转】spring 监听器 IntrospectorCleanupListener简介
2011-11-15 15:50 751spring中的提供了一个名为org.springfra ... -
java web学习笔记
2011-11-21 09:50 549Tomcat Configuration 资 ... -
GTK+ 中文显示解决方案
2011-10-15 06:01 606(转自:http://www.wangchao.net.cn/ ... -
a lib: jXHR (JSON-P XHR)
2011-10-11 12:18 653http://mulletxhr.com/ -
GTK+主循环(main loop)的工作原理
2011-10-11 11:59 1069GTK+主循环(main loop)的工作原理 转 ... -
Node / v8 1gb memory limit?
2011-09-30 20:52 720Node / v8 1gb memory li ...
相关推荐
主要介绍了Spring框架构造注入操作,结合具体实例形式分析了spring框架构造输入的相关定义与使用操作技巧,需要的朋友可以参考下
IOC DI 一个spring4.2.0 spring setter 和构造 注入 的小例子
主要介绍了spring通过构造函数注入实现方法,结合实例形式分析了spring通过构造函数注入的原理、实现步骤及相关操作注意事项,需要的朋友可以参考下
主要介绍了通过实例了解spring使用构造器注入的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1. 循环依赖是什么? Bean A 依赖 B,Bean B 依赖 A这种情况下出现循环依赖。 Bean A → Bean B → Bean A 更复杂的间接依赖造成的循环...Spring先创建beanC,接着创建bean B(将C注入B中),最后创建bean A(将B注
NULL 博文链接:https://cdxs2.iteye.com/blog/1940307
我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频
对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的 依赖注入就是通过...·使用构造器注入; 最好的解决方案是用构造器参数实现强制依赖,setter 方法实现可选依赖。
今天有空,写了基于C#使用Spring.Net的演示实例,希望能给有需要的人带来帮助,其中演示了配置下的IOC、AOP、属性注入、构造函数注入、通知过滤器、以及不使用配置直接代码硬编的AOP动态代码过程,另外还增加了...
今天有空,写了基于C#使用Spring.Net的演示实例,希望能给有需要的人带来帮助,其中演示了配置下的IOC、AOP、属性注入、构造函数注入、通知过滤器、以及不使用配置直接代码硬编的AOP动态代码过程,另外还增加了...
NULL 博文链接:https://diaochenlong2.iteye.com/blog/1831224
- 构造器注入 - 属性(setter)注入 容器 容器是管理 组件的生命周期,注入组件(声明)所需的资源 例如: 容器 : 国家 义务教育、纳税、社保、医疗、养老 组件 : 公民 - apache tomcat 是 JSP/Servlet 容器,...
Type3 构造子注入 几种依赖注入模式的对比总结 Spring Bean封装机制 Bean Wrapper Bean Factory ApplicationContext Web Context Spring 高级特性 Web 应用与 MVC Spring MVC Spring MVC指南 基于模板的...
计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料 计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料 计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料 计算机技术、IT咨询、人工智能AI理论介绍,...
20. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入? 21.什么是 Spring beans? 22. 一个 Spring Bean 定义 包含什么? 23. 如何给 Spring 容器提供配置元数据? 24. 你怎样定义类的作用域? 25. ...
3.3 解决构造器歧义 3.3.1 问题描述 3.3.2 解决方案 3.3.3 实现方法 第4章 高级Spring IoC容器 第5章 动态代理和经典的Spring AOP 第6章 Spring 2.x AOP和AspectJ支持 第...
spring-1 演示了使用setter方式及构造器方式创建bean,util:list标签创建集合,p标签简化配置 和依赖注入, 以及bean的autowire和继承与依赖,以及bean的作用域。 spring-2 演示了外部配置文件的引入(connection)...
Spring IOC和DI概述,Bean的配置形式,IOC容器BeanFactory和ApplicationContext概述,依赖注入的方式,属性注入,构造器注入等案例
3、构造器注入(死的应用) 关于getter和setter方式的注入 1.autowire=defualt 2.autowire=“byName” 3.autowire=bytype 详细解析注入方式 例如:有如下两个类需要注入 第一个类: 1....
3.5.1 使用构造器注入 20 3.5.2 使用属性setting方法进行注入 21 3.5.3 装配list集合 22 3.5.4 装配set集合 22 3.5.5 装配map 22 3.5.6 装配Properties 23 3.6 注解注入 23 注解注入拓展: 23 3.6.1 @Autowired 26 ...