`
yongguang423
  • 浏览: 112060 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

Spring 源码之判断属性基本类型

 
阅读更多
判断是否是基本类型	
/**
	 * Check if the given type represents a "simple" property:
	 * a primitive, a String or other CharSequence, a Number, a Date,
	 * a URI, a URL, a Locale, a Class, or a corresponding array.
	 * <p>Used to determine properties to check for a "simple" dependency-check.
	 * @param clazz the type to check
	 * @return whether the given type represents a "simple" property
	 * @see org.springframework.beans.factory.support.RootBeanDefinition#DEPENDENCY_CHECK_SIMPLE
	 * @see org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#checkDependencies
	 */
	public static boolean isSimpleProperty(Class<?> clazz) {
		Assert.notNull(clazz, "Class must not be null");
		return isSimpleValueType(clazz) || (clazz.isArray() && isSimpleValueType(clazz.getComponentType()));
	}

 

	/**
	 * Check if the given type represents a "simple" value type:
	 * a primitive, a String or other CharSequence, a Number, a Date,
	 * a URI, a URL, a Locale or a Class.
	 * @param clazz the type to check
	 * @return whether the given type represents a "simple" value type
	 */
	public static boolean isSimpleValueType(Class<?> clazz) {
		return ClassUtils.isPrimitiveOrWrapper(clazz) || clazz.isEnum() ||
				CharSequence.class.isAssignableFrom(clazz) ||
				Number.class.isAssignableFrom(clazz) ||
				Date.class.isAssignableFrom(clazz) ||
				clazz.equals(URI.class) || clazz.equals(URL.class) ||
				clazz.equals(Locale.class) || clazz.equals(Class.class);
	}

 

 

分享到:
评论

相关推荐

    Spring源码解析.pdf

    ### Spring源码解析知识点 #### 一、Spring IoC 容器详解 ##### 1. BeanFactory —— 最基础的IoC容器 - **概念**:`BeanFactory` 是Spring框架中最基本的IoC容器,它负责管理Bean的生命周期,包括创建、配置和...

    Spring源码

    3. **Bean工厂与ApplicationContext**:Bean工厂是Spring管理对象的基本容器,而ApplicationContext则是在Bean工厂的基础上增加了更多的企业级服务,如国际化、事件传播、资源加载等。ApplicationContext通常用于...

    Spring2(源码)

    Spring框架是Java开发中最常用的轻量级开源框架之一,它...以上是对Spring框架的一些核心概念和关键点的介绍,深入研究Spring源码可以帮助我们更好地理解其实现细节,提高开发效率,并为定制化开发和性能优化提供基础。

    Spring Boot源码(spring-boot-2.6.2.zip)

    5. `org.springframework.boot.context.properties.*`: 属性绑定和配置源的处理。 通过阅读这些核心组件的源码,我们可以深入理解Spring Boot是如何加载配置、启动应用、自动配置bean以及与其他Spring框架组件协作...

    spring3.2.6源码文件

    1. **依赖注入(Dependency Injection, DI)**:这是Spring最基础也是最重要的特性之一。通过DI,Spring容器管理对象的生命周期和它们之间的关系,允许开发者松耦合代码,提高可测试性和可维护性。 2. **IoC容器**:...

    spring源码 4.1.6

    Spring框架是Java开发中最常用的轻量级框架之一,它的4.1.6版本是一个稳定且广泛使用的版本。本文将深入探讨Spring 4.1.6的源码,解析其核心概念和技术,帮助开发者理解并更好地利用这个强大的工具。 1. **IoC...

    spring-boot源码

    1. **自动配置**:Spring Boot的自动配置是其核心特性之一。在`spring-boot-autoconfigure`模块中,通过条件注解(如`@ConditionalOnClass`, `@ConditionalOnBean`等)来判断类路径中的类是否存在,进而决定是否加载...

    spring 4.3.1源码

    它广泛用于配置文件中,用于动态计算属性值和进行条件判断。 8. **AOP代理**:Spring支持JDK动态代理和CGLIB代理,用于创建AOP代理对象,以实现切面的功能。 9. **声明式事务管理**:Spring提供了一种声明式的方式...

    spring 2.5.6源码

    SpEL 在配置和切面中非常有用,例如在条件判断或属性设置中。 10. **AOP 切面**:使用 `@Aspect` 注解定义切面,`@Before`、`@After`、`@Around` 和 `@AfterReturning` 等注解用于定义通知(advisors),定义切点...

    spring-framework-4.0.6.RELEASE 源码

    在4.0.6版本中,开发者可以使用SpEL进行条件判断、属性访问、方法调用等,增强了配置的灵活性。 10. **WebSocket支持** Spring 4.0引入了对WebSocket协议的支持,4.0.6版本进一步完善了WebSocket的应用场景,包括...

    Spring源码demo(含数据库脚本)

    **Spring 源码分析与应用** Spring 是一个开源的 Java 平台,它为构建企业级应用程序提供了全面的框架支持。Spring 框架的核心是依赖注入(Dependency Injection,DI),它允许开发者通过配置来管理对象之间的关系...

    spring 源码

    在`org.springframework.expression`包中,SpEL支持属性访问、方法调用、算术运算、逻辑判断等功能,广泛应用于Bean的属性注入和AOP的切点表达式。 6. **测试支持** Spring为单元测试和集成测试提供了丰富的支持。...

    spring-aop-ProxyFactoryBean 源码分析

    在Spring框架中,AOP(面向切面编程)是一个核心特性,它允许我们在不修改代码的情况下,对程序的行为进行统一的管理和控制。`ProxyFactoryBean`是Spring AOP实现中的一个重要类,它用于创建代理对象,使我们能够...

    springcloud Eureka源码解读

    SpringCloud Eureka是Spring Cloud生态系统中的一个关键组件,主要用于实现服务发现。Eureka是一个基于REST的服务,用于定位运行在分布式系统中的服务,以达到高可用和容错的目的。本篇文章将深入Eureka的源码,帮助...

    spring源码 3.0.4

    在3.0.4中,SpEL已经相当强大,能够进行复杂的条件判断和属性访问。 10. **测试支持**:Spring提供了JUnit和TestNG的集成,便于进行单元测试和集成测试。在3.0.4版本中,测试框架已经相当完善,支持模拟对象和依赖...

    spring 源码解析

    Spring 源码解析系列将深入探讨 Spring 框架的核心机制,特别是 IOC(Inversion of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)的实现。本文首先关注的是 Spring 中的 IOC 容器,它是...

    Spring选择题(含答案).doc

    Spring 框架选择题解析 Spring 框架是一种流行的 Java 应用程序框架,提供了许多强大的功能,...本文涵盖了 Spring 框架的基本概念,例如依赖注入、面向切面编程等,旨在帮助读者更好地理解 Spring 框架的原理和应用。

    spring 学习源码

    SpEL 允许在运行时动态评估表达式,常用于配置属性或条件判断。`StandardEvaluationContext` 和 `ExpressionParser` 是 SpEL 的关键组件。 9. **Spring 事件(Event)** Spring 提供了一个事件发布和监听机制,`...

    Spring的IoC容器初始化源码解析

    ### Spring的IoC容器初始化源码解析 #### 一、Spring框架的核心——IoC容器 Spring框架是一个开源的轻量级Java开发框架,其核心功能是IoC(Inversion of Control,控制反转)容器和AOP(Aspect Oriented ...

Global site tag (gtag.js) - Google Analytics