文档章节

Spring---->属性的注入

小强斋太
 小强斋太
发布于 2016/11/09 20:08
字数 479
阅读 6
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

一、普通属性的注入

<bean id="bean1" class="com.bjsxt.spring.Bean1">
  <property name="strValue" value="Hello"/>
  <!-- 
  <property name="intValue" value="123"/>
   -->
   <property name="intValue">
    <value>123</value>
   </property>
   <property name="listValue">
    <list>
     <value>list1</value>
     <value>list2</value>
    </list>
   </property>
   <property name="setValue">
    <set>
     <value>set1</value>
     <value>set2</value>
    </set>
   </property>
   <property name="arrayValue">
    <list>
     <value>array1</value>
     <value>array2</value>
    </list>
   </property>
   <property name="mapValue">
    <map>
     <entry key="k1" value="v1"/>
     <entry key="k2" value="v2"/>
    </map>
   </property>
 </bean>

二、自定义属性编辑器

1、什么是属性编辑器,作用?
自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入。
spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器。

2、 如何定义属性编辑器?
继承PropertyEditorSupport类,覆写setAsText()方法。

例子:自定义属性编辑器,将日期字符串转换成java.util.Date对象,注入到bean中。

<bean id="SimplePropertyBean" class="com.ncepu.spring.SimplePropertyBean">
		<property name="date">
			<value>2008-12-14</value>
		</property>
	</bean>

UtilDatePropertyEditor.java

package com.ncepu.spring;

import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.omg.CORBA.PRIVATE_MEMBER;

public class UtilDatePropertyEditor extends PropertyEditorSupport {

 private String format;
	@Override
	public void setAsText(String text) throws IllegalArgumentException {
		
		SimpleDateFormat sdf=new SimpleDateFormat(format);
		try {
			Date date=sdf.parse(text);
			this.setValue(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
	}

	public void setFormat(String format) {
		this.format = format;
	}

}

将属性编辑器注册到spring配置文件中

<bean id="customEditorConfigurer"
		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
		<property name="customEditors">
			<map>
				<entry key="java.util.Date">
					<bean class="com.ncepu.spring.UtilDatePropertyEditor">
						<property name="format" value="yyyy-MM-dd" />
					</bean>
				</entry>
			</map>
		</property>

	</bean>

三、公共属性的注入

1、解决配置量大的问题

分文件factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");

将公共的注入提取出来
 --通过<bean>标签定义公共的属性,指定abstract=true
 --具有相同属性的类在<bean>标签中指定其parent属性

比如bean2中有id,name,password,email四个属性,bean3中有id,name,password,telephone四个属性,它们有公共属性id,name,password。

<bean id="beanAbstract" abstract="true">
		<property name="id" value="1112227142"></property>
		<property name="name" value="ceit"></property>
		<property name="password" value="ceit"></property>
	</bean>

	<bean id="bean2" class="com.ncepu.spring.Bean2" parent="beanAbstract">
		<property name="email" value="492230553@qq.com"></property>
	</bean>

	<bean id="bean3" class="com.ncepu.spring.Bean3" parent="beanAbstract">
		<property name="telephone" value="18810535304"></property>
	</bean>


    
  
   

 

本文转载自:http://www.cnblogs.com/xqzt/archive/2012/09/07/5637179.html

小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
私信 提问
加载中

评论(0)

1、Dubbo源码解析--Dubbo如何驱动Spring IOC容器并配合工作的?

首先Spring要注入自己的bean需要在Spring-provider.xml(提供者spring注入文件,名字可能不一样)添加bean注入,其中有dubbo的自定义标签,xml如何识别这些标签?拿到标签如何注入到Spring Co...

osc_qvzk8wey
2018/03/05
1
0
JAVA-Spring框架之IOC(DI)-注入方式(1)

spring框架概述   spring是一个service层的框架,可以整合许多其 他框架,进行工作   spring的主要技术是IOC(DI)和AOP   IOC(DI)-控制反转(依赖注入)AOP - 面向切面编程 1. IOC...

osc_arhujamz
2019/07/26
1
0
spring 注入bean的两种方式

我们都知道,使用spring框架时,不用再使用new来实例化对象了,直接可以通过spring容器来注入即可。 而注入bean有两种方式: 一种是通过XML来配置的,分别有属性注入、构造函数注入和工厂方法...

osc_2frv0wjp
2019/06/14
9
0
.Net转Java自学之路—Spring框架篇一(IOC入门)

Spring概述:   spring是一个一站式轻量级的开源框架。spring核心主要有两部分:AOP(面向切面)、IOC(控制反转)。   aop:卖你想切面编程。扩展功能不修改源代码实现。   ioc:控制反转...

osc_1tcqot5f
2019/03/11
2
0
Spring_Environment注入外部的值

故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能。——孟轲 运行时注入值   依赖注入(DI)有两种表现形式:将bean的引用注入...

osc_goqlvk0e
2018/04/13
2
0

没有更多内容

加载失败,请刷新页面

加载更多

webstorm ts学习环境

直接运行插件 ts相关依赖 npm i typescript -g 生成配置文件 tsc --init tsconfig配置 ts设为es6,es5后面使用打包工具生成

阿豪boy
5分钟前
8
0
诺禾,甲骨文数据库怎么样了?

时代在抛弃一个人时,真的是连声“再见”都不说! 甲骨文怎么也算是一代IT巨头了,当年仅次于微软的全球第二大软件系统公司,市值将近2000亿美元!自打30年前进入中国,那叫一个横行霸道!一...

诺禾
16分钟前
14
0
怎么批量压缩PDF文档?迅捷PDF转换器帮你解决难题!

怎么批量压缩PDF文档?电脑用久了,除了经常见到各类软件突如其来的终止通知,还有电脑面对各种文档的“有心无力。”面对一份超大文件,在大家思考如何看完之前,要先考虑自己的电脑能不能打...

赛利亚大姐大
27分钟前
19
0
软件测试简历写成这样,还怕HR不招你?

简历到底有多重要? 俗话说:“简历就是你能否进入一家公司的敲门砖”。面试官只有看到一份有质量的简历才会给你一个面试的机会。 很多人都会有这样的问题,为什么我投了那么多简历,都没有接...

爱码小哥
38分钟前
14
0
C语言探索之旅 | 第二部分第二课:进击的指针,C语言的王牌!

>作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。 转载请注明出处。 原文:https://www.jianshu.com/p/e5e685b67501 >《C语言探索之旅》全系列 内容简介 前言 棘手的问题 内存,地...

程序员联盟_
49分钟前
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部