前言:
Spring通过反射来实现获取对象
准备:
1. 建Spring1工程。
2. 导入Spring包
具体实现:
1. Person.java
package com.simplefactory;
public interface Person {
public String sayHello(String name);
public String sayGoodBye(String name);
}
2. Chinese.java
package com.simplefactory;
public class Chinese implements Person{
@Override
public String sayGoodBye(String name) {
return "good by:"+name;
}
@Override
public String sayHello(String name) {
return "hello:"+name;
}
}
3. American.java
package com.simplefactory;
public class American implements Person {
@Override
public String sayGoodBye(String name) {
return "good by:"+name;
}
@Override
public String sayHello(String name) {
return "hello:"+name;
}
}
4. applicationContext.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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="chinese" class="com.test.Chinese"></bean>
<bean id="american" class="com.test.American"></bean>
</beans>
5. Client.java
package com.test;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Client {
public static void main(String[] args) {
ClassPathResource cpr=new ClassPathResource("applicationContext.xml");
XmlBeanFactory factory=new XmlBeanFactory(cpr);
Person person=(Person)factory.getBean("chinese");
System.out.println(person.sayHello("张三"));
System.out.println(person.sayGoodBye("张三"));
}
}
分享到:
相关推荐
2. `spring-core`模块:包含了核心工具类,提供基本的反射和类型转换支持,是其他模块的基础。 3. `spring-beans`模块:定义了Bean工厂,是容器的核心,负责Bean的实例化、配置和管理。 4. `spring-aop`模块:实现了...
`spring-core-4.3.10.RELEASE.jar`包含了Spring框架的基本核心工具类,如IoC(Inversion of Control)容器的实现,以及资源加载、异常处理和类型转换等基础功能。它是所有其他Spring模块的基础,提供了对反射和动态...
如`spring-beans`提供了Bean的创建和管理,`spring-context`提供了上下文环境,而`spring-core`则包含了基本的工具类和支持。 2. **OSGi服务** - `org.osgi`:OSGi(Open Service Gateway Initiative)是一种用于...
9. **Spring表达式语言(SpEL)**:在`org.springframework.expression`包中,SpEL提供了一种强大的表达式语言,用于在运行时查询和操作对象图。 10. **Web应用程序上下文**:`org.springframework.web.context`包...
在深入探讨 Spring 源码之前,我们需要了解 Spring 的基本架构和主要模块。 1. **核心容器**:Spring 框架的核心部分是 IoC(Inversion of Control)容器,它负责管理应用对象的生命周期和依赖关系。BeanFactory 和...
5. `org.springframework.core-3.1.1.RELEASE.jar`:这是 Spring 框架的核心库,包含了一些基本的工具类和接口,如反射、类型转换、集合操作等,是其他所有 Spring 模块的基础。 6. `rabbitmq-client.jar`:这是 ...
2. spring-core-4.2.6.RELEASE.jar:该模块包含了Spring的基本工具类,如反射、类型转换、资源加载等,是其他所有Spring模块的基础。 3. spring-webmvc-4.2.6.RELEASE.jar:这部分是Spring MVC模块,用于构建Web...
在给定的压缩包文件中,包含了一系列Spring的核心组件,这些组件是进行基本Spring开发所必需的。以下是对这些jar包及其作用的详细解释: 1. **spring-context-4.2.3.RELEASE.jar**:这是Spring上下文模块的实现,...
深入源码,我们可以看到Spring是如何通过反射、动态代理等技术实现依赖注入的,以及如何利用AOP实现切面的编织。此外,还可以学习到Spring MVC的请求处理流程,以及如何在Spring Boot中整合各种模块。 总的来说,...
这些示例涵盖了基本的IoC配置、AOP应用、数据访问以及Web MVC开发等,是学习和掌握 Spring 框架的重要资源。 总结,Spring Framework 3.0.5.RELEASE 以其全面的功能和优秀的文档支持,为Java开发者构建高效、可维护...
这个模块提供了基本的反射、类型转换、事件处理和资源加载等功能。 7. **spring-orm-3.0.2.RELEASE.jar**:ORM(Object-Relational Mapping)模块,为集成流行的对象关系映射API如Hibernate、JPA等提供支持,简化了...
以上内容主要涵盖了SpringBoot和Spring框架的基本概念、核心优势、配置方式、对象管理和依赖注入等关键知识点,这些都是面试中可能涉及的重要领域。对于MyBatis的部分,虽然在提供的信息中没有提及,但MyBatis是一个...
其次,`spring-core-4.2.6.RELEASE.jar`包含了Spring框架的基本工具类和核心功能,如依赖注入的支持,资源加载,以及对反射和动态代理的处理。它是所有Spring模块的基石,提供了基础的抽象和通用工具。 `spring-web...
1. 反射的基本概念:介绍什么是Java反射,它的用途,以及如何通过Class类、Constructor类、Method类和Field类来使用反射。 2. 反射的实际应用:包括动态加载类、创建对象、访问私有成员、调用方法等实例。 3. Spring...
这些jar文件是Java开发者在构建基于Spring的应用程序时所需的基本库。让我们详细了解一下每个标签所代表的模块及其功能。 1. **spring-context-4.0.5.RELEASE.jar**:这是Spring上下文模块,提供了在应用程序环境中...
Spring的核心模块包含基本的工具类、异常处理、类型转换和资源访问等功能。这个版本中,对反射和类型转换进行了优化,提升了运行效率。 2. **Bean模块** - `org.springframework.beans-3.1.3.RELEASE.jar` Bean...
2. **spring-core-4.2.0.RELEASE.jar**:这个JAR包包含了Spring框架的基本功能,如依赖注入(Dependency Injection, DI)、资源加载、反射工具等。Spring 4.2可能增强了对新Java版本的兼容性,并且优化了核心类库的...
2. **spring-core-4.0.6.RELEASE.jar**:核心工具包,包含了Spring的基本类和接口,如BeanFactory、ApplicationContext接口,以及IoC(Inversion of Control)容器的实现。此外,还包括了通用的反射、类型转换和资源...
4. **反射与代理**:`org.springframework.core`包提供了对Java反射API的封装,使得开发者可以更方便地操作类、方法和字段。同时,`org.springframework.aop.support`提供了动态代理实现,支持AOP功能,如切面创建、...
在深入理解Java反射之前,我们首先要明白面向对象的基本概念,包括类、对象、方法以及继承、封装和多态等特性。 1. **类与对象**: - 类是Java中的蓝图,定义了具有相同属性和行为的对象模板。例如,`Person`类...