`
wiselyman
  • 浏览: 2094065 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82332
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130806
社区版块
存档分类
最新评论

11点睛Spring4.1-Property Editor

 
阅读更多

11.1 Propert Editor

  • property editor是JavaBeans API的一项特性,用来字符和属性值之间的互相转换(如2014-03-02Date类型的互相转换)
  • spring内置了CustomDateEditor, CustomNumberEditor, ClassEditor, FileEditor, LocaleEditor, StringArrayPropertyEditor
  • 除了内置的property editor,如需自己定制额外的复杂情况继承JavaBeans API的PropertyEditorSupport

11.2 示例

11.2.1 使用Spring内置的Editor

11.2.1.1 编写演示bean

import java.util.Date;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class DemoBean {
    @Value("2014/02/03")
    private Date demoDate;

    public Date getDemoDate() {
        return demoDate;
    }

    public void setDemoDate(Date demoDate) {
        this.demoDate = demoDate;
    }


}

11.2.1.2 编写配置

package com.wisely.propertyeditor;

import java.text.SimpleDateFormat;

import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DemoConfig {
    @Bean
    public CustomDateEditor dateEditor(){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        return new CustomDateEditor(dateFormat, true);
    }
}

11.2.1.3 测试

package com.wisely.propertyeditor;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext("com.wisely.propertyeditor");
        DemoBean demoBean = context.getBean(DemoBean.class);
        System.out.println(demoBean.getDemoDate());
        context.close();
    }
}

输出结果

Mon Feb 03 00:00:00 CST 2014

11.2.2 使用PropertyEditorSupport

11.2.2.1 编写需要和字符转换的javabean

此为传值对象,不需要声明称spring的bean

package com.wisely.propertyeditor;

public class DemoBean2 {
    private String name;
    private String address;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }

}

11.2.2.2 在DemoBean中注入该bean

package com.wisely.propertyeditor;

import java.util.Date;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class DemoBean {

    @Value("汪云飞-合肥")
    private DemoBean2 demoBean2;


    public DemoBean2 getDemoBean2() {
        return demoBean2;
    }

    public void setDemoBean2(DemoBean2 demoBean2) {
        this.demoBean2 = demoBean2;
    }

}

11.2.2.3 实现自定义的Property Editor

package com.wisely.propertyeditor;

import java.beans.PropertyEditorSupport;

public class DemoPropertyEditor extends PropertyEditorSupport{

    @Override
    public String getAsText() {
        DemoBean2 bean2 =(DemoBean2) getValue();
        return bean2.getClass().getName() + "," + bean2.getName() 
                                     + "," + bean2.getAddress();
    }

    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        String[] parts = text.split("-");
        try{
            DemoBean2 bean2 = new DemoBean2();
            bean2.setName(parts[0]);
            bean2.setAddress(parts[1]);
            setValue(bean2);
        }catch(Exception e){
            throw new IllegalArgumentException(e);
        }

    }

}

11.2.2.4 配置editorConfigurer

package com.wisely.propertyeditor;

import java.beans.PropertyEditor;
import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.config.CustomEditorConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Demo2Config {
    @Bean
    public CustomEditorConfigurer editorConfigurer(){
        CustomEditorConfigurer editorConfigurer = new CustomEditorConfigurer();
        Map<Class<?>, Class<? extends PropertyEditor>> customEditors =
                new HashMap<Class<?>, Class<? extends PropertyEditor>>();
        customEditors.put(DemoBean2.class, DemoPropertyEditor.class);
        editorConfigurer.setCustomEditors(customEditors);
        return editorConfigurer;
    }

}

11.2.2.5 测试

package com.wisely.propertyeditor;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext("com.wisely.propertyeditor");
        DemoBean demoBean = context.getBean(DemoBean.class);
        System.out.println(demoBean.getDemoBean2().getName()+"///"
                       +demoBean.getDemoBean2().getAddress());
        context.close();
    }
}

输出结果

汪云飞///合肥

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

 

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


0
0
分享到:
评论

相关推荐

    国元点睛-20230825-国元期货-23页.pdf

    国元点睛-20230825-国元期货-23页

    4.1-细胞分化形成组织.pptx

    这一过程导致了多种不同类型的细胞,它们共同构成组织,即形态相似、结构和功能相同的细胞集合。医学中,我们可以识别四大基本组织: 1. 上皮组织:由紧密排列的上皮细胞和少量细胞间质构成,常见于皮肤表面、消化...

    眼睛穴位图-睛明穴-取穴方法

    眼睛穴位图-睛明穴-取穴方法 方便经常上网的朋友使用

    stasm4.1版本-人脸识别77个特征点提取

    STASM4.1是该算法的一个特定版本,提供了对77个关键面部特征点的精确提取,这些特征点包括眼睛、眉毛、鼻子、嘴唇、脸颊等部位的关键点。 1. **STASM算法基础**: STASM基于主动形状模型(Active Shape Model, ASM)...

    司机眼睛状态标记---应用OpenCV人脸检测与模板匹配方法

    使用OpenCV1.0实现了眼睛状态识别,首先用harr检测眼睛,然后用模板匹配的方法标记眼睛状态。 程序需要使用Eyes45x11.xml Mouth25x15.xml Nose25x15.xml,将其放到C:\Program Files\OpenCV\data\haarcascades目录下...

    图像与眼睛(2009-04-1.pdf

    很抱歉,由于提供的文件信息中没有包含任何实际的文档内容,我无法从给定的信息中生成相关的知识点。请提供具体的文档内容或详细说明文档中的知识点要求,我将根据实际内容进行详细的回答。

    点睛文本编码查询(文本的字符串转换工具)

    软件名:点睛文本编码查询 功能:本软件用于将文本的字符串转换为 Text、ASCII、Default、Unicode、BigEndianUnicode、UTF-8、UTF-7、GBK、BIG5 之间的互相转换,用于文本查询。转换结果使用十六进制表示。

    点睛网赚论坛源码整站程序+10W数据【送主动推送工具】

    点睛网赚论坛源码整站程序+10W数据【送主动推送工具】 安装教程https://www.ygwzjs.cn/post/260.html 百度推送工具https://www.ygwzjs.cn/post/181.html 效果演示:z-www.seoheimao.cn 【全新优化】点睛网论坛整站...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...

    Delphi IDE Theme Editor

    本文将详细探讨“Delphi IDE Theme Editor”这一工具,它为Delphi集成开发环境(IDE)提供了自定义色彩、字体等界面元素的强大功能,帮助开发者打造个性化的编程空间。 Delphi,由Embarcadero Technologies开发,是...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    第一部分 点睛Spring 4.x 第1 章 Spring 基础 2 1.1 Spring 概述 2 1.1.1 Spring 的简史 2 1.1.2 Spring 概述 3 1.2 Spring 项目快速搭建 5 1.2.1 Maven 简介 6 1.2.2 Maven 安装 6 1.2.3 Maven 的pom.xml 7 1.2.4 ...

    360点睛多语言加密示例和密码加密调试工具.zip

    360点睛营销开放平台是一款由360公司推出的广告投放和营销管理工具,它为开发者提供了丰富的API接口,以帮助开发者构建和优化自己的广告系统。在这个名为"360点睛多语言加密示例和密码加密调试工具.zip"的压缩包中,...

    点睛 内码转换器

    "点睛内码转换器"是一款专为处理文本编码问题设计的工具,它能够帮助用户在不同的字符编码之间进行转换,以解决由于编码不匹配导致的乱码问题。在计算机科学领域,字符编码是用于表示文本的一系列规则,常见的有...

    360点睛使用手册(2019.08).pdf

    投放管理是360点睛的核心功能之一,它无缝对接点睛平台的核心功能,并支持推广计划设置、关键词设置、计划预算设置等功能。推广计划设置可以查看所有推广计划的状态、消费、点击等详细数据,并支持批量调整和移动...

    点睛字符替换器 v1.05特别修正版.rar

    点睛字符替换器v1.05特别修正版是一款针对文本处理的专业软件,主要用于批量替换文本中的特定字符或字符串。这个特别修正版可能是对原始版本的优化和改进,以解决某些问题或添加新功能。在IT领域,字符替换工具是...

    点睛字串替换器

    点睛字串替换器

    点睛字串替换器V1·06

    点睛字串替换器V1·06主要用于非资源 本软件是一个本地化工具,主要用于非资源格式的本地化工作,支持的种类包括非资源格式的 C 编译的程序中的 ASCII 字符串和 UniCode 字符串、非资源格式的 Delphi(C++ Builder)...

    点睛网赚论坛整站程序+全套数据.zip

    【标题】"点睛网赚论坛整站程序+全套数据.zip"所涵盖的知识点主要集中在网站建设和运营领域,特别是关于论坛程序和数据管理方面。这个压缩包文件提供了一个完整的网络赚钱论坛的源代码和所有相关数据,对于想要搭建...

Global site tag (gtag.js) - Google Analytics