Spring框架|泛型依赖注入

泛型依赖注入允许我们在使用spring进行依赖注入的同时,利用泛型的优点对代码进行精简,将可重复使用的代码全部放到一个类之中,方便以后的维护和修改。同时在不增加代码的情况下增加代码的复用性。

下面的对泛型注入进行演示:

假设有用户User和图书Book两个Bean,用户和图书都有一个保存方法,那么可以将这个方法提取出来,作为一个泛型接口。同样的,在Spring中也支持对这样的泛型进行依赖注入。

业务层

  • 业务层定义一个泛型父类,BookService和UserService分别继承BaseService<Book>BaseService<User>
  • 在这个泛型父类中有一个save方法,并在此方法中调用持久层
public class BaseService<T> {
	@Autowired
	BaseDao<T> baseDao;

	public void save() {
		baseDao.save();
	}
}
@Service
public class BookService extends BaseService<Book> {

}
@Service
public class UserService extends BaseService<User> {

}

持久层

  • 持久层定义一个泛型抽象类,BookDao 和 UserDao 分别继承BaseDao<Book>BaseDao<User>
  • 在这个泛型抽象类中定义了抽象save方法,并分别在其子类中重载了此方法,进行个性化。
public abstract class BaseDao<T> {
	public abstract void save();
}
@Repository
public class BookDao extends BaseDao<Book> {
	@Override
	public void save() {
		System.out.println("保存图书中...");
	}
}
@Repository
public class UserDao extends BaseDao<User> {
	@Override
	public void save() {
		System.out.println("保存用户中...");
	}
}

Spring测试:

@ContextConfiguration("classpath:applicationContext.xml")
@RunWith(SpringJUnit4ClassRunner.class)
public class iocTest {
	@Autowired
	BookService bookService;
	@Autowired
	UserService userService;

	@Test
	public void test() {
		bookService.save();
		userService.save();
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hudie.

不要打赏!不要打赏!不要打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值