Skip to content
Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 6 and above, brought to you by Google.
Java Shell
Branch: master
Clone or download
dimo414 and cpovirk Add factory methods for modules that configure the Binder. This can s…
…ave some boilerplate in certain cases.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=272911062
Latest commit 9b371d3 Oct 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bom bump snapshot version, update README & prior api xml Oct 31, 2018
core Add factory methods for modules that configure the Binder. This can s… Oct 4, 2019
examples/src/example/xml remove unnecessary explicit type parameters now that we are on java7 Mar 21, 2017
extensions Tidy up some usages of lambdas and other Java 8 features, and a few o… Sep 13, 2019
jdk8-tests bump snapshot version, update README & prior api xml Oct 31, 2018
latest-api-diffs bump snapshot version, update README & prior api xml Oct 31, 2018
lib Some more infrastructure changes to work w/ java8 code. Namely, neute… Apr 7, 2019
util Some more infrastructure changes to work w/ java8 code. Namely, neute… Apr 7, 2019
.gitattributes Add a .gitattributes file to force consistent line endings in text fi… Oct 20, 2014
.gitignore ignore everything in extensions' build dir Jan 16, 2016
.travis.yml switch from oraclejdk11 to openjdk11 because of https://travis-ci.com… Jun 28, 2019
CONTRIBUTING.md Fix the outdated link to google's java style guide Jan 25, 2018
COPYING Initial checkin. Aug 25, 2006
README.md Update broken link/picture to Jolt Award Feb 12, 2019
build.properties merge multibindings into the 'core' of guice. Aug 29, 2016
build.xml Some more infrastructure changes to work w/ java8 code. Namely, neute… Apr 7, 2019
common.xml Some more infrastructure changes to work w/ java8 code. Namely, neute… Apr 7, 2019
pom.xml rm hack around cglib bug & update to version that has the fix. Aug 15, 2019

README.md

Guice

Latest release: 4.2.2

Documentation: User Guide, 4.2.2 javadocs, Latest javadocs
Continuous Integration: Build Status
Mailing Lists: User Mailing List
License: Apache 2.0

Put simply, Guice alleviates the need for factories and the use of new in your Java code. Think of Guice's @Inject as the new new. You will still need to write factories in some cases, but your code will not depend directly on them. Your code will be easier to change, unit test and reuse in other contexts.

Guice embraces Java's type safe nature, especially when it comes to features introduced in Java 5 such as generics and annotations. You might think of Guice as filling in missing features for core Java. Ideally, the language itself would provide most of the same features, but until such a language comes along, we have Guice.

Guice helps you design better APIs, and the Guice API itself sets a good example. Guice is not a kitchen sink. We justify each feature with at least three use cases. When in doubt, we leave it out. We build general functionality which enables you to extend Guice rather than adding every feature to the core framework.

Guice aims to make development and debugging easier and faster, not harder and slower. In that vein, Guice steers clear of surprises and magic. You should be able to understand code with or without tools, though tools can make things even easier. When errors do occur, Guice goes the extra mile to generate helpful messages.

For an introduction to Guice and a comparison to new and the factory pattern, see Bob Lee's video presentation. After that, check out our user's guide.

We've been running Guice in mission critical applications since 2006, and now you can, too. We hope you enjoy it as much as we do.

jolt award

You can’t perform that action at this time.