spring学习笔记-泛型依赖注入

1.简单继承结构的泛型依赖注入

我们使用最简单的继承结构来实现泛型的依赖注入,带泛型的类baseEntity,继承了baseEntity的user和organization,以及一个方便理解泛型依赖注入是怎么回事。
1.创建baseEntity

package com.hao.spring.autowired.model;

public class BaseEntity<T> {
      private Integer status;

      public Integer getStatus() {
            return status;
      }
      
      public void setStatus(Integer status) {
            this.status = status;
      }
}

2.创建user并继承baseEntity

package com.hao.spring.autowired.model;
import org.springframework.stereotype.Repository;

@Repository
public class User extends BaseEntity<User>{
      private String userName;
      private Integer age;
      private String sex = "男";
      
      public String getUserName() {
            return userName;
      }

      public void setUserName(String userName) {
            this.userName = userName;
      }

      public Integer getAge() {
            return age;
      }

      public void setAge(Integer age) {
            this.age = age;
      }

      public String getSex() {
            return sex;
      }

      public void setSex(String sex) {
            this.sex = sex;
      }
}

3.创建organiztaion并继承baseEntity

package com.hao.spring.autowired.model;
import org.springframework.stereotype.Repository;

@Repository
public class Organization extends BaseEntity<Organization> {
      private String orgName;

      public String getOrgName() {
            return orgName;
      }

      public void setOrgName(String orgName) {
            this.orgName = orgName;
      }

      public Organization() {
            super();
      }

      public Organization(String orgName) {
            super();
            this.orgName = orgName;
      }
}

4.创建baseEntityServiceImpl,在该类中注入带User泛型的baseEntity

package com.hao.spring.autowired.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hao.spring.autowired.model.BaseEntity;
import com.hao.spring.autowired.model.User;

@Service
public class BaseServiceImpl{
      @Autowired
      private BaseEntity<User> baseEntity;

      public void baseSave() {
            System.out.println("创建 了"+baseEntity.getClass().getSimpleName());
      };
}

5.当我们在测试类型获取BaseServiceImpl类型的对象时,我们可以看到spring会根据我们指定的泛型帮我们注入User对象
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架可以通过依赖注入来管理对象之间的关系。泛型依赖注入Spring 4版本引入的一个新特性,它允许我们使用泛型类型作为依赖注入的目标类型。 在Spring中,我们可以使用`@Autowired`注解来实现依赖注入。在Spring 4之前的版本中,我们只能使用具体的类型来指定注入的目标类型。但是在Spring 4中,我们可以使用泛型类型来指定注入的目标类型。 泛型依赖注入的好处之一是可以减少重复的代码。例如,我们可以定义一个通用的泛型接口或抽象类,然后在具体的类中使用泛型类型来指定依赖注入的目标类型。这样,我们可以减少重复的配置代码,并提高代码的可维护性和灵活性。 另一个好处是增加了类型安全性。使用泛型类型来指定依赖注入的目标类型可以在编译时检查类型是否匹配,避免在运行时出现类型转换错误或异常。 下面是一个示例代码,演示如何在Spring 4中使用泛型依赖注入: ```java public interface GenericDao<T> { // ... } @Component public class UserDao implements GenericDao<User> { // ... } @Service public class UserService { @Autowired private GenericDao<User> userDao; // ... } ``` 在上面的示例中,我们定义了一个泛型接口`GenericDao`,并在具体的实现类`UserDao`中使用了具体的类型`User`来指定泛型类型。然后,我们在`UserService`中使用泛型类型`User`来注入`UserDao`。 通过使用泛型依赖注入,我们可以更方便地管理依赖关系,并且减少了重复的配置代码。这是Spring 4版本引入的一个有用的特性,可以在开发中提高效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值