Guice 快速入门

Guice 是谷歌推出的轻量级依赖注入框架,本文详细介绍了如何引入 Guice 并进行基本使用,包括依赖绑定、作用域配置以及Servlet集成。通过实例展示了Guice的@Provides方法、Provider绑定和JSR-330标准的支持,帮助开发者更好地理解和运用Guice。
摘要由CSDN通过智能技术生成

Guice是谷歌推出的一个轻量级依赖注入框架,帮助我们解决Java项目中的依赖注入问题。如果使用过Spring的话,会了解到依赖注入是个非常方便的功能。不过假如只想在项目中使用依赖注入,那么引入Spring未免大材小用了。这时候我们可以考虑使用Guice。本文参考了Guice官方文档,详细信息可以直接查看Guice文档

基本使用

引入依赖

如果使用Maven的话,添加下面的依赖项。

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.1.0</version>
</dependency>

如果使用Gradle的话,添加下面的依赖项。

compile group: 'com.google.inject', name: 'guice', version: '4.1.0'

当构建工具解决完项目的依赖之后,我们就可以开始使用Guice了。

项目骨架

首先我们来假设一个简单的项目框架。首先我们需要一个业务接口,简单的包含一个方法用于执行业务逻辑。它的实现也非常简单。

public interface UserService {
   
    void process();
}

public class UserServiceImpl implements UserService {
   
    @Override
    public void process() {
        System.out.println("我需要做一些业务逻辑");
    }
}

然后我们需要一个日志接口,它和它的实现也非常简单。

public interface LogService {
   
    void log(String msg);
}

public class LogServiceImpl implements LogService {
   
    @Override
    public void log(String msg) {
        System.out.println("------LOG:" + msg);
    }
}

最后是一个系统接口和相应的实现。在实现中我们使用了业务接口和日志接口处理业务逻辑和打印日志信息。

public interface Application {
   
    void work();
}

public class MyApp implements Application {
   
    private UserService userService;
    private LogService logService;

    @Inject
    public MyApp(UserService userService, LogService logService) {
        this.userService = userService;
        this.logService = logService;
    }

    @Override
    public void work() {
        userService.process();
        logService.log("程序正常运行");
    }
}

简单的依赖注入

首先来配置依赖关系。我们继承AbstractModule类,并重写configure方法即可。在configure方法中,我们可以调用AbstractModule类提供的一些方法来配置依赖关系。最常用的方式就是bind(接口或父类).to(实现类或子类)的方式来设置依赖关系。

public class MyAppModule extends AbstractModule {
   
    @Override
    protected void configure() {
        bind(LogService.class).to(LogServiceImpl.class);
        bind(UserService.class).to(UserServiceImpl.class);
      
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值