泛型依赖注入

来源:互联网 发布:剑三叽太捏脸数据 编辑:程序博客网 时间:2024/06/06 01:43

Spring 4.x 中可以为子类注入子类对应的泛型类型的成员变量的引用

通过代码实现该图:
这里写图片描述

代码:

public class User {}public class BaseRepository<T> {}public class BaseService<T> {    @Autowired    private BaseRepository<T> baseRepository;    public void add(){        System.out.println("BaseService add");        System.out.println(baseRepository);    }}@Repositorypublic class UserRepository extends BaseRepository<User> {}@Servicepublic class UserService extends BaseService<User>{}public class Main {    public static void main(String[] args) {        ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-generic-di-config.xml");        UserService userService = ctx.getBean(UserService.class);        userService.add();    }}配置文件 spring-generic-di-config.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">    <context:component-scan base-package="com.spring.beans.generic.di"></context:component-scan></beans>运行结果:2017-12-23 20:43:10 org.springframework.context.support.AbstractApplicationContext prepareRefresh信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5d764be1: startup date [Sat Dec 23 20:43:10 CST 2017]; root of context hierarchy2017-12-23 20:43:10 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [spring-generic-di-config.xml]BaseService addcom.spring.beans.generic.di.UserRepository@5684ce7a
原创粉丝点击