我有一个Spring项目,分成几个模块。
所以在数据访问库中,我有这个界面:
@Repository
public interface ItemRepository extends PagingAndSortingRepository<Item, Long> {
List<Item> findAll();
Item findById(Long id);
}
在安全库中:
@Repository
public interface SecuredItemRepository extends ItemRepository {
@PreAuthorize("hasRole('ROLE_ADMIN')")
List<Item> findAll();
@PreAuthorize("hasRole('ROLE_ADMIN')")
Item findById(Long id);
}
当我@Autowire
ItemRepository
时,我希望SecuredItemRepository
使用ItemRepository
,如果没有,我希望SecuredItemRepository
。
有没有办法将setTimeout()
声明为默认选项,或者首先在要抓取的ItemRepository实现列表中?我宁愿不在我需要访问数据库的每个位置指定实现。
答案 0 :(得分:1)
当然,两秒钟后我找到了答案。我需要用这个注释SecuredItemRepository
:
@Priority(value = Ordered.HIGHEST_PRECEDENCE)