比较个性的网站,江苏同邦建设有限公司网站,聊城网站建设培训班,宁波网站建站推广spring依赖注入介绍#xff1a; 在设计良好的Java应用程序中#xff0c;这些类应尽可能独立。 这样的设计提高了组件的可重用性。 它还使对各个组件进行单元测试变得更加容易。 依赖注入的概念促进了Java对象之间的松散耦合。 在本教程中#xff0c;我们将讨论Spring框架中… spring依赖注入 介绍 在设计良好的Java应用程序中这些类应尽可能独立。 这样的设计提高了组件的可重用性。 它还使对各个组件进行单元测试变得更加容易。 依赖注入的概念促进了Java对象之间的松散耦合。 在本教程中我们将讨论Spring框架中的依赖项注入。 控制反转IoC 控制反转是一种软件工程原理将控制应用程序流的责任委托给框架。 为了使之成为可能 框架使用抽象并依赖于运行时生成的对象图。 使用IoC原理有几个优点 使任务实现与执行分离 模块是可插拔的并且可以轻松替换为同等模块 简化了模块化测试 通过使用策略设计模式服务定位器模式或依赖注入我们可以实现控制反转 。 依赖注入 依赖注入是允许我们实现控制反转的设计模式之一。 在传统的编程风格中我们将类编写为 public class Person {private Address address;public Person() {this.address new Address();}...
} 使用依赖项注入时我们不会自己创建对象而是注入它们。 然后我们的Person类将类似于 public class Person {private Address address;public Person(Address address) {this.address address;}...
}Spring的依赖注入 Spring提供了一个IoC容器该容器负责实例化配置和管理Spring bean的生命周期。 在Spring中任何POJO都称为Spring bean。 Spring ApplicationContext接口代表其IoC容器我们有几个可用的实现类。 其中一些包括ClassPathXmlApplicationContext FileSystemXmlApplicationContext和WebApplicationContext 。 让我们使用ClassPathXmlApplicationContext实例化Spring容器 ApplicationContext appContext new ClassPathXmlApplicationContext(applicationContext.xml); 在这里 applicationContext.xml是保存在运行时组装bean所需的元数据的文件。 Spring支持三种类型的依赖项注入 1.基于构造函数的注入 在基于构造函数的注入中Spring将使用匹配的构造函数来解析和注入依赖性。 我们可以在applicationContext.xml中配置bean bean idaddress classcom.programmergirl.domain.Address/bean idperson classcom.programmergirl.domain.Personconstructor-arg refaddress/
/bean 或者我们可以在我们的applicationContext.xml中启用component-scan / context:component-scan base-packagecom.programmergirl.domain / 启用组件扫描后我们可以使用注释进行Spring配置。 我们的课程如下 package com.programmergirl.domain;
Component
public class Person {private Address address;Autowiredpublic Person(Address address) {this.address address;}
}package com.programmergirl.domain;
Component
public class Address {...
} 默认情况下Spring按其类型对bean进行接线。 如果有多个相同类型的bean我们可以使用Qualifier批注按其名称引用bean Component
public class Person {private Address address;AutowiredQualifier(address1)public void setAddress(Address address) {this.address address;}
} 假设我们有两个Address Bean – address1和address2 我们的address1 Bean将在依赖关系解析时注入Person类。 2.二传手注射 基于setter的依赖项注入是通过使用no-arg构造函数或no-argument静态工厂实例化bean之后通过在bean上使用setter方法实现的。 我们可以使用XML将其配置为 bean idaddress classcom.programmergirl.domain.Address/bean idperson classcom.programmergirl.domain.Personproperty nameaddress refaddress/
/bean 另一方面使用注释时我们将拥有 Component
public class Person {private Address address;...Autowiredpublic void setAddress(Address address) {this.address address;}}3.基于属性的注入 我们还可以使用类的字段或属性注入依赖项。 为此我们可以简单地在字段上使用Autowired批注 Component
public class Person {Autowiredprivate Address address;...
} 考虑到我们正在使用基于注释的配置。 值得注意的要点 根据Spring文档 我们应该使用构造函数注入来强制依赖 基于Setter的注入应该用于本质上是可选的依赖项 Spring使用反射来注入字段注入的依赖项。 因此基于现场的注入是一种成本更高的方法我们应该避免使用它 结论 在这篇快速文章中我们讨论了什么是依赖注入。 我们还讨论了Spring框架中依赖项注入的类型。 翻译自: https://www.javacodegeeks.com/2019/05/spring-dependency-injection.htmlspring依赖注入