开发中往往service、dao并行完成,但是service层又需要调用dao层的CRUD方法,这意味着dao必须先于service完成。这在开发中会极大降低效率的。
通过注解(Annotatoin)我们可以轻松实现两个层次的解耦
首先写一个注解类
@Retention(RetentionPolicy.RUNTIME)
public @interface getClassAnnotation{
public String className();
}
在dao层写一个工厂
public class UserDaoFactory {
}
//在UserDao接口中注解对应的className
@ClassNameAnnotaton(className=”cn.itcast.dao.UserDaoHibernateImpl”)
public interface UserDao {
}
对UserDao的实现有多种如:UserDaoJdbcImpl、UserDaoHibernateImpl
只需要在接口上标明是哪一个实现类
这样一来在Service层就可以直接通过工厂获得dao实现类
UserDao dao = UserDaoFactory.newInstance().getUserDao();
from: http://blog.sina.com.cn/s/blog_7241b371010182mp.html