为了账号安全,请及时绑定邮箱和手机立即绑定

Spring如何在Java应用程序中自动实现依赖注入

Spring如何在Java应用程序中自动实现依赖注入

哆啦的时光机 2019-03-13 18:19:12
最近开发一个Java应用程序,希望能使用Spring来实现依赖注入。在Web应用程序中,可以在web.xml文件中配置listener来自动实现注入。在Java Application中,可以通过如下的方式来加载Spring:ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");Hello hello = ctx.getBeans("hello");但这样的一个问题是,在每次使用一个bean时,都需要显示调用一次getBeans。不知有什么好的方法,能够让Spring自动加载对象,而不需要显式调用getBeans?更多 0
查看完整描述

5 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

照着你的例子再往下写两行。


public class Main{


  public static void main(String[] args){

    ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");

    Hello hello = ctx.getBeans("hello");

    hello.say();

  }

}


class Hello {

  @Autowired

  private DbUtil db;


  public void say(){

    System.out.println(db.getWelcomeInfo());

  }

}


web项目里最初处理请求的那一层还是需要通过getBeans()生成的。只不过这个步骤是 tomcat/strtus/springMVC做的。

Spring 会为被他管理的类实现自动注入,然而你程序启动的main类并不是由 Spring 管理生成的。


查看完整回答
反对 回复 2019-04-24
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

你需要Autowired


查看完整回答
反对 回复 2019-04-24
?
慕斯王

TA贡献1864条经验 获得超2个赞

使用Spring的依赖注入你首先要从Spring中获取bean,这样才能保证bean的依赖已经注入了。你自己new一个对象出来,Spring怎么可能帮你注入呢?

你可以自己把getBeans方法封装一下


查看完整回答
反对 回复 2019-04-24
?
侃侃无极

TA贡献2051条经验 获得超10个赞

你要把你的HELLO当成成员变量,然后再去@autowired 或者@Resourse


查看完整回答
反对 回复 2019-04-24
  • 5 回答
  • 0 关注
  • 600 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号