spring中泛型的依赖注入 是怎么实现的

 我来答
ifeilong
2016-09-17 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:803万
展开全部

一、为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入。


二、泛型依赖注入:子类之间的依赖关系由其父类泛型以及父类之间的依赖关系来确定,父类的泛型必须为同一类型。

通俗一点来说:两个子类之间的依赖关系不需要在子类中去声明,而是在父类中进行了声明,而依赖的纽带就是 泛型类型,必须是相同的父类泛型类型才具有依赖关系。


三、UML 类图:



说明:在 BaseService 中通过 @Autowired 注解自动装配了 BaseDao 的实例。而在 UserService 中并没有注入 UserDao 的实例,但是通过父类的泛型类型,

在 UserService 中已经注入了 UserDao 的实例。Department 与之类似。


四、例子:




public class BaseDao<T> {
    public void say() {
        System.out.println("com.nucsoft.spring.Dao.BaseDao.say");
    }
}

public class BaseService<T> {
    @Autowired
    public BaseDao baseDao;

    public void service() {
        System.out.println(baseDao);
        baseDao.say();
    }
}


@Repository
public class UserDao extends BaseDao<User>{}


@Service
public class UserService extends BaseService<User>{}

@Test
public void test03() {
    UserService userService = ctx.getBean(UserService.class);
    userService.service();
}

控制台输出:

com.nucsoft.spring.Dao.UserDao@162a657e
com.nucsoft.spring.Dao.BaseDao.say

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式