版本与升级
2018-06-02 09:28 更新
在实现类的声明注解@Implement中,默认有个version值为1的属性,在实现相同接口的实现类中,version值越大的,就会覆盖version值小的。
对上面的接口再写一个实现类,如下
package demo.dao.impl;
import java.util.List;
import org.myhibernate.mvc.annotation.Implement;
import demo.dao.ProductDao;
import demo.entity.Product;
@Implement(version=2)
public class ProductDaoImpl2 implements ProductDao
{
public List<Product> findAll() throws Exception {
System.out.println("ProductDaoImpl2 findAll 222");
return null;
}
}
这里指定version为2
再调用测试
public class Test {
public static void main(String[] args) throws Exception
{
ProductDao productDao=(ProductDao)Factorys.getImpl(ProductDao.class);
System.out.println("productDao="+productDao);
productDao.findAll();
}
}
控制台输出如下
productDao=demo.dao.impl.ProductDaoImpl2@3c954549
ProductDaoImpl2 findAll 222
可以看到获取的就是version值高的实现类
以上内容是否对您有帮助:
← 注册
更多建议: