判断是否是基本类型
/**
* 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源码解析知识点 #### 一、Spring IoC 容器详解 ##### 1. BeanFactory —— 最基础的IoC容器 - **概念**:`BeanFactory` 是Spring框架中最基本的IoC容器,它负责管理Bean的生命周期,包括创建、配置和...
3. **Bean工厂与ApplicationContext**:Bean工厂是Spring管理对象的基本容器,而ApplicationContext则是在Bean工厂的基础上增加了更多的企业级服务,如国际化、事件传播、资源加载等。ApplicationContext通常用于...
Spring框架是Java开发中最常用的轻量级开源框架之一,它...以上是对Spring框架的一些核心概念和关键点的介绍,深入研究Spring源码可以帮助我们更好地理解其实现细节,提高开发效率,并为定制化开发和性能优化提供基础。
5. `org.springframework.boot.context.properties.*`: 属性绑定和配置源的处理。 通过阅读这些核心组件的源码,我们可以深入理解Spring Boot是如何加载配置、启动应用、自动配置bean以及与其他Spring框架组件协作...
1. **依赖注入(Dependency Injection, DI)**:这是Spring最基础也是最重要的特性之一。通过DI,Spring容器管理对象的生命周期和它们之间的关系,允许开发者松耦合代码,提高可测试性和可维护性。 2. **IoC容器**:...
Spring框架是Java开发中最常用的轻量级框架之一,它的4.1.6版本是一个稳定且广泛使用的版本。本文将深入探讨Spring 4.1.6的源码,解析其核心概念和技术,帮助开发者理解并更好地利用这个强大的工具。 1. **IoC...
1. **自动配置**:Spring Boot的自动配置是其核心特性之一。在`spring-boot-autoconfigure`模块中,通过条件注解(如`@ConditionalOnClass`, `@ConditionalOnBean`等)来判断类路径中的类是否存在,进而决定是否加载...
它广泛用于配置文件中,用于动态计算属性值和进行条件判断。 8. **AOP代理**:Spring支持JDK动态代理和CGLIB代理,用于创建AOP代理对象,以实现切面的功能。 9. **声明式事务管理**:Spring提供了一种声明式的方式...
SpEL 在配置和切面中非常有用,例如在条件判断或属性设置中。 10. **AOP 切面**:使用 `@Aspect` 注解定义切面,`@Before`、`@After`、`@Around` 和 `@AfterReturning` 等注解用于定义通知(advisors),定义切点...
在4.0.6版本中,开发者可以使用SpEL进行条件判断、属性访问、方法调用等,增强了配置的灵活性。 10. **WebSocket支持** Spring 4.0引入了对WebSocket协议的支持,4.0.6版本进一步完善了WebSocket的应用场景,包括...
**Spring 源码分析与应用** Spring 是一个开源的 Java 平台,它为构建企业级应用程序提供了全面的框架支持。Spring 框架的核心是依赖注入(Dependency Injection,DI),它允许开发者通过配置来管理对象之间的关系...
在`org.springframework.expression`包中,SpEL支持属性访问、方法调用、算术运算、逻辑判断等功能,广泛应用于Bean的属性注入和AOP的切点表达式。 6. **测试支持** Spring为单元测试和集成测试提供了丰富的支持。...
在Spring框架中,AOP(面向切面编程)是一个核心特性,它允许我们在不修改代码的情况下,对程序的行为进行统一的管理和控制。`ProxyFactoryBean`是Spring AOP实现中的一个重要类,它用于创建代理对象,使我们能够...
SpringCloud Eureka是Spring Cloud生态系统中的一个关键组件,主要用于实现服务发现。Eureka是一个基于REST的服务,用于定位运行在分布式系统中的服务,以达到高可用和容错的目的。本篇文章将深入Eureka的源码,帮助...
在3.0.4中,SpEL已经相当强大,能够进行复杂的条件判断和属性访问。 10. **测试支持**:Spring提供了JUnit和TestNG的集成,便于进行单元测试和集成测试。在3.0.4版本中,测试框架已经相当完善,支持模拟对象和依赖...
Spring 源码解析系列将深入探讨 Spring 框架的核心机制,特别是 IOC(Inversion of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)的实现。本文首先关注的是 Spring 中的 IOC 容器,它是...
SpEL 允许在运行时动态评估表达式,常用于配置属性或条件判断。`StandardEvaluationContext` 和 `ExpressionParser` 是 SpEL 的关键组件。 9. **Spring 事件(Event)** Spring 提供了一个事件发布和监听机制,`...
### Spring的IoC容器初始化源码解析 #### 一、Spring框架的核心——IoC容器 Spring框架是一个开源的轻量级Java开发框架,其核心功能是IoC(Inversion of Control,控制反转)容器和AOP(Aspect Oriented ...
Spring框架是Java开发中不可或缺的一部分,它以其丰富的功能和易用性深受开发者喜爱。以下是针对题目提供的内容,详细解析Spring框架的相关知识点。 1. **Spring框架的优点** - 分层架构:Spring允许开发者选择...