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的配置方式主要有两种:XML配置和Java配置。早期,XML配置是主流,而现在,随着Spring Boot的兴起...
本教程将详细介绍在Eclipse中进行Spring基本配置的步骤。 首先,确保你已经安装了Eclipse IDE,并且准备好了Spring框架的相关库文件。在本例中,我们使用的版本是Spring 2.5.5,对应的jar文件为`spring-2.5.5.jar`...
掌握这些知识点后,你将能够创建基本的Spring应用,并开始探索更高级的特性,如AOP、Spring MVC等。记得实践是检验真理的唯一标准,尝试自己动手编写XML配置文件并运行Spring应用,这将有助于巩固理论知识。
以上就是关于Spring框架的下载与配置的基本介绍。在实际开发中,我们还需要考虑如何整合其他Spring项目,如Spring MVC用于构建Web应用,Spring Data用于数据库操作,以及Spring Boot用于简化Spring应用的初始搭建和...
【Spring 框架基本知识及配置使用】 Spring 框架是Java开发中的一个核心框架,由Rod Johnson创建,最初源于《Expert One on One J2EE Design and Development》一书中的理念。Spring的主要目标是简化企业级应用的...
通过以上步骤,你已经掌握了Spring Security的基本配置和使用。不过,Spring Security的功能远不止这些,它还包括CSRF保护、安全过滤链、OAuth2整合、JWT令牌支持等高级特性。继续探索Spring Security,你会发现更多...
默认的安全配置可以满足基本需求,但通常需要自定义以满足特定应用的要求。 6. **Spring MVC集成**: Spring Security可以无缝集成到Spring MVC中,保护控制器方法。通过`@Secured`、`@PreAuthorize`和`@...
在这个"Spring Security2配置"的主题中,我们将深入探讨如何配置Spring Security来保护我们的应用程序,以及它的一些核心概念。 首先,让我们理解Spring Security的基本组件。`Users.java`、`Roles.java`暗示了用户...
首先,我们需要理解Spring配置文件的基本结构。Spring的配置文件通常为XML格式,如`applicationContext.xml`,它包含了bean的定义、属性值以及依赖关系等。这些数据在未加密状态下可能存在安全风险。 加密Spring...
本篇将详细介绍Spring框架的下载、安装以及基本配置过程。 首先,我们来了解如何下载Spring框架。Spring框架的官方下载地址是https://spring.io/projects/spring-framework。在该页面,你可以找到最新版本的Spring...
这个文档时具体配置spring cloud的基本组件的注解和依赖包的文档,上次上传的spring cloud的是纯理论的,这个是具体实现;
Spring Security 3 配置和使用 Spring Security 是一个强大且灵活的安全框架,旨在保护基于 Java 的 Web 应用程序。Spring Security 3 是 Spring Security 框架的第三个主要版本,提供了许多新的功能和改进。下面...
- 在`application.yml`或`application.properties`文件中,你需要定义Eureka Server的基本配置,如服务端口、实例ID、区域等。 - 示例配置: ```yaml server: port: 8761 eureka: instance: hostname: ...
除了上述基本配置,你可能还需要关注以下几点: - 恢复机制:JTA支持事务的恢复,这对于处理系统崩溃或异常情况非常有用。你需要了解如何在Spring中启用这个功能,并处理可能的恢复操作。 - 事务同步:Spring的`...
这个名为“spring最基本jar”的压缩包很可能包含了Spring框架的基础组件,让我们来详细探讨一下Spring框架的相关知识点。 1. **IoC容器**:Spring的核心是IoC容器,它负责管理对象的生命周期和依赖关系。通过配置...
总结起来,`applicationContext.xml`的基本配置主要涉及到Spring的bean定义、数据源配置、SessionFactory创建以及HibernateTemplate的设置,这些都是Spring整合Hibernate并进行数据访问的关键步骤。通过这种方式,...
**Spring2 整合 DWR:将DWR配置融入Spring配置文件** Direct Web Remoting (DWR) 是一个开源的JavaScript库,它允许在浏览器和服务器之间进行实时、安全的双向通信,使得Web应用程序能够拥有类似桌面应用的交互性。...
springMvc的基本配置文件注释一些注解类,需要的可以看看
SpringBoot + Spring Security 基本使用及个性化登录配置详解 Spring Security 是一个功能强大且灵活的安全框架,它提供了认证、授权、攻击防护等功能。SpringBoot 是一个基于 Spring 框架的框架,它提供了很多便捷...