Spring Social 3.0.0.M1 中的 org.springframework.social.connect.ConnectionRepository 类发生了什么?

2023-11-30

我是 Spring 框架的初学者,想尝试使用 Spring Social 来制作一个从 Facebook 检索数据的简单 Web 应用程序。为此我关注了 Spring Socials 官方“入门指南“叫”访问 Facebook 数据".

我遇到的第一个问题是Spring Social版本2.0.3.发布,这似乎是 Spring Social 的最新官方版本,不支持 facebook API 2.8 版本(因此出现以下错误:“(#12) v2.8 及更高版本已弃用 bio 字段“)。由于我昨天在developers.facebook.com上创建了Facebook应用程序,所以我似乎无法访问以前的API版本。

我用谷歌搜索解决方案并找到了该版本3.0.0.M1似乎可以在maven存储库中找到,这应该可以解决这个问题。但是当我更改 .pom 文件中的配置以使用此版本时,编译器找不到该类连接存储库不再了。其实整个包org.springframework.social.connect似乎不见了。

我从指南中复制的代码(https://spring.io/guides/gs/accessing-facebook/)看起来如下:

import org.springframework.social.connect.ConnectionRepository;
import org.springframework.social.facebook.api.Facebook;
import org.springframework.social.facebook.api.PagedList;
import org.springframework.social.facebook.api.Post;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class HelloController {

    private Facebook facebook;
    private ConnectionRepository connectionRepository;

    public HelloController(Facebook facebook, ConnectionRepository connectionRepository) {
        this.facebook = facebook;
        this.connectionRepository = connectionRepository;
    }

    @GetMapping
    public String helloFacebook(Model model) {
        if (connectionRepository.findPrimaryConnection(Facebook.class) == null) {
            return "redirect:/connect/facebook";
        }

        model.addAttribute("facebookProfile", facebook.userOperations().getUserProfile());
        PagedList<Post> feed = facebook.feedOperations().getFeed();
        model.addAttribute("feed", feed);
        return "hello";
    }

}

ConnectionRepository 是否已弃用并现已删除?如果是这种情况,我应该使用其他东西吗?或者我错过了什么?

只需删除对 ConnectionRepository 的所有引用,就会在启动应用程序时出现以下错误:

org.springframework.beans.factory.BeanCreationException:创建名称为“helloController”的bean时出错:从ClassLoader [sun.misc.Launcher$AppClassLoader@73d16e93]解析bean类[hello.HelloController]上声明的构造函数失败;嵌套异常是 java.lang.NoClassDefFoundError: org/springframework/social/ApiBinding

在这种情况下,代码如下所示:

package hello;

import org.springframework.social.facebook.api.Facebook;
import org.springframework.social.facebook.api.PagedList;
import org.springframework.social.facebook.api.Post;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/")
public class HelloController {

    private Facebook facebook;

    public HelloController(Facebook facebook) {
        this.facebook = facebook;

    }

    @GetMapping
    public String helloFacebook(Model model) {


        model.addAttribute("facebookProfile", facebook.userOperations().getUserProfile());
        PagedList<Post> feed = facebook.feedOperations().getFeed();
        model.addAttribute("feed", feed);
        return "hello";
    }

}

查看该工件源代码的 git 历史记录后春季社交 Facebook,我从GitHub上得到的,我找不到任何痕迹连接存储库 at all.

在 mvnrepository.com 检查后我意识到使用版本时2.0.3.发布神器的春季社交 Facebook作为依赖项,Maven 下载的 jar 文件比使用版本时要多得多3.0.0.M1作为依赖。缺少的 jar 文件管理器中有两个工件,我需要它们来启动并运行我的应用程序。他们是spring 社交核心 and 弹簧社交配置.

最后我发现连接存储库 in the spring 社交核心jar 文件。

所以我最终需要做的是更改指南中原始 pom 文件中的依赖项,如下所示:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-facebook</artifactId>
    </dependency>
</dependencies>

to:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-facebook</artifactId>
        <version>3.0.0.M1</version>
        </dependency>
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-core</artifactId>
        <version>2.0.0.M2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-config</artifactId>
        <version>2.0.0.M2</version>
    </dependency>
</dependencies>

这些更改使我能够启动应用程序并检索一些 Facebook 数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Social 3.0.0.M1 中的 org.springframework.social.connect.ConnectionRepository 类发生了什么? 的相关文章

随机推荐

  • 如何使用Json解析?

    以下是我的 Json 文件 Restaurants 8 Res name Purple Cafe and Wine Bar foodtype American Wine city Seattle state WA latitude 0 lo
  • 使用 awk 的最近邻

    这就是我尝试使用 AWK 语言做的事情 我主要在步骤 2 上遇到问题 我已经显示了一个示例数据集 但原始数据集由 100 个字段和 2000 条记录组成 算法 1 初始化精度 0 2 对于每条记录r Find the closest oth
  • 如何检测蓝牙设备是否已连接

    在 android 中 我的 Activity 如何知道蓝牙 A2DP 设备是否已连接到我的设备 有广播接收器吗 这个广播接收器怎么写 从 API 11 Android 3 0 开始 您可以使用蓝牙适配器发现连接到特定蓝牙配置文件的设备 我
  • 在引擎中使用观察者

    我创建了一个基本上用于我们所有项目的引擎 现在我想做的是添加一个before create回调该引擎中的所有模型 经过一番搜索后 我发现观察者是最佳选择 所以 我创建了这个观察者 app models baco auth auth obse
  • Angular 7 - build --prod 失败并出现错误:无法解析所有参数

    我使用 Angular 7 2 10 当我尝试使用命令构建生产项目时 ng b prod 我收到错误 ERROR in Can t resolve all parameters for ApiService in 我有一个带有 3 个参数的
  • WebView 即使应用程序处于后台/关闭时也如何运行(前台服务处于活动状态)

    我正在构建一个应用程序 它将从网站上抓取一些数据 并在满足某些条件时显示通知 当应用程序打开时 因为正在渲染 WebView 一切都运行良好 没有问题 但是当我关闭应用程序时 WebView 被禁用 因此我无法再使用它来抓取数据 抓取代码位
  • 为什么复制构造函数参数是 const?

    Vector const Vector other Copy constructor x other x y other y 为什么参数是常量 您得到的答案提到确保 ctor 无法更改正在复制的内容 他们是对的 将 const 放在那里确实
  • 使用 C# 进行远程 HTTP Post [重复]

    这个问题在这里已经有答案了 如何在 C 中执行远程 HTTP Post 请求 这是我曾经编写的一个小应用程序的代码 用于将包含值的表单发布到 URL 它应该非常坚固 formValues 是一个 Dictionary 包含要发布的变量及其值
  • 在 Android 上禁用屏幕旋转 [重复]

    这个问题在这里已经有答案了 当我按下按钮时 我想禁用屏幕旋转关于我的所有活动 我怎样才能做到这一点 顺便说一句 当用户单击按钮时 手机可以处于横向或纵向位置 setRequestedOrientation ActivityInfo SCRE
  • 关于hadoop hdfs文件系统重命名

    我正在将大量数据存储到 hdfs 中 我需要将文件从一个文件夹移动到另一个文件夹 请问文件系统的rename方法的成本一般是多少 假设我必须移动 TB 级的数据 非常感谢 重命名是 HDFS 中的仅元数据操作 因此 它也像普通 POSIX
  • 是什么导致我的图像在使用 FTP 通过蓝牙 RFCOMM 传输期间损坏?

    我正在开发两个独立的应用程序 用于使用 Obex 文件传输协议通过蓝牙 RFCOMM 进行数据传输 一方面 在 PC 上运行的 Windows C 控制台应用程序侦听传入的蓝牙连接 并在客户端发出请求时发送图像 另一方面 移动设备上运行的
  • 切换隐私设置将终止该应用程序

    我有一个使用 iPhone 联系人的应用程序 在 iOS 6 中 用户第一次尝试时会收到联系人访问权限提示 此时 用户可以点击 允许 或 不允许 问题是当用户将应用程序置于后台 然后导航到 设置 gt 隐私 gt 联系人 以切换我的应用程序
  • 在 zsh 中哪里放置 $PATH 变量断言?

    I love zsh 但我不知道该把我的 PATH和其他变量断言 我发现它们分散在文件之间 zshrc zprofile bashrc bash profile 有时甚至翻倍 我意识到里面有任何东西bash文件没有多大意义 因为我正在使用z
  • 在 Cygwin 中编译 Haskell 代码,以及 Windows 上 Haskell 平台中的一些其他错误

    我正在尝试使用 Haskell Platform 2011 2 0 1 在 Haskell 中编译一个简单的 hello world 程序 如果我在 WinGHCi 中加载代码并使用 GUI 进行编译 则会创建 exe 然后我可以从 Cyg
  • C# SmtpClient 类无法使用 gmail 发送电子邮件

    我在使用 Gmail 帐户发送电子邮件时遇到问题 我正在拔头发 相同的设置在 Thunderbird 中运行良好 这是代码 我也尝试过 465 端口 但没有成功 SmtpClient ss new SmtpClient smtp gmail
  • mysql 数据库中的古吉拉特语字体无法正确显示

    我们正在使用此代码 但古吉拉特语字体无法在浏览器上正确显示 我的sql about字段有这样的文本
  • Flutter:断言失败:布尔表达式不能为空

    在 flutter 中 我使用 future 调用 Firestore 云数据库中的值 并尝试将该值分配给变量 这是我的代码 import package cloud firestore cloud firestore dart impor
  • 如何使用 jpeg 帧制作 .avi、.mp4 文件?

    我正在使用 IP 摄像机 并且我从摄像机获取了 Jpeg 帧和音频数据 PCM 现在 我想根据上述数据创建 avi 或 mp4 格式的视频文件 音频和视频 我搜索了一下 我知道 ffmpeg 库可以做到这一点 但我不知道如何使用 ffmpe
  • 如何从EXE中提取32x32图标位图数据并将其转换为PIL Image对象?

    我正在尝试从 EXE 中提取 32x32 图标 并将位图数据转换为 PILImage目的 我的最终目标是将图标与另一个 32x32 PNG 进行比较 并通过 RMS 获得差异 我试过做win32gui ExtractIconEx then
  • Spring Social 3.0.0.M1 中的 org.springframework.social.connect.ConnectionRepository 类发生了什么?

    我是 Spring 框架的初学者 想尝试使用 Spring Social 来制作一个从 Facebook 检索数据的简单 Web 应用程序 为此我关注了 Spring Socials 官方 入门指南 叫 访问 Facebook 数据 我遇到