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();
	}
}

在这里插入图片描述

发布了451 篇原创文章 · 获赞 1428 · 访问量 45万+

猜你喜欢

转载自blog.csdn.net/weixin_43691058/article/details/105057885
今日推荐