Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将通用DAO注入服务(Spring4)_Java_Spring_Generics_Spring Boot_Dependency Injection - Fatal编程技术网

Java 将通用DAO注入服务(Spring4)

Java 将通用DAO注入服务(Spring4),java,spring,generics,spring-boot,dependency-injection,Java,Spring,Generics,Spring Boot,Dependency Injection,我正在寻找一种将通用DAO注入服务的解决方案 更具体地说,我正在寻找一种将通用用户DAO注入登录服务的方法 就我而言,它们是: 从类用户继承的多种类型的用户 对于每种类型的用户,都有一个从继承的相关DAO GenericUserDao 我的第一个想法是声明我的服务并注入我的DAO,如下所示: public class LoginService<DAO extends GenericUserDao<? extends User>> { @Autowired

我正在寻找一种将通用DAO注入服务的解决方案

更具体地说,我正在寻找一种将通用用户DAO注入登录服务的方法

就我而言,它们是:

  • 类用户继承的多种类型的用户
  • 对于每种类型的用户,都有一个从继承的相关DAO
    GenericUserDao
  • 我的第一个想法是声明我的服务并注入我的DAO,如下所示:

    public class LoginService<DAO extends GenericUserDao<? extends User>> {
        @Autowired
        DAO userDao;
    }
    
    [...]
    
    // declaration
    @Autowired
    LoginService<SpecialUserDao> userService;
    
    但是最后没有注入任何东西,我在调用DAO方法时逻辑上得到一个NullPointerException


    注入我的DAO的正确方法是什么?

    您是否尝试过
    @Named
    ?不确定这会有什么帮助。整个想法是能够为所有用户创建一个通用的登录服务类,然后使用作为参数的特定DAO(LoginService userService)创建几个实例。
    public class LoginService<DAO extends GenericUserDao<? extends User>> {
        DAO userDao;
    }
    
    [...]
    
    // declaration
    @Autowired
    LoginService<SpecialUserDao> userService;