C#有哪些有名的依赖注入的框架

发布于2022-01-13 13:40:15
8个回答
admin
网友回答2022-01-13
主流的有:Castle Windsor、微软企业库中的Unity、Spring.NET、StructureMap、Ninject等等。
admin
网友回答2022-01-13
Spring DI的好处:在容器初始化的时候,会创建各个Object,利用DI特性,就可以自动的给创建的Object添加属性值。你可以看到Sping DI 贯穿了Spring框架的各个地方。 如果不使用接口,就如你说的,代码不需要修改就实现不了,这是不使用Interface的坏处。此外Spring AOP就用到了Interface,如果不使用Interface,那么Spring还可以通过CGLIB来实现AOP,这是Spring 在没有使用Interface情况下的优势。
admin
网友回答2022-01-13
依赖注入就是通过配置文件解决代码问题
bean id= class=
property name=message value=hello/
/bean
admin
网友回答2022-01-13
依赖注入(Dependency Injection):在运行期间,有外部容器动态地将依赖对象注入到组件中(构造方法和set方法)
好处:
1、降低组件之间的耦合度,实现软件各层之间的解耦。
2、可以使容器提供众多服务如事务管理消息服务处理等等。
3、容器提供单例模式支持,开发人员不需要自己编写实现代码。
4、容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。
admin
网友回答2022-01-13
Type1 接口注入

我们常常借助接口来将调用者与实现者分离。如:

public class ClassA {
private InterfaceB clzB;
public init() {
Ojbect obj =
Class.forName(Config.BImplementation).newInstance();
clzB = (InterfaceB)obj;
}
……
}

上面的代码中,ClassA依赖于InterfaceB的实现,如何获得InterfaceB实现类的实例?传统的方法是在代码中创建InterfaceB实现类的实例,并将起赋予clzB。

而这样一来,ClassA在编译期即依赖于InterfaceB的实现。为了将调用者与实现者在编译期分离,于是有了上面的代码,我们根据预先在配置文件中设定的实现类的类名,动态加载实现类,并通过InterfaceB强制转型后为ClassA所用。

这就是接口注入的一个最原始的雏形。

而对于一个Type1型IOC容器而言,加载接口实现并创建其实例的工作由容器完成,如J2EE开发中常用的Context.lookup(ServletContext.getXXX),都是Type1型IOC的表现形式。

Apache Avalon是一个典型的Type1型IOC容器。

Type2构造子注入

构造子注入,即通过构造函数完成依赖关系的设定,如:

public class DIByConstructor {
private final DataSource dataSource;
private final String message;
public DIByConstructor(DataSource ds, String msg) {
this.dataSource = ds;
this.message = msg;
}
……
}
admin
网友回答2022-01-13
依赖注入(Dependency Injection):在运行期间,有外部容器动态地将依赖对象注入到组件中(构造方法和set方法)。
好处:
1、降低组件之间的耦合度,实现软件各层之间的解耦。
2、可以使容器提供众多服务如事务管理消息服务处理等等。
3、容器提供单例模式支持,开发人员不需要自己编写实现代码。
4、容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。
admin
网友回答2022-01-13
依赖注入是Spring的思想,在使用Spring进行开发时,可以将对象交给spring进行管理,在初始化时spring创建一批对象,当你需要用的时候只要从spring的容器中获取对象,而不用自己去new,当然在对象创建的时候可以注入另一个对象。比如A,B两个对象都由spring管理,A中持有对B的引用,那么spring在生成A对象的时候就已经吧B对象的一个实例给到A了,当你在A中用到B的时候直接使用就可以了。
admin
网友回答2022-01-13
简单点讲就是:A a = new A();B b = new B();不用依赖注入的话,你A要用B的的话就得new一个,有依赖注入的话,spring帮你注入,不用 自己创建了,代码多的话就体现出它的好处了,你很多地方都自己new的话,代码耦合度太大

回到
顶部