首页 > 其他分享 >Spring 自定义属性编辑器

Spring 自定义属性编辑器

时间:2023-04-21 12:02:34浏览次数:43  
标签:自定义 Spring 编辑器 import public 属性


Spring 自定义属性编辑器

 

Spring DI注入的时候可以把普通属性注入进来,但是像Date类型的就无法被识别。这时可以通过Spring的属性编辑器把配置文件中的字符串转化成相应的对象进行注入。

Spring有自带的属性编辑器,我们也可以写自定义的属性编辑器

 

自定义属性编辑器:

继承java.beans.PropertyEditorSupport类,重写其中的setAsText(String text)方法。

再把自定义的属性编辑器注入到Spring中。

 

例子:

JavaBean类


Java代码  

 
   
 
package
  
import
import
import
import
  
public class
  
private
  
public
return
    }  
  
public void
this.birthday = birthday;  
    }  
}


 

自定义属性编辑器


Java代码  

 
   
 
package
  
import
import
import
  
//自己写一个自定义属性编辑器来继承属性编辑器PropertyEditorSupport
public class DatePropertyEditor extends
  
//时间的格式
    String format;  
  
public
return
    }  
  
public void
this.format = format;  
    }  
  
//需要重写属性编辑器的setAsText()方法
@Override
public void
try
new
//把转换后的值传进去
this.setValue(f.parse(text));  
catch
            ex.printStackTrace();  
        }  
    }  
}

 

 

spring配置文件 applicationContext.xml :


Xml代码  



 
   
 
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
>
  
<!-- 普通属性注入 -->
<bean id="userBean" class="com.cos.entity.UserBean">
<!-- 时间属性,需要属性编辑器 -->
<property name="birthday" value="2011-03-16"/>
</bean>
  
<!-- 特殊属性的注入.把特殊属性注入到CustomEditorConfigurer Bean 里 -->
<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.Date">
<bean class="com.cos.entity.DatePropertyEditor">
<property name="format" value="yyyy-MM-dd"/>
</bean>
</entry>
</map>
</property>
</bean>
</beans>

org.springframework.beans.factory.config.CustomEditorConfigurer类可以读取PropertyEditorSupport类及子类,将字符串转化为指定的类型。

PropertyEditorSupport类把要转化的Date类型注入到customEditors  Map中。

 

 

测试类:


Java代码  

 
   
 
package
  
import
import
  
public class
  
public static void
//通过spring配置文件返回Bean的工厂对象
new ClassPathXmlApplicationContext("applicationContext.xml");  
//Bean工厂通过Bean的id得到JavaBean
"userBean");  
""+ub.getBirthday());  
    }  
}

 

标签:自定义,Spring,编辑器,import,public,属性
From: https://blog.51cto.com/u_2465818/6212435

相关文章

  • springmvc 链接数据库错误
    1.Causedby:org.xml.sax.SAXParseException:cos-all-limited.1.2:An''all''modelgroupmustappearinaparticlewith'{'minoccurs'}'='{'maxoccurs'}'=1,andthatparticlemustbepartofapa......
  • Android-自定义控件
    原文地址zhuanlan.zhihu.com残枫cps​目录收起framelayout触发覆盖页面的点击事件SurfaceView自定义控件1.构造函数2.测量View大小(onMeasure)注意:3.确定View大小(onSizeChanged)4.确定子View布局位置(onLayout)5.绘制内容(onDraw)Android自定义控件之自定义组合控件前言:使......
  • Sublime Text编辑器配置Python解释器简易教程
    今日鸡汤路漫漫其修远兮,吾将上下而求索。 前天在微信上遇到一个小伙伴问我一个关于Sublimetext配置Python解释器的问题,可能是初学者,对这方面还不是很懂,想使用快捷键但是徒劳一场,因为缺少Python解释器,直接按下快捷键Ctrl+B是不会得到想要的结果的。鉴于此,如果有小伙伴想使用Sub......
  • 【Spring】@Configuration为什么会生成代理呢?
    1 前言首先说下为什么会产生这样的疑惑哈,最近在看Spring-retry的时候,发现:其次我们再来看个现象,@Component声明了一个Bean,内部有个单例AService,当我们调用两次 aService()发现得到的对象不一样:@ComponentpublicclassDemo{publicclassAService{publ......
  • 苞米豆的多数据源 → dynamic-datasource-spring-boot-starter,挺香的!
    开心一刻2023年元旦,我妈又开始了对我的念叨妈:你到底想多少岁结婚我:60妈:60,你想找个多大的我:找个55的啊,她55我60,结婚都有退休金,不用上班不用生孩子,不用买车买房,成天就是玩儿我:而且一结婚就是白头偕老,多好我妈直接一大嘴巴子呼我脸上需求背景......
  • Spring的Factories机制介绍
    Java的SPI机制JavaSpringBoot加载yml配置文件中字典项Spring的Factories就是Spring版本的JavaSpi。SpringFactories的最重要的功能就是:可以通过配置文件指定Spring容器加载一些特定的组件。SpringFactories是一种类似于JavaSPI的机制,它在META-INF/spring.factories......
  • springboot 静态文件夹
    正常这个很久了,不需要写,但是好几年没有写这个相关的,都忘了,好记性不如烂笔头 spring:resources:static-locations:file:D:\\test#对应服务器内映射的实际路径mvc:static-path-pattern:/test/**#对应服务访问时的前缀servlet:multipa......
  • springboot启动自动执行sql脚本
    一:packagecom.lianzhu.bigdata.config;importlombok.extern.slf4j.Slf4j;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.CommandLineRunner;importorg.springframework.boot.autoconfigure.EnableAutoConfigurati......
  • 微信小程序开发笔记 基础篇③——自定义数据dataset,事件触发携带额外信息
    文章目录一、前言二、视频演示三、原理和流程四、注意事项五、全部源码六、参考一、前言微信小程序开发笔记——导读想要实现一个电费充值界面。多个不同金额的充值按钮,每个按钮都携带自定义数据(金额)点击不同金额的充值按钮,就会上传对应的数据(金额)。所以,本文主要使用到了微信小程......
  • SpringMvc 视图解析
    重定向forward前缀若要返回/WEB-INF/pages/success.jsp,则直接return"success";即可。若要返回webapp下的helloworld.jsp页面:相对路径../../hello,需return"../../helloworld";forward前缀,转发一个页面,不会进行拼串。需return"forward:/helloworld.jsp";格式:forward:转......