`
tomhibolu
  • 浏览: 1384944 次
文章分类
社区版块
存档分类
最新评论

双射(bijection)

 
阅读更多

双射(bijection)

双射(bijection,即 bidirectional injection 的简称)。当注出(outject)属性数据时,视图可以通过名称找到它。在 postback 或者组件初始化时,数据被注入(inject)到一个组件中。后者是著名的控制反转(inversion of control,IOC)模式的一种实现,可用于连接委托对象。

传统 IOC 与 双射之间的主要不同点在于,双射使长期作用域中的组件可以引用短期作用域中的组件。可以进行这种连接是因为双射在调用组件时(而不是启动容器时)解析依赖项。双射是有状态组件开发的基础。


@Name("addressManager")
public class AddressManagerBean{
@DataModel
private List<Address> addresses;

@DataModelSelection
@Out(required=false)
private Address selectedAddress;

@Factory(value="addresses")
public void loadAddress(){
//logic to load addresses into this.addresses
}

public String showDetail(){
//no work needs to be done to prepare the selected address
return "/address.jspx";
}

public String list(){
return "/addresses.jspx";
}
}
--------------------------------
@Name("addressManager")
public class AddresManagerBean{
@In("#{addressService}")
private AddressService addressService;
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics