25 captures
05 Jul 2017 - 11 Mar 2022
May
JUN
Jul
02
2018
2019
2020
success
fail
About this capture
COLLECTED BY
Collection:
Wikipedia Eventstream
TIMESTAMPS
The Wayback Machine - https://web.archive.org/web/20190602150937/https://developers.googleblog.com/search/label/guice
Blog of our latest news, updates, and stories for developers
Guice Deuce
Tuesday, May 19, 2009
Two years ago, Bob Lee and Kevin Bourrillion
open sourced Google Guice 1.0
, a lightweight Java dependency injection framework. Guice takes the pain out of writing and maintaining Java applications big and small. Guice has gained a great deal of traction both inside and outside of Google. Almost every Java-based application at Google is also a Guice-based application; the list includes AdWords, Google Docs, Gmail, and even YouTube. Open source users run Guice in everything from file-sharing software to ATMs. They've even written
two
books
about
this Jolt-award-winning framework
.
Today, we're releasing
Guice 2
. The minimally-sized API extensions introduced by Guice 2 will have a majorly positive impact on the size and maintainability of your code. We closely scrutinized each addition, carefully balancing maintainability and flexibility. Here are a few of my favorite new features:
Provider methods
eliminate the boilerplate of manually-constructed dependencies.
Module overrides
allow you to tweak a production module for a unit test or QA deployment.
Private modules
enable compartmentalized configuration, simplifying module reuse.
Guice works with Java SE, Java EE,
Google App Engine
,
Android
, and even
Google Web Toolkit
(via
GIN
).
References
Guice 2.0 Release Notes
Downloads
User's Guide
Javadoc
By Jesse Wilson, Google Developer Team
@javax.inject.Inject
Tuesday, May 5, 2009
Five years ago,
Spring 1.0
brought Java
dependency injection
into the mainstream. Three years later,
Google Guice 1.0
introduced annotation-based dependency injection and made Java programming a little easier. Since then, developers have had to choose between a) writing external configuration or b) importing vendor-specific annotations.
Today, we hope to give developers the best of both worlds.
Google Guice and SpringSource have partnered to standardize a proven, non-controversial set of annotations that make injectable classes
portable
across frameworks.
At the moment, the set of specified annotations consists of:
@Inject
- Identifies injectable constructors, methods, and fields
@Qualifier
- Identifies qualifier annotations
@Scope
- Identifies scope annotations
@Named
- String-based qualifier
@Singleton
- Identifies a type that the injector only instantiates once
One additional interface is specified for use in conjunction with these annotations:
Provider<T>
- Provides instances of a type T. For any type T that can be injected, you can also inject
Provider<T>
.
You can check out an early draft of the
specification
. We deliberately left external dependency configuration out, so as not to quash ongoing innovation. We haven't formally submitted this standard to the JCP yet, but we plan to do so shortly. Standards wonks can read a draft of our
JSR proposal
.
The expert group will be inclusive and will work in the open. For example, our mailing list is publicly readable, and we host the specification at
Google Code
. Several industry players have already expressed interest in supporting this effort.
Contact us
if you'd like to help out.
Interested in learning more about dependency injection? Don't miss Jesse and Dhanji's
Big Modular Java with Guice
session at Google I/O!
By
Bob Lee
, Google Guice founder
Open Source Developers @ Google Speaker Series: Raph Levien
Friday, June 15, 2007
By Leslie Hawthorn, Open Source Team
On Monday, June 25th, Raph Levien will join us to present
Lessons from Advogato
. Raph,
Advogato's
founder, will give us insights into attack-resistant trust metrics and the other mechanisms used to build the website's user community.
Like all sessions of the Open Source Developers @ Google Speaker Series, Raph's presentation will be open to the public. Doors open at 6:30 PM at our
Mountain View campus
; guests should plan to sign in at Building 43 reception upon arrival. Refreshments will be served and all are welcome and encouraged to attend. Raph's presentation will also be taped and published along with all of the public Google Tech Talks.
For those of you who were unable to attend our last session, you can watch the video of Bob Lee's recent presentation
Java on Guice: Dependency Injection the Java Way
.
Open Source Developers @ Google Speaker Series: Bob Lee
Friday, June 1, 2007
By Leslie Hawthorn, Open Source Team
Bob Lee will be joining us on Tuesday, June 5th, to discuss
Java on Guice: Dependency Injection, the Java Way
.
Guice
, an open-source dependency-injection framework for Java 5, is already in use in several Google projects. Come listen to the framework's creator explain how Guice can help make your applications simpler and easier to test!
As with all sessions of the Open Source Developers @ Google Speaker Series, Bob's presentation will be open to the public. Doors open at 6:30 PM at our
Mountain View campus
; guests should plan to sign in at Building 43 reception upon arrival. Refreshments will be served and all are welcome and encouraged to attend. Bob's presentation will also be taped and published along with all of the public Google Tech Talks.
For those of you who were unable to attend our last session, you can watch the video of Amit Singh's recent presentation on
MacFuse
.
Introducing the Google Developer Podcast
Monday, May 14, 2007
Posted by Dion Almaer, Google Developer Programs
A fair few Googlers enjoy creating podcasts, and a large number choose to participate in the medium as listeners.
I have really enjoyed creating Audible Ajax, as it gives me a way to get close to the community. Not only do I get to meet great people and technologists as I interview them for the show, but the listeners also let me know what they like and want to hear back from me.
The better I've gotten to know Google developers and programmers in the community, the more I've wanted to highlight and share
their contributions.
Dick Wall and Carl Quinn are two Googlers that are part of the
Java Posse podcast
, and we were excited to team up and start communicating. The end result is a new podcast called the Google Developer Podcast.
What will we cover on the Google Developer podcast?
Interviews with Google engineers, discussing areas of their expertise
New features, applications, and APIs that matter to developers
Open source projects that we work on and/or care about at Google
Projects that use our APIs and applications in interesting ways
News and events that we all care about, including the Google Summer of Code.
An interview with Bob Lee, Google Guice developer
As we were brainstorming our first podcast Google Guice was released. Guice is an open source, lightweight, dependency injection framework with an emphasis on tight Java 5 integration and high performance. It has already been put through its paces in production at Google for awhile and it was a great effort on the behalf of the Guice team to share it with the community as a whole.
The Java community noticed. A spark has ignited around the project and the ideas that it represents.
To learn more we contacted Bob Lee and had a conversation about the philosophy behind Guice and how it all works.
We hope you enjoy it.
As with all new endeavors, we are looking to the community to help define it. What can you do?
Download Episode One
Subscribe to the show
Join our Google Group
for the podcast
Email us
with your thoughts and ideas
Thanks to
Google
Blogger
for handling the enclosures for us
The
Podsafe Music Network
for our theme music
Theme Music -
"Google Earth" by Zioneye
Java at Google
Thursday, May 10, 2007
Posted by Chris Schalk, Google Developer Programs
As we mentioned in our post
Gearing up for JavaOne 2007
, Google is proud to be participating in JavaOne again this year!
In order to help JavaOne attendees get up to speed with what Google is doing with Java technology, we put together a
Java developers guide to Google technology
.
Also, feel free to stop by the Google booth and chat with our engineers!
Java™ is a trademark of Sun Microsystems.
Guice, Google's internal Java dependency injection framework, released as open source
Monday, March 12, 2007
Posted by Dion Almaer, Google Developer Programs
Google has been using a blazingly fast, innovative, Java 5-based dependency injection framework in mission critical applications for quite some time.
The project is lead by Bob Lee, and we are pleased to say that we have
released it to the community
as open source software.
Guice
wholly embraces annotations and generics, thereby enabling you to wire together and test objects with less effort than ever before. Annotations finally free you from error-prone, refactoring-adverse string identifiers.
Guice injects constructors, fields and methods (any methods with any number of arguments, not just setters). Guice includes advanced features such as custom scopes, circular dependencies, static member injection, Spring integration, and AOP Alliance method interception, most of which you can ignore until you need it.
Guice already has a community around it, and already powers Struts 2's plugin architecture.
We asked Bob Lee a few questions about the project:
Why was Guice created?
We created Guice hoping to write less code and break up a multi-million line app. We looked at existing solutions, but we saw a lot of doors opened by the new Java 5 features. When I started from scratch I followed a use case driven approach and built a real application. As I wrote I was constantly asking myself "how do I really want to be writing this?".
I value pragmatism and followed Josh Bloch's API design advice, especially, "when in doubt, leave it out."
Finally, we strove most of all for maintainability. Can a new programmer sit down at a million line code base and maintain it? We think type safety is a huge factor here.
Who should use Guice?
Anyone writing Java code. We see Guice as a lighter weight alternative to the factory pattern.
More information:
Guice project on Google Code
Guice users guide
Javadoc Guide documentation
Download Guide
Join the Guice group / mailing list
How it compares, and can cooperate, with Spring
Labels
.app
.dev
#AIY
#devfest18 #devfeststories #gdg #googledevelopers #developers #community
#freeandopen
#GooglePlay #AndroidDevStory #PlayStore #DeveloperConsole #StoreListingExperiments
#growwithgoogle
#io12
#io13
#io14
#io15
#io16
#io17
#io18
#io2012
#io2013
#io2014
+1
20% project
3d
3D face mesh
about.com
accelerator
accessibility
actions
actions on google
actionsongoogle
activity
Administrative APIs
AdMob
adobe
Ads
adsense
advanced
advogato
AdWords
africa
agency program
agpl
AI
AI Principles
AIY
AIY Projects
AIYProjects
ajax
ajax apis
ajax search
ajax search books news apis
all for good
amarok
AMP
AMP Cache
analytics
and Assistant
android
android developer certification
android developers
Android Development
Android Studio
Android Things
android wear
animation
Announcement
announcements
apache
api
API.AI
apis
apis console
apis explorer
apis. charts
app
app design
App dev
App Development
app engine
app indexing
app indexing api
App Invites
apple
Application Development
apps
apps script
AR
ARCore
area 120
artifact management
Artificial Intelligence
asia
assistant
atom publishing protocol
Audio
Augmented images
augmented reality
australia
Auth
authentication
authsub
automatic speech recognition
awards
axsjax
barcodes
beacon
beacons
Belarus
bespin
best practices
beta
bigquery
bitcoin
Blockly
blogger
Bluetooth
book search
books API
bootcamp
Brazil
british english
Brotli
browser
Build Out
building ajax apps
BuildOut
Bulgaria
business
buzz
c++
Cache
caja
caldav
calendar
camino
campfire one
caption
cardboard
CardDAV
cast
Certification
certification award
channel
chinese
chrome
chrome apps
chrome dev summit
chrome devtools
chrome experiment
chrome extensions
chrome os
Chrome OS IO
Chrome OS IO19
chrome web store
chromecast
chromium
chronoscope
cifs
classes
classroom api
client libraries
closure tools
cloud
Cloud anchor
cloud datastore
cloud functions for firebase
Cloud Next
cloud platform
cloud portability
cloud services
cloud sql
cloud storage
Cloud Study Jam
cms
coca cola
CocoaPods
code for educators
code jam
code review
code-in
codeedu
codelabs
coffee with a googler
Colaboratory
collada
color
Colt McAnlis
commerce
community
community connectors
competition
Compilers
compression
compressorhead
computer vision
computing heritage
conferences
contacts api
Containers
contest
contextual gadgets
conversation design
conversations
Coral
Core ML
couchdb
countdown to I/O 2012
courses
CPU
crash course
Crash Reporting
crashlytics
creative commons
cricket
crisis response
Croatia
cryptocurrency
cryptography
css
css3
custom search
custom search api
Czechia
danish linux forum
dart
Data Compression
Data Visualization
database
Databases
Dataset
Datasets
datastore
dataviz
Daydream
deprecation
design
devart
develop
developer
Developer Communities
Developer Culture
developer expert
developer features
Developer Keynote
developer relations
developers
developers. meetup
Development
devfest
devfest developer chrome maps social wave apps
DevFest18
DevFestStories
DFP
dialogflow
discovery service
diversity
django
dns
do-it-yourself
Docker
docs
documentation
documents list api
dojo
domains
doodles
dot net
doubleclick
dreamweaver
Drive
drupal
dynamic links
earn
earth
Ebay
eclipse
eclipsecon
eddystone
Edge TPU
Edge TPU Accelerator
Edge TPU Dev Board
educatio
education
email
EMEA
endpoints
enterprise
entrepreneurs
Estimator
Estimators
estonia
Ethics
Europe
event
events
evolution
execution api
extensions
Fabric
Fairness
fairness in machine learning
faster web
FCM
featured
feeds
finance
fintech
Firebase
Firebase Analytics
Firebase Cloud Messaging
Firebase Dynamic Links
firebug
firefox
firestore
firevox
firstbeta
fitness
flutter
Flutter 1.2
Flutter 1.5
Flutter at IO
Flutter Create
Flutter for desktop
Flutter for web
Flutter Live
flutter release preview 1
flutter release preview 2
Follow Us
font api
Fonts
fosdem
freebsd
freenet
Fridaygram
fusion tables
G Suite
G+
gadgets
Game Developers Conference
games
gaming
gcc
gci
GCP
GDA
gdata
GDC17
GDD
gdd07
gdd08
gdd09
GDD11
GDE
gdg
gdl
gdl weekly
gears
geo
geolocation
geoserver
getpaid
ghop
git
github
GKE
gmail
Gmail APIs
GMTC
gnome
gnome women's summer outreach program
Go
goo.gl
Google
Google AI
Google APIs
google apps
google apps api
google apps for your domain
google apps marketplace
Google AR
google assistant
Google Assistant Bluetooth
Google Assistant IO
Google Assistant IO19
google assistant sdk
Google Brain
google buzz
google cast
google certification
google chart api
google checkout
google chrome
Google Cloud
Google Cloud Messaging
Google Cloud Platform
google cloud storage
google code
google code project hosting
google code search
google code university
google compute engine
Google Coral
google data apis
google data protocol
Google Data Studio
google developer day
google developer days
Google Developer Groups
Google Developer Scholarship
google developers
Google Developers Academy
google developers certification
google developers community groups
Google Developers Groups
Google Developers Live
Google Developers site
Google Developers University Consortium
google docs
Google Docs API
google doctype
google domains
Google Drive
Google Drive SDK
google earth
google fit
Google Fonts
google friend connect
google gadgets
google gears
google grants
Google Groups Settings
google health
Google Home Hub
Google I/O
Google Identity Platform
Google in Asia
google io
Google IOS Android
Google Maps
Google Maps Platform
google mashup editor
Google Noto fonts
google pay
google pay api
google photos
google platform
Google Play
Google Play Developer API
google play services
Google Registry
google scholarships
Google Science Fair
Google sheets
Google Sheets API
Google Slides
Google Slides API
google space
Google Spreadsheets API
google storage
google summer of code
Google tech talk
Google technology
google technoloy user groups
google tv
google visualization api
google wallet
Google Wave
google web elements
google web toolkit
google.org
google+
GoogleAssistant
googlecast
googledevelopers
googleio
googlenew
GooglePlay
googlewebelements googleio
GPE
GPGS C++ Games
GPT
green linux
Groups API
grow
grow with google
gsoc
GSuite
gtags
gtug
guest post
guice
gulp
GWSOP
gwt
gzip
hackathon
hacking
hackthon
hamilton
hangouts
Hangouts Chat
Hangouts Chat API
haproxy
Headset
hg
hibernate
howto
hpux
html
html5
http
I/O
I/O 17
I/O 2017
I/O Extended
I/O Live
ical
identity
ietf
ignite
igoogle
iguanas
iiw
Image Compression
image search
Imara
In-app billing
in-app payments
in-app purchase
incubator
India
indie
Indie Games Accelerator
information visualization
Instagram
intelligentwire
interactive music
internationalization
internet explorer
internet of things
interviews
IO
IO17
io18
IO19
IO19 Flutter
IO2017
ios
iOS SDK
IoT
ipad
iphone
iPhone Development
israel
Issue Tracker
jaiku
japanese
java
javascript
jetpack
joomla
joomladayus2007
joomladayusa
json
karaoke
KDE
KDE 4.0
Keras
kernel
kernel summit
keynote
khronos
kids
kids coding
kids coding team
kml
korean
Krakow
Kubernetes
labs
lanchpad
languages
latam accelerator
LatAm startups
latitude
latvia
launch
launchpad
launchpad accelerator
launchpad studio
lca
Leadership
Learning
lens
lessons
licenses
linux
linux foundation
linux summit
linux virtual server
linuxconf eu
lithuania
localization
LoCo
london
mac
MacFuse
Machine
machine intelligence
machine learning
machine learning accelerator
maker
Makers
malware
maps
maps apis
Marketplace
material
material components
material design
MDL
meetup
mercurial
Mexico startups
MIT CSAIL
MIT Media Lab
ml
ML Kit
MLCC
mobile
Mobile App Development
mobile design
Mobile Development
mobile performance
mobile sites
mobile speed
mobile UX
Mobile web
Mobile World Congress
mod_pagespeed
Moderator
monetize
MOOC
mozilla
multi-platform
mylar
myspace
MySQL
mythtv
named
narratives
native ads
native client
nearby
netbsd
non-profit
nonsense
nosql
notifications
Noto Serif CJK
nss
nvidia
NYT
O3D
oauth
OAuth playground
OAuth2
objective-c
OCaml
ocr
ODF
office hours
oha
online payments
OOXML
open data
open source
open source blog
open source releases
open web
openajax alliance
opengl
openid
opensocial
openssh
openssl
Optimization
oreilly
orkut
oscon
oscon2007
osi
oss devs
ossjam
osx
pactester
page speed
PageSpeed
palette
payment handler
payment request api
payment web standard
payments
Peer bonus program
performance
phone
photos
picasa
picasa web
places API
play services
playground
plone
plone sprint
podcast
poland
Poly
polymer
Polymer Summit
portugal
posix
PowerMeter API
prediction api
preview
prizes
programming
Progressive Web App
project hosting
Project Loon
Project Tango
prototype
proximity
pubsubhubbub
PWA
py3k
python
python sprint
Qualcomm
Qualcomm Google
rails
random hacks of kindness
Rasberry Pi
reader
releases
Remote Config
research
reserve seats
Responsible AI
result snippets
Reto Meier
Rewarded Ads
Rewarded Video Ads
rhino
Saatchi
Safety & Security
safety and security
salesforce
samba
Sample dialogs
sandbox
Santa Tracker
scalability
scale-ups
Sceneform
schedule
scholarship
scholarships
Scratch
screencast
sdk
sdks
search
security
Serbia
serif
service worker
sessions
seurat
shape
Sheets API
shindig
shopping
Shoreline Amphitheatre
showcase
sidewiki
sign-in
silverstripe
SIMD
sitemaps
sites api
sixapart
sketchup
Slides API
small business
small businesses
Smart Lock for Passwords
soap search api
soc
social
social graph
solaris
souders
spa2007
Space
spdy
speakers
speech
speed
speed tracer
Stable release
standards
startup
Startup accelerator
startups
STEM
storage
Street View
student programs
students
stuff
style
subscribed links
subscription
subversion
summer of code
Sundar Pichai
SVG
sxsw
syndication
tasks API
Team Drives (new)
techmakers
templates
TensorFlow
tensorflow dev summit
TensorFlow Lite
TensorFlow Research Cloud
tensorRT
Test Lab
testing
text embedding models
TF Lite
tfdevsummit
TFLite
themes
thought leadership
tool
Toolkit
tools
topp
TPU
training
tranparency
transit
translate
translation
tutorials
tv
ubiquitous computing
ubiquity
ubucon
ubuntu
Udacity
UI
Ukraine
unicode
unit test
Unity
universal
Universal App Campaigns
University
unix
url
url shortener
URLs
UX
video
videos
Vim
virtual keyboard
virtual reality
visualization
voice
voice kit
voice user interface
VR
VUI
wattpad
Wearables
Weave
web
web animations api
web apps
web components
web design
web designer
web development
web exponents
web fonts
web performance
web platform docs
web registry
webfonts
webgl
webmaster
WebP
website optimizer
webVR
weekly roundup
WhiteHouse.gov
Who's at Google I/O
win
windows
windows programming
Winter of Code
Women in Tech
Women Tech Makers
women techmakers
WomenTechmakers
writing
wtm
xauth
yahoo
Young Makers
youtube
zlib
zurich
ZXing
Archive
2019
May
Apr
Mar
Feb
Jan
2018
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2007
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2006
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2005
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Subscribe
Follow @googledevs
Visit
Google Developers
for docs, event info, and more.