Webx框架:依赖注入

时间:2021-02-07 13:32:56

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)