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>
分享到:
相关推荐
Spring的基本配置Spring的基本配置Spring的基本配置Spring的基本配置Spring的基本配置Spring的基本配置Spring的基本配置
Spring Security 基本使用和配置代码,学习之后自己练习,
这个文档时具体配置spring cloud的基本组件的注解和依赖包的文档,上次上传的spring cloud的是纯理论的,这个是具体实现;
Spring+MyBatis含分页的基本配置,加入json方式异常处理
SSH笔记-Spring基本配置方法(注入方式、引用bean、级联属性、集合属性、Properties属性、公用的集合bean、p命名空间)
NULL 博文链接:https://qinglonghai.iteye.com/blog/569205
关于spring的基本知识,高手就免看了.
springMvc的基本配置文件注释一些注解类,需要的可以看看
spring基本配置
Spring AOP配置的实例,最基本的Spring AOP配置
applicationContext.xml 基本配置详解
spring在英文里有春天、弹簧、...Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
尽管Spring Framework可以做很多事,但依赖注入却是Spring容器提供的最基本的功能。 任何稍微复杂一点的应用程序都至少由两个或两个以上的对象协作在一起,共同完成一些业务逻辑。以往的Java企业开发,每个对象都要...
01_Spring Security基本使用和配置 ;01_Spring Security基本使用和配置;持续更新中.....
Spring Cloud搭建基本服务配置: 1.Eureka 2.Ribbon 3.Feign 4.HyStrix 5.Zuul 6.Spring Config
主要介绍了Spring Security基本配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
基于xml的配置和注解的配置,方便Spring的学习 配置好的仓库:https://download.csdn.net/download/weixin_41957626/87463114?spm=1001.2014.3001.5501 maveb的集成:...
该资源描述了用spring+quartz搭建的环境来管理任务调度的基本配置