大宗商品交易平台软件,专业黑帽seo,网站里的动效怎么做,wordpress 内容 权限IOC思想
IoC#xff08; Inversion of Control#xff0c;控制反转#xff09; 不是一门具体技术#xff0c;而是一种设计思想#xff0c; 是一种软件设计原则#xff0c;它将应用程序的控制权#xff08;Bean的创建和依赖关系#xff09;从应用程序代码中解耦出来 Inversion of Control控制反转 不是一门具体技术而是一种设计思想 是一种软件设计原则它将应用程序的控制权Bean的创建和依赖关系从应用程序代码中解耦出来通过外部容器来管理和协调对象的创建、依赖注入和生命周期管理这种反转控制的方式使得应用程序更加灵活、可扩展和易于维护。 了解DI
Spring DIDependency Injection依赖注入是Spring框架中的一个重要特性它实现了控制反转IoC的核心原则IOC 是一种控制反转的思想 而 DI 是对IoC的一种具体实现 它将对象的依赖关系由容器负责管理和注入而不是由对象自身负责创建和管理依赖。 DI的三种实现方式 构造函数注入Constructor Injection通过在类的构造函数中声明依赖参数容器在创建对象时自动将相应的依赖注入。
属性注入Setter Injection通过在类中定义相应的属性并提供相应的setter方法容器在创建对象后通过调用setter方法将依赖注入到对象中。
接口注入Interface Injection通过在类中定义接口并在接口中定义注入方法容器在创建对象后通过调用接口方法将依赖注入到对象中。 DI的作用和优势
1. 降低耦合度DI通过将对象之间的依赖关系从代码中移除实现了对象之间的解耦。对象不再直接创建和管理依赖而是通过外部的容器来注入依赖。这样当需要修改或替换依赖时只需调整容器的配置而不需要修改对象的代码。
2. 促进代码复用DI鼓励使用接口和抽象类来定义对象之间的依赖关系而不是具体的实现类。这样可以提高代码的灵活性和可复用性。通过注入不同的实现类可以轻松地更换对象的行为实现不同的业务逻辑。
3. 简化代码的维护和扩展当需要修改或扩展功能时只需修改容器的配置而不需要修改对象的代码避免了代码的膨胀和重复提高了代码的可维护性和可扩展性。 Spring IoC容器
Spring IoC容器是 IoC思想的具体组件实现 ,是一个负责创建和管理对象的容器。IoC容器中管理的组件叫做 bean对象 它通过读取配置信息或注解来了解对象之间的依赖关系并在需要时实例化和注入这些对象。spring在创建 bean 之前首先需要创建IoC 容器。 IoC容器的两种实现方式
1. BeanFactory
BeanFactory是Spring内部使用的接口用于实现IOC容器的基本功能它主要面向Spring框架本身的实现和扩展而不是直接提供给开发人员使用。 2. ApplicationContext
ApplicationContext是BeanFactory 的子接口提供了更多高级特性如国际化、事件发布、资源加载等面向 Spring 的使用者几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。
主要实现类创建容器介绍
ConfigurableApplicationContext: 是ApplicationContext接口的子接口它扩展了功能比如refresh() 和 close() 方法让 ApplicationContext 具有启动、关闭和刷新上下文的能力。 ClassPathXmlApplicationContext 通过从类路径中加载XML配置文件来创建和初始化容器的实现类。它是最常用的配置方式之一可以通过在类路径中指定的XML文件来定义Bean和它们之间的依赖关系。
//简单创建
ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml); FileSystemXmlApplicationContext通过从文件系统中加载XML配置文件来创建和初始化容器的实现类。它适用于在文件系统中指定XML文件的场景可以通过指定文件路径来定义Bean和它们之间的依赖关系。
ApplicationContext context new FileSystemXmlApplicationContext(path/applicationContext.xml); AnnotationConfigApplicationContext 通过扫描指定的包路径自动注册和初始化Bean的实现类它是基于注解的配置方式通过在Bean类上使用注解来标识Bean的作用域、依赖关系等信息而无需使用XML配置文件。
ApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class); XmlWebApplicationContext用于Web应用程序的实现类它可以加载并解析位于Web应用程序的Web根目录下的XML配置文件基于 Web 环境创建 IOC 容器对象并将对象引入存入 ServletContext 域中。
XmlWebApplicationContext context new XmlWebApplicationContext();
context.setConfigLocation(/WEB-INF/applicationContext.xml);