`
hwaspf
  • 浏览: 8053 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring的一些基本配置

阅读更多
package org.zhang.client;

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

import java.beans.PropertyEditorSupport;
/**
 * 这是个属性编辑器   继承了 java.beans.PropertyEditorSupport 别继承PropertyEditor 类      
 *
 */
public class PropEditor extends PropertyEditorSupport {

	private String format ;
	public void setFormat(String format) {
		this.format = format;
	}
	
	// 这个方法可以是属性编辑器的关键
	@Override
	public void setAsText(String text) throws IllegalArgumentException {
		SimpleDateFormat df = new SimpleDateFormat(format);
		try {
			Date date = df.parse(text);
			this.setValue(date);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}


package org.zhang.client;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class User {
	private int id;
	private String username;
	private String password;
	private Address address;
	
	private Set<Integer> setProperty;
	private Set<Address> setAddress;
	
	private List<String> listProperty;
	private List<Address>listAddress; 
	
	private Map<String,String> mapProperty;
	private Map<String,Address> mapAddress;
	
	private Properties propertiesType;
	
	private Date date;//   需要属性编辑器      PropEditor 就是实现这个功能的。
	                  //    PropEditor   继承了 java.beans.PropertyEditorSuppor类
	
	public Date getDate() {
		return date;
	}
	public void setDate(Date date) {
		this.date = date;
	}
	public User(){
		
	}
	public User(int id, String username, String password , Address address){
		this.id = id;
		this.username = username;
		this.password = password;
		this.address = address;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Address getAddress() {
		return address;
	}
	public void setAddress(Address address) {
		this.address = address;
	}
	public Set<Integer> getSetProperty() {
		return setProperty;
	}
	public void setSetProperty(Set<Integer> setProperty) {
		this.setProperty = setProperty;
	}
	public List<String> getListProperty() {
		return listProperty;
	}
	public void setListProperty(List<String> listProperty) {
		this.listProperty = listProperty;
	}
	public Map<String, String> getMapProperty() {
		return mapProperty;
	}
	public void setMapProperty(Map<String, String> mapProperty) {
		this.mapProperty = mapProperty;
	}
	public Properties getPropertiesType() {
		return propertiesType;
	}
	public void setPropertiesType(Properties propertiesType) {
		this.propertiesType = propertiesType;
	}
	public Set<Address> getSetAddress() {
		return setAddress;
	}
	public void setSetAddress(Set<Address> setAddress) {
		this.setAddress = setAddress;
	}
	public List<Address> getListAddress() {
		return listAddress;
	}
	public void setListAddress(List<Address> listAddress) {
		this.listAddress = listAddress;
	}
	public Map<String, Address> getMapAddress() {
		return mapAddress;
	}
	public void setMapAddress(Map<String, Address> mapAddress) {
		this.mapAddress = mapAddress;
	}
	
	public String toString(){
		return id + "  " + username + "   " + password;
	}
	

}


<?xml version="1.0" encoding="gbk"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
			http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
			http://www.springframework.org/schema/aop 
			http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
		    http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context-2.5.xsd ">
	
	<!-- 通过无参构造配置    no-args constructor of configuration-->
	<bean id="user" class="org.zhang.client.User"></bean>
	
	<!--
		通过有参构造配置 (int , string , string ,Address)参数是基本类型,引用类型 have-args
		constructor of configuration
	-->
	<bean id="userHaveArgs" class="org.zhang.client.User">
		<constructor-arg type="int" value="1" index="0"></constructor-arg>
		<constructor-arg type="java.lang.String" value="123456"
			index="2"></constructor-arg>
		<constructor-arg type="java.lang.String" value="zhangshaobin"
			index="1"></constructor-arg>
		<!--
			两种方法 下面的一种方法要先在这个 bean 外面在定义一个 bean 构造地址的对象 <constructor-arg
			type="org.zhang.client.Address"> <bean
			class="org.zhang.client.Address"></bean> </constructor-arg>
		-->
		<constructor-arg type="org.zhang.client.Address" ref="address"></constructor-arg>
	</bean>
	<bean id="address" class="org.zhang.client.Address"></bean>
	
	<!-- 通过setter 方法配置      普通类型的属性 -->
	<bean id="userSetProperty" class="org.zhang.client.User">
		<property name="id" value="2"></property>
		<property name="username" value="宋慧乔"></property>
		<property name="password" value="654321"></property>
	</bean>
	
	
	<!-- 通过   setter 方法配置      Set类型的属性   Set集合中放着  基本数据类型 -->
	<bean id="userSet" class="org.zhang.client.User">
		<property name="setProperty">
			<set>
				<value>1</value>
				<value>2</value>
				<value>3</value>
			</set>
		</property>
	</bean>
	
	<!-- 通过   setter 方法配置      Set类型的属性   Set集合中放着  引用类型 -->
	<bean id="userSetComplex" class="org.zhang.client.User">
		<property name="setAddress">
			<set>
				<ref bean="address" />
			</set>
			<!--
				这种方法是内置 bean 上面的方法是引用 外部的 bean <set> <bean id="addressSet"
				class="org.zhang.client.Address"> <property name="id"
				value="1"></property> <property name="country"
				value="china"></property> <property name="province"
				value="beijing"></property> <property name="city"
				value="beijing"></property> </bean> </set>
			-->
		</property>
	</bean>
	
	<!-- 通过   setter 方法配置    List类型的属性  List集合中放着  基本类型 -->
	<bean id="userList" class="org.zhang.client.User">
		<property name="listProperty">
			<list>
				<value>1</value>
				<value>2</value>
				<value>zhangshaobin</value>
			</list>
		</property>
	</bean>
	
	<!-- 通过   setter 方法配置      List类型的属性  List集合中放着  引用类型 -->
	<bean id="userListComplex" class="org.zhang.client.User">
		<property name="listAddress">
			<list>
				<ref bean="address" />
				<!--
					上面的这句 与 注释的 效果相同 上面的是引用外部的bean, 本句是内置bean <bean id="addressList"
					class="org.zhang.client.Address"> <property name="id"
					value="2"></property> <property name="country"
					value="USA"></property> <property name="province" value="Los
					Angeles"></property> <property name="city" value="Los
					Angeles"></property> </bean>
				-->
			</list>
		</property>
	</bean>
	
	<!-- 通过  setter 方法配置           map 类型             map中放着是 基本类型的 -->
	<bean id="userMap" class="org.zhang.client.User">
		<property name="mapProperty">
			<map>
				<entry key="a" value="张少斌"></entry>
				<entry key="b" value="刘德华"></entry>
				<entry key="c" value="刘若英"></entry>
			</map>
		</property>
	</bean>
	
	<!-- 通过  setter 方法配置           map 类型             map中放着是 基本类型的 -->
	<bean id="userMapComplex" class="org.zhang.client.User">
		<property name="mapAddress">
			<map>
				<!--
					引入外部的 bean 下面的内部嵌套的 bean <entry key="a"
					value-ref="address"></entry>
				-->
				<entry key="b">
					<bean class="org.zhang.client.Address">
						<property name="id" value="3"></property>
						<property name="country" value="中国"></property>
						<property name="province" value="石家庄"></property>
						<property name="city" value="行唐"></property>
					</bean>
				</entry>
			</map>
		</property>
	</bean>
	
	
	<!--  持久性文件      XXX.properties  的配置   -->
	<bean id="setProperties" class="org.zhang.client.User">
		<property name="propertiesType">
			<props>
				<prop key="a">詹姆斯</prop>
				<prop key="b">科比</prop>
				<prop key="c">姚明</prop>
			</props>
		</property>
	</bean>
	
	<!-- 属性编辑器    解决了java.util.Date型数据的配置 -->
	<bean id="customEditorConfigurer"
		class="org.springframework.beans.factory.config.CustomEditorConfigurer">
		<property name="customEditors">
			<map>
				<entry key="java.util.Date">
					<bean class="org.zhang.client.PropEditor">
						<property name="format" value="yyyy-MM-dd"></property>
					</bean>
				</entry>
			</map>
		</property>
	</bean>
	<bean id="userDate" class="org.zhang.client.User">
		<property name="date">
			<value>2009-06-10</value>
		</property>
	</bean>
</beans>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics