1
- ---
1
+ ---
2
2
layout : post
3
3
title : RoboGuice 2.0
4
4
author : johanpoirier
@@ -17,6 +17,7 @@ Dans le cadre de mon étude des divers frameworks pour le développement java su
17
17
L'injection dans RoboGuice (et Google Guice) se fait via la description du graph de dépendances. Cela se fait via la déclaration de modules :
18
18
19
19
{% highlight java %}
20
+ // Main module for the app
20
21
public class BookingModule extends AbstractModule {
21
22
22
23
private Context context;
@@ -55,6 +56,7 @@ Dans l'exemple précédent, nous pouvons voir deux types de binding différents
55
56
- Les ** provider bindings** : un provider lie une interface à une instance selon certains paramètres
56
57
57
58
{% highlight java %}
59
+ // DAO provider for ORMLite
58
60
public class DaoProvider<T, D extends Dao<T, ?>> implements Provider<D > {
59
61
protected ConnectionSource conn;
60
62
protected Class<T > clazz;
@@ -89,6 +91,7 @@ Pour que l'injection ait lieu, il faut que l'injector de RoboGuice soit appelé.
89
91
#### L'injection dans les "beans" déjà pris en charge par RoboGuice
90
92
91
93
{% highlight java %}
94
+ // Main service for the app
92
95
public class BookingServiceImpl implements BookingService {
93
96
94
97
@Inject
@@ -117,6 +120,7 @@ RoboGuice est une version de Google Guice pour Android, il a donc quelques spéc
117
120
Les classes surchargées sont donc prises en compte par RoboGuice et l'injection aura donc lieu, comme dans l'exemple suivant :
118
121
119
122
{% highlight java %}
123
+ // Display bookings
120
124
public class MyBookings extends RoboActivity {
121
125
122
126
@Inject
@@ -137,6 +141,7 @@ public class MyBookings extends RoboActivity {
137
141
Dans certains cas, il n'est pas possible d'hériter directement d'une classe de RoboGuice et il va falloir appeler l'injecteur manuellement :
138
142
139
143
{% highlight java %}
144
+ // Inject only members, no ui available
140
145
@Override
141
146
protected void onCreate(Bundle savedInstanceState) {
142
147
RoboGuice.getInjector(this).injectMembersWithoutViews(this);
@@ -167,6 +172,7 @@ La liste complète est disponible [ici](http://code.google.com/p/roboguice/wiki/
167
172
### La vue de l'activité
168
173
169
174
{% highlight java %}
175
+ // Replaces setContent
170
176
@ContentView (R.layout.my_bookings)
171
177
public class MyBookings extends RoboActivity {
172
178
...
0 commit comments