Google Guice Spring 之外的依赖注入框架

偶然看阿波罗的源码看到有

ApolloInjector.getInstance(ConfigManager.class);

 private static Injector getInjector() {
    if (s_injector == null) {
      synchronized (lock) {
        if (s_injector == null) {
          try {
            s_injector = ServiceBootstrap.loadFirst(Injector.class);
          } catch (Throwable ex) {
            ApolloConfigException exception = new ApolloConfigException("Unable to initialize Apollo Injector!", ex);
            Tracer.logError(exception);
            throw exception;
          }
        }
      }
    }

    return s_injector;
  }

兴趣来了了解了下,这是干啥的。原来也是一个依赖注入的框架。

Github 主页:https://github.com/google/guice
API:http://google.github.io/guice/api-docs/4.0/javadoc/

理论知识,可自行百度。看了介绍,按我们程序员的传统总要写个helloWord吧。废话不多说,上demo

添加 Maven 的依赖:

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.0</version>
</dependency>
/**
 * @author one.xu
 * @version v1.0
 * @description
 * @date 2019/5/30 15:43
 */
public class MyDao {
    public String hello(String name) {
        return "hello " + name;
    }
}
/**
 * @author one.xu
 * @version v1.0
 * @description
 * @date 2019/5/30 16:02
 */
public class MyService {
    @Inject
    private MyDao myDao;

    public String hello(String name) {
        return myDao.hello(name);
    }
}
/**
 * @author one.xu
 * @version v1.0
 * @description
 * @date 2019/5/30 15:51
 */
public class BaseModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(MyService.class).toInstance(new MyService());
    }

    @Provides
    @Singleton
    @Named("myDao")
    public MyDao myDao() {
        return new MyDao();
    }
}
public class MyTest {


    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new BaseModule());

        MyService myService = injector.getInstance(MyService.class);

        System.out.println(myService.hello("one"));
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值