目录
泛型依赖注入,可以了解一下,如果想简化代码使用它也是一种选择之一
一、知识点
Spring 4.x 中可以为子类注入子类对应的泛型类型的成员变量的引用

二、例子
2.1 目录结构

2.2 相关代码
src右击-->new-->XML Configuration File-->Spring config-->输入名字“beans-generic-di”
<context:component-scan base-package="com.hualinux.beans.generic.di"/>
src-->com.hualinux.beans.generic.di.BaseRepositotory.java
package com.hualinux.beans.generic.di;
public class BaseRepositotory <T>{
}
src-->com.hualinux.beans.generic.di.UserRepositotory.java
package com.hualinux.beans.generic.di;
import org.springframework.stereotype.Repository;
@Repository
public class UserRepositotory extends BaseRepositotory<User> {
}
src-->com.hualinux.beans.generic.di.BaseService.java
package com.hualinux.beans.generic.di;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseService<T> {
@Autowired
protected BaseRepositotory<T> repositotory;
public void add(){
System.out.println("add...");
System.out.println(repositotory);
}
}
src-->com.hualinux.beans.generic.di.User.java
package com.hualinux.beans.generic.di;
public class User {
}
src-->com.hualinux.beans.annotation.generic.dia.UserService.java
package com.hualinux.beans.generic.di;
import org.springframework.stereotype.Service;
@Service
public class UserService extends BaseService<User> {
}
src-->com.hualinux.beans.annotation.generic.di.Main.java
package com.hualinux.beans.generic.di;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-generic-di.xml");
UserService userService= (UserService) ctx.getBean("userService");
userService.add();
}
}
运行上面的Main.java,结果如下:
add...
com.hualinux.beans.generic.di.UserRepositotory@71e9ddb4

本文详细介绍Spring4.x中如何利用泛型依赖注入为子类注入泛型类型的成员变量,通过具体代码示例展示了BaseRepository与UserRepository的泛型继承关系,以及BaseService如何注入特定泛型类型的Repository。

被折叠的 条评论
为什么被折叠?



