小编xia*_*oli的帖子

缓存 JpaRepository 中的方法(Spring Data)

工具:Spring-Boot:1.5.9.RELEASE Spring-Data-JPA:1.11.9.RELEASE

问题:目前我有一个从 JpaRepository 扩展的存储库。为了避免频繁的DB访问,我想在JpaRepository中缓存一些CRUD方法。我尝试了几种可以从 Google 先生那里找到的方法,但除了一种方法外,其他方法都不起作用。

已编辑 1. 此链接中提到的解决方案是可行的。但是,这里有一个不好的做法(对我来说是冗余的)。想象一下,如果我有 50 个存储库扩展 JpaRepository,这意味着我必须覆盖 50 个存储库中的 save 方法。

     public interface UserRepository extends CrudRepository<User, Long> {
        @Override
        @CacheEvict("user")
        <S extends User> S save(S entity);

        @Cacheable("user")
        User findByUsername(String username);
     }
Run Code Online (Sandbox Code Playgroud)

编辑 2. 扩展 JpaRepository 接口。我看到了一些可能在link2 上工作的东西。

在链接中,它提到了 3 种不同的缓存 JpaRepository 方法的方法。第一种方法与我在#1 中提到的方法相同。但是,我想要类似于 2nd/3rd 方法的东西,这样我就不需要不断重复覆盖所有存储库中的 CRUD 方法

下面是我编写的一些示例代码。

    @NoRepositoryBean        
    public interface BaseRepository<T, ID extends Serializable> extends 
    JpaRepository<T, ID> {

        @CacheEvict
        <S extends User> S save(S entity);

        @Cacheble
        T …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data-jpa spring-boot

5
推荐指数
1
解决办法
1万
查看次数

如何利用前后端架构正确实现SSO

我想寻求建议或标准方法来实现基于前端/后端架构的 SSO 登录。

目前,我需要实施第 3 方 SSO 登录。流程如下:

  1. 用户在我的网站中点击“第三方登录”
  2. 路由到第 3 方界面以进行 SSO 登录。
  3. 登录完成后,重定向回我的网站

仅供参考,我的系统架构由前端(角度)和后端(rest api - 无状态)组成。基于以上案例,我可以想到两种集成方式:

方式一

  1. 用户在前端单击“第三方登录”
  2. 路由到第 3 方界面以进行 SSO 登录。
  3. 登录完成后,重定向回后台
  4. 验证请求并设置令牌,后端将重定向到我的前端

方式2

  1. 用户在前端单击“第三方登录”
  2. 路由到第 3 方界面以进行 SSO 登录。
  3. 登录完成后,重定向回前端
  4. 前端将调用后端来验证并获取结果/令牌
  5. 如果验证成功,前端将重定向到主页。

方式1和方式2的区别在于“重定向URL”。SSO 登录完成后,它应该始终路由到前端还是后端?

请就推荐/标准实施向我提供建议。

顺便说一句,我尝试在网上查看但没有看到任何合适的建议。如果您找到了,请分享给我。再次感谢并感谢您的帮助。

frontend backend single-sign-on

5
推荐指数
1
解决办法
3917
查看次数