对象的生成由Spring通过读取配置文件(applicationContext.xml)动态设置,主调类仅仅面对接口编程,无需知道具体的实现类。这样我们就可以根据配置文件进行实现类的切换。从而降低耦合性。对象的生成,由框架通过反射机制完成,控制权从前端主程序转化到了框架, 这种思想叫做控制反转(IOC),Inverse Of Control,可以很好的实现模块切换。
例如:实现USB模拟程序
配置文件
<beans>
<bean id="disk" class="usbdisk.UsbDisk"></bean>
</beans>
程序
package app;
public interface IDISK {
public abstract String readInfo();
public abstract void writeInfo(String msg);
}
package usbdisk;
import app.IDISK;
public class UsbDisk implements IDISK{
public String readInfo(){
return "从U盘读过来的信息";
}
public void writeInfo(String msg){
System.out.println("向U盘写出信息:" + msg);
}
}
package movedisk;
import app.IDISK;
public class MoveDisk implements IDISK{
public String readInfo(){
return "从移动硬盘读过来的信息";
}
public void writeInfo(String msg){
System.out.println("向移动硬盘写出信息:" + msg);
}
}
import java.awt.Frame;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import app.IDISK;
public class Test {
public static void main(String[] args) {
ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");
IDISK disk =( IDISK)context.getBean("disk ");
//根据配置文件的内容,实例化对象并且返回
disk.readInfo ();
}
}
分享到:
相关推荐
3. **起步依赖**:通过`spring-boot-starter`模块,可以便捷地引入所需功能,如`spring-boot-starter-web`用于Web开发,`spring-boot-starter-data-jpa`用于数据库访问。 4. **健康检查**:提供Actuator端点,用于...
4. **安全与健康检查**:Spring Boot 提供了安全模块(Spring Security)和健康检查端点,可以轻松实现认证、授权以及监控应用的健康状态。 5. **外部化配置**:Spring Boot 支持通过 application.properties 或 ...
Spring框架是Java开发中最常用的轻量级框架之一,它以其模块化、易用性和灵活性而闻名。本手册主要涵盖了Spring框架的两个主要版本——Spring 2.x和Spring 3.x,由FengGe精心整理,旨在帮助开发者快速查找和理解...
- **AOP(面向切面编程)**:Spring AOP允许程序员定义“横切关注点”并将其模块化为可重用的组件,这些组件可以在程序的多个点自动应用,如日志、事务管理等。 - **IoC(依赖注入)**:Spring通过容器管理对象及其...
1. **自动配置**: SpringBoot通过`@EnableAutoConfiguration`注解实现了自动配置功能。它会根据项目依赖自动配置相应的Bean,极大地减少了常规配置工作。 2. **内嵌式Web服务器**: SpringBoot支持内嵌Tomcat、Jetty...
SpringBoot知识点整理思维导图是针对Java开发领域中流行的微服务框架——Spring Boot进行系统性梳理的工具。Spring Boot以其快速启动、简化配置的特点,深受开发者喜爱。在本思维导图中,主要涵盖了以下几个核心知识...
本篇文档对后端开发中的关键知识点进行了全面而深入的梳理,涵盖了Java语言基础、JVM、操作系统、网络技术、数据库、缓存、多线程、Spring框架等方面的核心概念和技术要点。以下是针对文档标题、描述以及部分内容中...
- **Spring MVC**:Spring框架中的MVC模块介绍。 9. **SSH (Struts + Spring + Hibernate) 与 Ajax的整合** - **集成开发**:如何将这三个框架结合在一起,实现更高效的数据处理。 - **Ajax交互**:在SSH框架中...
本文将详细讲解如何将这两个框架整合,实现多数据源配置,并利用AOP(面向切面编程)进行动态切换,以达到数据库读写分离的目的。 **SpringMVC简介** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-控制器...
- **路由管理**:借助Vue Router实现单页面应用中的导航和视图切换。 - **样式管理**:采用CSS预处理器(如Sass或Less)提高样式编写效率。 ##### 4.2 Java后端逻辑处理 - **业务逻辑处理**:使用Spring框架提供的...
* 提供拦截器组件(Jboot、Spring)在登录后调用RPC接口实现对权限信息的拦截,把用户的菜单、权限、基地、地块信息提取后整合到缓存中,内部调用使用方法或缓存获取,不再通过RPC调用获取 2. 系统架构 2.1 数据...
FlyCms 是一个类似知乎以问答为基础的完全开源的JAVA语言开发的社交网络建站程序,基于 Spring Boot+Bootstrap3+MyBatis+MYSQL+Solr+Ehcache 应用架构,专注于社区内容的整理、归类和检索,它集合了问答,digg,wiki...
1. 首页轮播图:这是网站或应用的入口,通常展示促销活动或新品推荐,通过动态切换的图片吸引用户注意力。 2. 分类商品展示:将商品按照类别进行整理,方便用户根据需求快速找到目标商品,提高浏览效率。 3. 预约与...
根据提供的文件信息,我们可以整理出一系列与Java高级面试相关的知识点,特别是针对阿里巴巴面试的要求。以下是对这些知识点的详细解析: ### 1. Tomcat **知识点解析:** - **架构理解**:Tomcat是一个免费开源的...
笔记模块:提供多种笔记方式,如文字、图片、音频等,支持用户自定义笔记模板,方便考生整理知识点。 错题本模块:记录用户的做题记录和错题情况,支持针对性的错题练习和复习。 计划模块:根据用户的考试时间和...
对象的新生代分配通常是在Eden区中进行的,如果Eden区没有足够空间时,虚拟机会触发一次Minor GC,新生对象会被复制到SurvivorFrom区域,并将年龄设置为1。Survivor区有两个,一个称为From区,另一个称为To区,垃圾...
【标题】"2021 Java架构进阶 Nginx企业级教程【视频课程】下载整理.zip" 提供了一个深入学习Java架构和Nginx服务器的综合资源集合。这个课程可能包含了从基础到高级的Java编程知识,以及如何在企业环境中有效部署和...
- **服务切换**:当某个微服务出现问题时,可即时切换至备用服务,确保服务连续性。 - **个性化体验**:通过个性化推荐等功能提升用户体验,例如根据用户的阅读习惯和偏好推荐图书资源。 #### 二、纸本采访 **(二...