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

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

目录结构
Spring -- 4.0新特性 -- 泛型依赖注入_第1张图片

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
com.gp.spring.annotation.fanxing.UserRespository@13b64a1

最后结果我们注意到BaseRespository对象类型变成UserRespository子类对象类型。
使用了泛型的好处就是,代码简洁,仅通过一个BaseService我们就可以实现类的共性方法,比如增删改查。

你可能感兴趣的:(泛型)