版本与升级

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值高的实现类






以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号