Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4115237
  • 博文数量: 626
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 11080
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:08
文章分类

全部博文(626)

文章存档

2015年(72)

2014年(48)

2013年(506)

分类: IT职场

2013-09-23 09:44:31

双射(bijection)

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

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


@Name("addressManager")
public class AddressManagerBean{
    @DataModel
    private List

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;
    }

阅读(1109) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~