其实spring是基于java的反射机制,现在举个示例看一下:
比如有个User类
public class User {
String userName;
String password;
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/*
* 打印用户信息
*/
public void printInfo(){
System.out.println("userName:"+userName+",password:"+password);
}
}
然后我们再写一个类对其进行反射
import java.lang.reflect.Method;
public class Reflect {
public static void main(String[] args) {
try{
//根据类名(spring中是从applicationContext.xml中读取的)获得其类,注意这时还不是实例,只是个类
Class<?> objClass=Class.forName("User");
/*
* 由类获取setter方法(spring中是从applicationContext.xml中读取的)
* 第一个参数据是方法名,第二个是方法的参数(这里这用的是String类),可以是数组表示多个参数
*/
Method setNameMethod=objClass.getMethod("setUserName", String.class);
Method setPasswordMethod=objClass.getMethod("setPassword", String.class);
//有的方法是private,设置方法的访问属性为可访问
setNameMethod.setAccessible(true);
setPasswordMethod.setAccessible(true);
//实例化对象
Object obj=objClass.newInstance();
//调用方法进行注入
setNameMethod.invoke(obj, new String("shirui"));
setPasswordMethod.invoke(obj, new String("0000"));
//此时完成注入,我们进行测一下
User user=(User)obj;//spring中是ctx.getBean("user");
user.printInfo();
/*
* 到此完成spring底层的反射机制
*/
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中的一个重要概念,它是Spring框架的核心特性之一,用于降低组件之间的耦合度,提高代码的可测试性和可维护性。本篇文章将深入探讨Spring依赖注入的...
在本篇文章中,我们将深入探讨Spring注入原理,特别是注解方式的实现,帮助你更好地理解和掌握这一技术。 ### 1. 依赖注入(Dependency Injection) 依赖注入是Spring的核心特性,它允许我们解耦组件间的依赖关系...
本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》这本书主要聚焦于Spring框架的核心架构和技术细节,帮助读者全面理解Spring的工作机制、设计理念以及实现方式。下面将根据书名及其描述来展开相关知识点。 ...
Spring框架是Java开发中广泛使用的轻量级框架,它的核心特性之一就是依赖注入(Dependency Injection,简称DI)。本文将深入探讨Spring如何通过读取配置文件实现依赖注入,并讲解相关源码,帮助理解其工作原理。 在...
《迷你Spring:深入理解Spring核心原理》 迷你Spring(mini-spring)是一个为了教学和学习目的而设计的简化版Spring框架。它旨在帮助开发者快速理解Spring框架的核心概念和工作原理,为深入研究Spring源码提供了...
根据提供的标题和描述,我们可以深入探讨Spring框架的核心架构与设计原理。Spring框架是Java平台上的一个开源框架,它提供了一种全面的编程模型,旨在简化企业级应用的开发过程。接下来,我们将围绕Spring的核心概念...
### Spring注入原理详解 在Java开发领域,Spring框架无疑占据着举足轻重的地位,尤其在企业级应用中,Spring的依赖注入(Dependency Injection,DI)特性极大地简化了对象之间的依赖管理,使得代码更加模块化、可...
本文将深入解析Spring中的依赖注入原理,帮助开发者更好地理解和应用这一核心功能。 依赖注入(Dependency Injection,简称DI)是Spring框架的核心之一,它允许组件之间的依赖关系在运行时由外部容器来管理,而不是...
《Spring技术内幕:深入解析Spring架构与设计原理》是一本深度剖析Spring框架核心机制与设计理念的专业书籍。本书针对Java开发者,特别是对Spring框架有深入学习需求的读者,提供了丰富的技术细节和实践指导。 ...
Spring框架是Java开发中最常用的轻量级框架之一,它的运行机制源码剖析是理解其工作原理的关键。在本文中,我们将深入探讨Spring的核心组件、依赖注入(DI)以及AOP(面向切面编程)的实现。 首先,让我们从Spring...
《迷你Spring:深入理解Spring核心原理》 Java_minispring是一个专门为学习和理解Spring框架核心原理而设计的简化版框架。这个项目的目标是通过精简的代码,让开发者能够更直观地了解Spring的工作机制,从而更快地...
Spring 框架的设计目标是让对象之间的依赖关系转而用配置文件来管理,也就是他的依赖注入机制。这个注入关系在一个叫 Ioc 容器中管理,那 Ioc 容器中有又是什么就是被 Bean 包裹的对象。Spring 正是通过把对象包装在...
Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate.cfg.xml或hibernate.properties文件来获取数据库连接信息和其他配置设置。 2....
Spring 框架是Java开发中的核心框架,它主要由两...Spring的IOC和AOP机制使得开发者能够更专注于业务逻辑,而不是繁琐的依赖管理和横切关注点。了解和掌握这两个核心概念,对于高效地使用Spring框架进行开发至关重要。
Spring依赖注入机制,也被称为控制反转(Inversion of Control,IOC),是Spring框架的核心特性,它使得应用程序的组件之间能够实现松散耦合。在传统编程中,对象通常自行创建和管理它们所依赖的其他对象,而在...
因此,下面将围绕Spring框架的核心概念、架构原理及其设计模式等方面进行详细的知识点解析。 ### Spring框架概述 Spring框架是一个开源的轻量级Java应用开发框架,旨在简化企业级应用的开发过程。它最初由Rod ...
《Spring技术内幕——深入解析Spring架构与设计原理》是一本深度剖析Spring框架核心机制与设计理念的专业书籍。本书旨在帮助读者全面理解Spring的内部工作原理,从而更好地应用和优化Spring框架在实际开发中的使用。...