天天看点

Spring -- 4.0新特性 -- 泛型依赖注入

泛型依赖注入为spring4.0版本新增加的特性。

目录结构

Spring -- 4.0新特性 -- 泛型依赖注入

BaseService.java类

public class BaseService<T> {
    @Autowired
    private BaseRespository baseRespository;

    public void save() {
        System.out.println("Base Class save method");
        System.out.println(baseRespository);
    }
}
           

输出baseRespository对象。

BaseRespository.java类

public class BaseRespository<T> {

}
           

UserRespository.java

@Repository
public class UserRespository extends BaseRespository<User> {

}
           

UserService.java

@Service
public class UserService extends BaseService<User> {

}
           

User.java

public class User {

}
           

IOC容器配置

<context:component-scan base-package="com.gp.spring.annotation.fanxing"></context:component-scan>
           

配置注解的扫描包

测试方法

public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "spring_fanxing.xml");
        UserService us = (UserService)context.getBean("userService");
        us.save();
    }
           

输出结果

Base Class save method

[email protected]

最后结果我们注意到BaseRespository对象类型变成UserRespository子类对象类型。

使用了泛型的好处就是,代码简洁,仅通过一个BaseService我们就可以实现类的共性方法,比如增删改查。

继续阅读