Webx的依赖注入和Spring的依赖注入非常像,只是有一点点的区别。
注入的时候只能让生命周期长的注入到生命周期短的对象中,比如requestScope对象注入到singleton时就会发生错误。但是对于一些特殊的对象,比如request、session、response它们的生命周期是requestScope,而它们可以注入到任意对象中。这是因为webx对这些对象进行了特殊的处理。
依赖注入有多种方式。可以通过Spring中的Autowired字段进行注入。
@Autowired
private UserManager userManager;
参数注入。可以通过@Param @Params注入URL中的query参数。请看下面的例子。
void doGetInt(@Param("aaa") int i)
void doSetData(@Params MyData myData)
注入框架对象。不需要任何注解。请看下面的例子。
void doGetNavigator(Navigator nav)
void doGetContext(Context context)
void execute(ControlParameters params)
注入Context和Control中的对象。请看下面的例子。
void execute(@ContextValue("myvalue") int value)
注入整个表单。
void doGetGroup(@FormGroup("myGroup1") Group group)
void doGetGroups(@FormGroups("myGroup1") Group[] groups)
void doGetGroupsBeans(@FormGroups("myGroup1") MyData[] data)