目录
泛型依赖注入,可以了解一下,如果想简化代码使用它也是一种选择之一
一、知识点
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