对象的生成由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 ();
}
}
分享到:
相关推荐
参照阿里druid个人整理druid-spring-boot-starter可运行demo,细节方面自己完善
spring源码缺失jar。spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.jar
spring-cloud-config + spring-cloud-bus-amqp实现分布式集群配置动态更新,可更新实例对象,包含源码包+Rabbitmq安装包和安装说明
spring-cloud-eureka:eureka server单机、双机、集群示例 eureka-producer-consumer:利用eureka实现服务提供与调用示例 spring-cloud-hystrix:Hystrix熔断的使用示例 hystrix-dashboard-turbine:熔断监控Hystrix...
所以博主自己开发了一个elastic job 的spring boot starter自动装载模块;目前 该starter已经在公司多个项目生产环境运行。研发只需关注实现job和在application.yml增 加相应配置即可。 模块运行环境: 1.JDK...
spring-aop-4.1.6.RELEASE.jar spring-aspects-4.1.6.RELEASE.jar spring-beans-4.1.6.RELEASE.jar spring-context-4.1.6.RELEASE.jar spring-context-support-4.1.6.RELEASE.jar spring-core-4.1.6.RELEASE.jar ...
commons-pool2-2.3.jar,jedis-2.8.0.jar,spring-data-redis-1.6.0.RELEASE.jar,spring-session-1.1.1.RELEASE.jar,Spring-data-redis(Version 1.6.0.RC1)中文版.pdf
spring-osgi-1.2.0-rc1-with-dependencies.zip
Spring-data-redis 1.7.6 & source源码
spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-3.2.4.RELEASE.jar spring-webmvc-...
redis-service_pubsub.rar。 springMVC集成spring-data-redis实现发布订阅。
spring-core-5.1.8.RELEASE.jar //Spring的核心工具类,其它jar包是建立这个包基础上的,都要用到这个包中的类。 spring-beans-5.1.8.RELEASE.jar //配置、创建、管理Bean,负责Ioc、DI spring-context-5.1.8....
所有的 spring-boot-starter 都有约定俗成的默认配置,但允许我们调整这些配置以改变默认的配置行为,即“约定优先于配置”。...资料是spring-boot-starter 常用模块进行详细内容的思维导图,整理好的,望采纳。
spring data jpa的包。spring-data-commons-1.8.0.RELEASE.jar
2018-02-08从git_hub上拉取的Spring源码打成的jar,构建Spring-beans5.0以上源码所缺失的两个jar包spring-cglib-repack-3.2.6.jar,spring-objenesis-repack-2.6.jar
spring-framework-2.0-with-dependencies.zip spring-framework-2.0-with-dependencies.zip spring-framework-2.0-with-dependencies.zip spring-framework-2.0-with-dependencies.zip spring-framework-2.0-with-...
spring-context-support-4.0.0.M2.jar 需要用到的可以下载
spring-framework-3.1.2.RELEASE主要jar包,由于spring官网只提供3.2及以上版本,所以手动整理了一份3.1.2版本的,供日后使用
spring-data-redis-1.6.2.RELEASE.jar,官网文档,免费提供,亲测可用
它是一个基于IOC和AOP的构架多层j2ee系统的框架,但它不强迫你必须在每一层 中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了很优雅的MVC,对不同的数据访问技术提供了...