<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.2.3</version>
</dependency>
public class UserService {
private final UserRepository userRepository;
@Inject
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
// ...
}
public class MyModule extends AbstractModule {
@Override
public void configure() {
bind(UserRepository.class).to(UserRepositoryImpl.class);
}
}
public class Main {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new MyModule());
UserService userService = injector.getInstance(UserService.class);
// ...
}
}