关于简单java类中的依赖注入原理
请通过简单的java类向我展示一个依赖注入原理的小例子,虽然我已经看透了spring,但是如果我需要用简单的java类术语来解释它,那么您可以通过一个简单的例子向我展示它吗。提前感谢。本文有一个使用注释的非常好的基本java示例 这里通过简单的Java示例非常清楚地介绍了DI的基础知识关于简单java类中的依赖注入原理,java,Java,请通过简单的java类向我展示一个依赖注入原理的小例子,虽然我已经看透了spring,但是如果我需要用简单的java类术语来解释它,那么您可以通过一个简单的例子向我展示它吗。提前感谢。本文有一个使用注释的非常好的基本java示例 这里通过简单的Java示例非常清楚地介绍了DI的基础知识 使用依赖项注入时,依赖容器注入对象依赖项,而不是在执行过程中自己创建依赖项。例如: 如果不使用依赖项注入,我将不得不编写如下内容: public class ATMTransferService {
使用依赖项注入时,依赖容器注入对象依赖项,而不是在执行过程中自己创建依赖项。例如: 如果不使用依赖项注入,我将不得不编写如下内容:
public class ATMTransferService {
private AccountDAO accountDAO;
public void transfer(Account from, Account to){
AccountDAO accountDAO = new AccountDAO();
...Code that transfers money from one account to another and saves it...
accountDAO.store();
}
请注意,我必须自己实例化accountDAO,获取依赖项的责任由我自己承担
通过使用spring或其他允许DI的框架,我将通过编写以下内容将责任转移到容器:
<bean id="ATMTransfer" class="com.example.ATMTransferService" >
<property name="accountDAO" ref="AccDAO" />
</bean>
<bean id="AccDAO" class="com.model.AccountDAO">
<property name="sessionFactory" ref="sessFac"
</bean>
<bean id="sessFac" class="..."
//Dependencies required for the cration fo session factory.
</bean>
在本例中,我使用了AccountDAO类,但它依赖于SessionFactory。您还可以使用预定义的构造函数,而不是通过在xml配置中指定默认构造函数来使用它
我希望我没有把它简化太多,一旦依赖注入的好处大于此,您就可以通过修改xml配置来交换实现类。一旦从业务类中删除依赖项创建代码,您还可以获得更干净的代码。这确实是促进面向接口编程的一种很好的方式。无论是依赖注入还是控制反转,都没有听说过依赖反转yet@EranMedan..yeah我已经编辑了它,它是依赖注入,有一个概念依赖反转". . 不过,这和DI或IoC不一样。@ToddMurray谢谢,我每天都学到一些新的东西…我在寻找简单的java类术语本身。。!!这两个链接都有最基本的Java类示例,不知道您的意思是什么?如果我要粘贴整篇文章,我不喜欢复制粘贴一篇好文章的想法。请解释一下你遗漏了什么?
public void transfer(Account from, Account to){
...Code that transfers money from one account to another and saves it...
accountDAO.store();
}