一、实现转换工厂,定义转换实现,如下:
package com.mafwo;二、在spring配置文件中配置:
import org.springframework.core.convert.converter.Converter;
import org.springframework.core.convert.converter.ConverterFactory;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class OrdinalToEnumConverterFactory implements ConverterFactory<String, Enum<?>> {
@Override
public <T extends Enum<?>> Converter<String, T> getConverter(Class<T> targetType) {
return new OrdinalToEnum<T>(targetType);
}
private class OrdinalToEnum<T extends Enum<?>> implements Converter<String, T> {
private final Class<T> enumType;
public OrdinalToEnum(Class<T> enumType) {
this.enumType = enumType;
}
@Override
public T convert(String source) {
// 转换成数字
int ordinal = Integer.valueOf(source);
if(ordinal == Integer.MIN_VALUE) {
return null;
}
Object temp = null;
try {
Method getCode = enumType.getMethod("getCode");
Object[] objects = enumType.getEnumConstants();
for(Object ob: objects){
Integer temps = (Integer) getCode.invoke(ob);
if(temps == ordinal)
{
temp = ob;
break;
}
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return (T) temp;
}
}
}
<!--注意在配置转换鼓舞之后需要在 注解驱动处声明-->之后就可以使用注解方式自动注入枚举类型数据。
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!-- 自动将枚举类型的序列号解析称枚举类型 -->
<bean class="com.mafwo.OrdinalToEnumConverterFactory" />
</set>
</property>
</bean>
相关推荐
Spring MVC 自动为对象注入枚举类型 在 Spring MVC 框架中,为对象自动注入枚举类型是一项非常有用的功能。然而,默认情况下,Spring MVC 只能自动转换基本数据类型,枚举类型需要特殊处理。在本篇文章中,我们将...
ZRPower7.0是一款基于Spring MVC架构的高效、灵活的Java管理系统开源框架,它整合了Easyui这一前端框架,为开发者提供了便捷的后台搭建方案。这个系统旨在简化企业级应用的开发流程,提高开发效率,同时也为开发者...
Spring Data是Spring生态系统的一部分,它提供了与数据存储交互的简便方法,而Spring和Spring MVC则分别作为基础服务管理和Web层的控制层框架。下面我们将详细讲解每个组件的作用以及它们之间的集成过程。 1. **...
1. **依赖注入(Dependency Injection,DI)**:Spring的核心功能之一,通过DI,对象之间的依赖关系不再硬编码在类内部,而是通过配置文件或注解来管理。这样可以降低类之间的耦合度,提高代码的可测试性和可维护性...
根据提供的信息,“spring2.5中文数据手册”主要聚焦于Spring框架2.5版本的相关内容。Spring框架是一个广泛使用的Java平台应用开发框架,它提供了一种简单的方式来构建复杂的应用程序。接下来,我们将从以下几个方面...
- **依赖注入**:Spring容器会自动将Bean的依赖项注入到Bean中,可以通过构造器注入或setter注入的方式实现。 通过上述知识点的详细介绍,我们对Spring框架的核心概念有了较为深入的理解。无论是初学者还是有一定...
数据绑定允许将用户界面数据自动绑定到业务对象。类型转换系统确保不同类型的对象可以顺畅交互。SpEL提供了一种强大且灵活的表达式语言,用于在运行时查询和操作对象。最后,AOP允许开发者定义“切面”,在程序的...
Spring2.x的Bean容器有所增强,支持基于ClassPath的自动扫描,可以自动发现和注册带有特定注解的类,减少了XML配置的工作量。 9. **性能优化** Spring2.x在性能方面做了很多优化,如使用缓存来减少重复的bean创建...
3. **Web**:提供了Spring MVC和Spring WebFlux两种Web应用框架。 4. **AOP**:支持面向切面编程,用于实现横切关注点,如日志、事务管理等。 5. **Instrumentation**:用于类加载器和应用服务器特定的工具。 6. **...
依赖注入(Inversion of Control, IoC)是Spring框架的核心特性之一,它通过将对象间的依赖关系交由外部容器管理来实现松耦合。在Spring2.5中,IoC容器支持通过XML配置文件或注解的方式定义和管理Bean之间的依赖关系...
而注解配置则是Spring 2.5版本之后逐渐流行起来的一种方式,通过在类或方法上添加特定的注解来实现自动装配等功能;基于Java的配置则是在Spring 3.0版本之后引入的新特性,允许开发者使用纯Java代码来替代XML配置...
- 结合 `ModelAndView` 或直接返回对象,Spring MVC 将自动处理视图渲染或 JSON 反序列化。 5. **HTTP 响应状态码和头信息** - 通过 `ResponseEntity` 类设置自定义的 HTTP 状态码和头信息。 - 使用 `...
通过这种方式,对象不再负责创建它们自己的依赖对象,而是通过配置文件或注解来声明这些依赖,这些依赖由Spring容器自动注入。 ##### 1.2 模块划分 Spring框架被划分为多个模块,每个模块提供了特定的功能: - **...
总的来说,Spring Framework 2.1-m1 是一个重要的版本,它在依赖注入、AOP、Web开发、数据访问和性能优化等方面都有所提升,为Java开发者提供了更强大、更灵活的工具。如果你正在使用或打算学习Spring框架,这个版本...
- **依赖注入(DI)**:Spring框架的核心特性之一,用于实现IoC(Inversion of Control,控制反转),通过外部容器来管理对象及其依赖关系,从而降低了组件之间的耦合度。 #### 二、Spring MVC - **Spring MVC概述*...
这些源代码可能是按照Spring框架的组织结构来编写的,例如,控制器(Controllers)、服务(Services)、模型(Models)、视图(Views)以及数据访问对象(Data Access Objects,DAOs)。 进一步分析,Spring框架中...
- **Autowiring collaborators**: 自动装配协作对象,简化了配置。 - **Checking for dependencies**: 检查Bean是否存在未满足的依赖。 - **Method Injection**: 方法级别的依赖注入。 **3.4 Bean的作用域** - **...
Spring框架是Java开发中广泛应用的一个轻量级框架,它提供了多种功能来简化应用程序的构建和管理。Spring的核心特性包括依赖注入(Dependency ...从IoC和AOP到MVC和数据访问,Spring为开发者提供了强大而灵活的工具集。
Spring框架是Java平台上一个开源的应用框架,其核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP),旨在简化企业级应用的开发。Spring 2系列版本在原有的基础上...