Spring中基于xml的IOC解耦

简介: Spring中基于xml的IOC解耦

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站点击跳转浏览。


IOC是什么


控制反转,顾名思义就是控制权发生反转,例如


IUserService service = new UserService();
 IUserService service= (IUserService) BeanFactory.getBean("UserService");


上面那一段控制权是new,就是完全自主控制引用那个dao,下面那个是把控制权交给BeanFactory,由BeanFactory通过后面的字符串配置。这种控制权的转移就叫控制反转。


IOC能做什么


削减计算机程序的耦合(解除我们代码中的依赖关系)。并且spring中的ioc只能解决程序之间的依赖关系。其他的都做不了


Spring中基于xml的IOC解耦



spring context这个依赖里面其实就是Map容器里面放着Bean对象

然后我们打开之前收藏的spring fromwork



然后在Core里面搜索xmlns第一就是把头复制下来


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

比如我们要解决Spring中使用工厂模式解耦详解这个里面service层和dao层的耦合,我们接下来的步骤是


第一步在Beans里面配置Bean


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--把对象的创建交给spring进行管理-->
    <!--配置唯一标记和全限定类名-->
        <bean id="userService" class="Service.IMPL.UserService"></bean>
        <bean id="userDao" class="Dao.IMPL.UserDao"></bean>
</beans>

第二步就是读取配置文件,通过id来获取Bean


package ui;
import Service.IUserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
 * 模拟一个表现层,用于调用业务层
 */
public class Client {
    public static void main(String[] args) {
        //1.使用 ApplicationContext 接口,就是在获取 spring 容器
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        //2.根据 bean 的 id 获取对象
        IUserService service = (IUserService) context.getBean("userService");
        service.save();
    }
}

结果运行通过


总结步骤


基于xml的IOC解耦的步骤是

1,创建配置文件,把要配置的beans交给Spring管理

2,使用一个对象去得到那个核心容器。这个容器是spring里面的,相当于工厂模式里面的Map容器,我们不用创建。

3,再根据配置文件的id获取bean对象。


新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!

相关文章
|
1月前
|
XML Java 数据格式
Spring IoC容器初始化过程(xml形式)
Spring IoC容器初始化过程(xml形式)
36 0
|
1月前
|
Java Spring
Spring5深入浅出篇:Spring中ioc(控制反转)与DI(依赖注入)
Spring5深入浅出篇:Spring中ioc(控制反转)与DI(依赖注入)
|
3天前
|
Java 数据库连接 API
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
23 0
|
11天前
|
XML 缓存 Java
Spring IoC原理解读
Spring IoC原理解读
16 0
|
11天前
|
Java 测试技术 开发者
探究 Spring Boot 的核心:IOC 和 AOP
Spring Boot 作为一种简化 Spring 应用开发的工具,继承了 Spring 框架的核心概念,其中最重要的是控制反转(IOC)和面向切面编程(AOP)。它们是 Spring 框架的基础,同时也深深植根于 Spring Boot 中。本文将讨论 IOC 和 AOP 的概念以及它们在 Spring Boot 中的应用。
27 4
|
1月前
|
XML 运维 Java
spring事务(3)基于XML的声明式事务
spring事务(3)基于XML的声明式事务
14 0
|
1月前
|
缓存 Java uml
SpringBoot2 | Spring IOC 流程中核心扩展接口的12个扩展点源码分析(十一)
SpringBoot2 | Spring IOC 流程中核心扩展接口的12个扩展点源码分析(十一)
28 0
|
2月前
|
存储 设计模式 Java
|
2月前
|
druid Java 数据库连接
从入门到精通:掌握Spring IOC/DI配置管理第三方bean的技巧
从入门到精通:掌握Spring IOC/DI配置管理第三方bean的技巧
|
4月前
|
XML Java 数据格式
Spring高手之路16——解析XML配置映射为BeanDefinition的源码
本文提供了深入Spring源码的透彻解析,从XML配置文件的加载开始,步入了Spring的内部世界。通过细致剖析setConfigLocations、refresh和loadBeanDefinitions等方法的实现,揭示了Bean从定义到注册的整个生命周期。
52 1
Spring高手之路16——解析XML配置映射为BeanDefinition的源码

相关产品

  • 云迁移中心