用小说的形式讲解Spring(1) —— 为什么需要依赖注入

本文发布于专栏Effective Java,如果您觉得看完之后对你有所帮助,欢迎订阅本专栏,也欢迎您将本专栏分享给您身边的工程师同学。(为什么每次都等上了首页才想起来要加这句话……

大雄的练级之路:

  • 第一级:为什么需要依赖注入
  • 第二级:注入方式哪家强
  • 第三级:配置方式如何选
  • 第四级:Spring Boot - NoXml Web Application

本集概要:

  • 使用依赖注入前,代码是什么样子,有什么缺点?
  • 依赖注入是什么?为什么要使用依赖注入?
  • Spring如何使用xml配置的方式进行依赖注入?

大雄是一个刚踏入社会的95后,热爱编程的他,在毕业之后进入了一家互联网公司,负责公司内一个电商项目的开发工作。
为了让大雄更快的成长,公司安排了哆啦作为大雄的导师。

春风得意

在哆啦的指导下,大雄很快对这个项目的代码有了大致的了解,于是哆啦准备给大雄安排点任务。

“大雄,我们这项目现在缺少日志打印,万一到时上线后发现bug了,很难定位。你看看有什么办法可以把一些必要的信息打印到日志文件中。”
“没问题!”大雄爽快地答应了。

大雄以前在学校时,经常上网找各种资源,于是很快就锁定了一个叫PerfectLogger的工具。“资料很完善,很多大神都推荐它,嗯,就用它了”。

大雄看了一下PerfectLogger的官方文档,发现里面提供了很多种日志打印功能,有打印到文件的,有打印到控制台的,还有打印到远程服务器上的,这些类都实现了一个叫ILogger的接口:

  • ILogger
    • FileLogger
    • ConsoleLogger
    • ServerLogger

“哆啦说要打印到文件,那就用FileLogger吧!”
于是,大雄先在支付接口的代码中,加入了日志打印(本文使用的代码,可以到 SpringNovel 下载):

public class PaymentAction {
   

    private ILogger logger = new FileLogger();

    public void pay(BigDecimal payValue) {
        logger.log("pay begin, payValue is " + payValue);

        // do otherthing
        // ...

        logger.log("pay end");
    }
}

接着,大雄又在登录

你可能感兴趣的:(Spring,Effective,Java,spring,依赖注入,控制反转)