第一范文网 - 专业文章范例文档资料分享平台

SSH整合过程

来源:用户分享 时间:2025/8/16 18:23:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

BaseRepository { }

public abstract class BaseRepository { public void save(M m) {

System.out.println(\ } }

@Repository

public class UserRepository extends BaseRepository { }

@Repository public class OrganizationRepository extends BaseRepository { }

对于Repository,我们一般是这样实现的:首先写一个模板父类,把通用的crud等代码放在BaseRepository;然后子类继承后,只需要添加额外的实现。

1.3、Service

1.3.1、以前Service写法

Java代码

public abstract class BaseService { private BaseRepository repository;

public void setRepository(BaseRepository repository) { this.repository = repository; }

public void save(M m) { repository.save(m); } }

@Service

public class UserService extends BaseService { @Autowired

public void setUserRepository(UserRepository userRepository) { setRepository(userRepository); } }

@Service

public class OrganizationService extends BaseService {

@Autowired

public void setOrganizationRepository(OrganizationRepository

organizationRepository) {

setRepository(organizationRepository); } }

public abstract class BaseService { private BaseRepository repository;

public void setRepository(BaseRepository repository) { this.repository = repository; }

public void save(M m) { repository.save(m); } }

@Service

public class UserService extends BaseService { @Autowired

public void setUserRepository(UserRepository userRepository) { setRepository(userRepository); } }

@Service

public class OrganizationService extends BaseService {

@Autowired

public void setOrganizationRepository(OrganizationRepository organizationRepository) {

setRepository(organizationRepository); } }

可以看到,以前必须再写一个setter方法,然后指定注入的具体类型,然后进行注入;

1.3.2、泛型Service的写法

Java代码

public abstract class BaseService { @Autowired

protected BaseRepository repository;

public void save(M m) { repository.save(m); } }

@Service

public class UserService extends BaseService { }

@Service

public class OrganizationService extends BaseService { }

public abstract class BaseService { @Autowired

protected BaseRepository repository;

public void save(M m) { repository.save(m); } }

@Service

public class UserService extends BaseService { }

@Service

public class OrganizationService extends BaseService { }

大家可以看到,现在的写法非常简洁。支持泛型式依赖注入。

这个也是我之前非常想要的一个功能,这样对于那些基本的CRUD式代码,可以简化更多的代码。

如果大家用过Spring data jpa的话,以后注入的话也可以使用泛型限定式依赖注入 : Java代码 @Autowired

private Repository userRepository; @Autowired

private Repository userRepository;

对于泛型依赖注入,最好使用setter注入,这样万一子类想变,比较容易切换。比如https://github.com/zhangkaitao/es,如果有多个实现时,子类可以使用@Qualifier指定使用哪一个。

搜索更多关于: SSH整合过程 的文档
SSH整合过程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9fcc78tya76b8vf014e4_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top