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)