Guice is a lightweight Java dependency injection framework that allows developers to declare dependencies through annotations rather than through manual wiring code. With Guice, classes declare their dependencies through constructor injection using the @Inject annotation. Modules are implemented to map interfaces to implementations, specifying scopes. At runtime, Guice handles satisfying all declared dependencies through its generated injector without additional factory code. This reduces boilerplate and makes dependencies explicit and easy to manage.