Wicket 1.4 で Google guice の Module を指定する方法が、下記であったが、、
addComponentInstantiationListener(new GuiceComponentInjector(this,new Module{...});
Wicket 1.5 では、addComponentInstantiationListener は使えなくなり代わりに
ComponentInstantiationListenerCollection を get して、org.apache.wicket.injection.Injector を
add する方法になり、
getComponentInstantiationListeners()
.add(new GuiceComponentInjector(this,new Module{Moduleインスタンス}));
という方法になる。
guice 3.0 がJSR-330 対応でも、Wicket 1.5 RC3 の wicket-guce は、まだ JSR-330 未対応のために、
import javax.injec.Inject;
import javax.inject.Named;
は使えないので、
import com.google.inject.Inject;
import com.google.inject.name.Named;
を当面、使うことになりそうだ。
-----------------------------
import org.apache.wicket.guice.GuiceComponentInjector;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;
public class SampleApplication extends WebApplication{
@Override
protected void init(){
getComponentInstantiationListeners().add(new GuiceComponentInjector(this
,new Module[]{new AbstractModule(){
@Override
protected void configure(){
binder().bind(new TypeLiteral<IDataProvider<User>>(){}).to(UserQuery.class);
}
}}));
}
@Override
public RuntimeConfigurationType getConfigurationType(){
//return Application.DEPLOYMENT;
return RuntimeConfigurationType.DEVELOPMENT;
}
}
---------------------------------
JSR-330 の @Inject も対応するように、代わりのGuiceComponentInjector でも作ってみようかな。