* 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入 spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器 * 如何定义属性编辑器?
1、继承PropertyEditorSupport类,覆写setAsText()方法
2、将属性编辑器注册到spring中
看下面示例:
(1)继承PropertyEditorSupport类,覆写setAsText()方法
import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 自定义属性编辑器
* @author Administrator
*/
public class PropertyEditorConvertor extends PropertyEditorSupport {
String format = "";//注入到spring中
@Override
public void setAsText(String text) throws IllegalArgumentException {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date date = sdf.parse(text);
this.setValue(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
public void setFormat(String format) {
this.format = format;
}
}
(2)写一个javaBean,就两属性,这里以转换Date类型为例
public class Bean1 {
private String name;
private Date date;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
(3)配置文件appliactionContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
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-2.5.xsd">
<!-- 属性编辑器
<bean id="propertyEditorConvertor" class="com.bjsxt.spring.PropertyEditorConvertor"></bean>
-->
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors"><!-- 这个name是写死的,是CustomEditorConfigurer类中的属性-->
<map><!--spring是将属性放到map里面来实现的转换的 -->
<entry key="java.util.Date"><!-- 属性为Date类型的数据 -->
<bean class="com.bjsxt.spring.PropertyEditorConvertor"> <!-- 用于转换属性的转换器 -->
<property name="format" value="yyyy/MM/dd"/>
</bean>
</entry>
</map>
</property>
</bean>
</beans>
(4)写一个测试
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args){
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean1 bean1 = (Bean1)factory.getBean("bean1");
System.out.println("bean1.name = " + bean1.getName());
System.out.println("bean1.date = " + bean1.getDate());
}
}
OK!如果时间能打印出来,就说明属性编辑器配置好了
分享到:
相关推荐
在Spring Boot项目中,主要的配置文件是`application.properties`或`application.yml`,它们定义了应用的各种属性,包括服务器端口、数据库连接信息、日志级别等。在"spring-boot-demo"项目中,我们可以找到这些配置...
4. **类型转换器**:在`org.springframework.oxm.converter`包下,定义了一系列的`Converter`,它们负责不同类型间的转换,比如`StringToObjectConverter`将XML字符串转换为Java对象。 四、实际应用 在实际项目中...
3. **过滤器链(Filter Chain)**:Spring Security的核心组件之一是过滤器链,它由多个过滤器组成,如`UsernamePasswordAuthenticationFilter`和`HttpSessionAuthenticationStrategy`等。这些过滤器负责处理HTTP...
这些配置元素允许开发者声明式地配置控制器、视图解析器、转换服务、消息源等组件。 例如,`<mvc:annotation-driven>`元素用于启用基于注解的控制器支持,这意味着Spring MVC会自动扫描并处理带有`@Controller`注解...
在Spring中,`PlatformTransactionManager`是所有事务管理器的接口,如`DataSourceTransactionManager`就是针对数据源的事务管理器。`@Transactional`注解用于标记需要进行事务管理的方法,其包含多个属性,如`...
接着,我们创建MyBatis的核心配置文件`mybatis-config.xml`,定义数据源、事务管理器等信息。Spring Boot默认会寻找类路径下的`mybatis-config.xml`文件。 ```xml <?xml version="1.0" encoding="UTF-8" ?> <!...
7. **Exception Translation**: MyBatis-Spring 能够将 MyBatis 抛出的异常转换为 Spring Data Access Exception Hierarchy 中的异常,使得异常处理更加统一。 在实际开发中,使用 `mybatis-spring-1.3.2.jar` 可以...
它可以用于属性访问、方法调用、运算和类型转换等。 9. **spring-tx-4.3.16.RELEASE.jar**:事务管理模块,支持编程和声明式事务管理,可以应用于JDBC、Hibernate、JPA等数据访问技术。 10. **spring-context-...
3. **异常转换**:当服务抛出异常时,Spring-WS 能够自动将这些异常转换为 SOAP 错误消息。 4. **安全集成**:与 Spring Security 集成,可以轻松地实现 Web 服务的安全性。 5. **模块化设计**:Spring-WS 由多个...
总之,自定义属性编辑器是Spring框架中一个非常实用的特性,它允许我们扩展和定制数据转换逻辑,以适应各种复杂的需求。通过理解和熟练运用自定义属性编辑器,开发者可以更好地利用Spring的IoC功能,提高代码的灵活...
接着,让我们来看看DataSourceTransactionManager,它是Spring提供的事务管理器,主要用于管理基于DataSource的事务。在Spring-JDBC中,事务的配置和管理是非常关键的一环。DataSourceTransactionManager通过获取...
Spring允许集成JiBX,提供了一种将XML配置转换为Java对象的便捷方式。 10. **javax.servlet**:这是Servlet API,是Java web开发的基础,Spring的DispatcherServlet就是基于这个API实现的,负责处理HTTP请求并分发...
5. `<websocket:message-type-converter>`:定义消息类型转换器,用于将接收到的消息转换为应用程序可以理解的格式,反之亦然。 了解并熟练使用这些配置元素,开发者可以创建一个功能完备的Spring WebSocket应用,...
9. **数据绑定**:Spring MVC 自动支持请求参数到 Java 对象的绑定,以及对象属性到视图的显示。@RequestParam、@PathVariable、@ModelAttribute 等注解可以帮助完成数据绑定。 10. **异常处理**:通过@...
3. **Spring Core**:spring-core-4.1.2.RELEASE.jar包含了核心工具类,如反射、类型转换、事件处理等,为Spring框架的其他模块提供了基础支持。 4. **Spring Web MVC**:spring-webmvc-4.1.5.RELEASE.jar是Spring...
Registering a LoadTimeWeaver允许在应用类加载器的加载时将类转换器应用到类上。 此外,ApplicationContext接口提供了Spring IoC容器的主要实现,它扩展了BeanFactory接口,增加了更多的企业级功能,如支持国际化...
依赖注入(Dependency Injection, DI)是一种软件设计模式,它提倡通过构造函数、方法或属性来传递对象所依赖的其他对象。这种方式可以降低组件之间的耦合度,并且使得测试变得更加容易。在Spring框架中,依赖注入是...
例如,我们可以创建一个自定义的监听器类,实现`AnalysisEventListener`接口,重写`invoke`方法来接收并处理每一行的数据。 对于导出Excel,EasyExcel提供`write`方法,我们需要指定输出的OutputStream和一个数据...
2. **高级消息选择器**:允许开发者根据消息头和属性进行更复杂的筛选,只处理符合特定条件的消息。 3. **异步消费者**:通过使用监听容器,可以实现消息的异步处理,提高系统的响应性和并发能力。 4. **故障恢复和...
在Spring框架中,集合注入和自定义转换器是两个重要的概念,它们对于应用程序的灵活性和扩展性至关重要。这里,我们将深入探讨这两个主题,并通过实例代码来理解它们。 **集合注入** 集合注入允许我们在Spring配置...