Using annotations in Turbine 4
The Milestone 2 release of Turbine 4 has added support for dependency injection into modules and valves using annotations. This can simplify your code a lot. Consider a screen template thats uses some Turbine service:
... protected void doBuildTemplate(RunData data, Context context) { // Get service instance MyService myservice = (MyService) TurbineServices .getInstance().getService(MyService.SERVICE_NAME); // do something myservice.doSomething(...) ... }
Looks a bit complicated, doesn't it? Now with Turbine annotations, you simply do
...
@TurbineService
private MyService myservice;
protected void doBuildTemplate(RunData data, Context context)
{
// do something
myservice.doSomething(...)
...
}
In addition to services, the annotations @TurbineConfiguration and @TurbineLoader inject instances of the
Turbine configuration or subsets of it and the Assembler loaders for a certain page, screen or action.
See the
for the documentation of these features.