spring boot示例_Spring Boot上的Spring社交示例,或者我如何停止担心和喜欢自动配置...

spring boot示例

对于Spring Boot 1.1.0.RC1,添加了自动配置和Spring Social的启动程序pom,这意味着我不必向pom添加一百个依赖关系,并且将为我处理许多毫无意义的Spring配置。 让我们来看一个例子。

我将实现一个两页的Web应用程序。 一个将显示给定用户的Twitter时间轴,另一个将显示用户的个人资料信息。 这是我的pom:



<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelversion>4.0.0</modelversion><groupid>nr.co.caught</groupid><artifactid>BootTwitterJoy</artifactid><version>1.0-SNAPSHOT</version><packaging>war</packaging><!-- Inherit defaults from Spring Boot --><parent><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-parent</artifactid><version>1.1.0.RC1</version></parent><dependencies><dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-social-twitter</artifactid></dependency><!-- Both are needed for jsp support--><dependency><groupid>org.apache.tomcat.embed</groupid><artifactid>tomcat-embed-jasper</artifactid></dependency><dependency><groupid>javax.servlet</groupid><artifactid>jstl</artifactid></dependency></dependencies><!-- Needed for fat jar --><build><plugins><plugin><groupid>org.springframework.boot</groupid><artifactid>spring-boot-maven-plugin</artifactid></plugin></plugins></build><!-- Add Spring repositories --><!-- (you don't need this if you are using a .RELEASE version) --><repositories><repository><id>spring-snapshots</id><url>http://repo.spring.io/snapshot</url><snapshots><enabled>true</enabled></snapshots></repository><repository><id>spring-milestones</id><url>http://repo.spring.io/milestone</url></repository></repositories><pluginrepositories><pluginrepository><id>spring-snapshots</id><url>http://repo.spring.io/snapshot</url></pluginrepository><pluginrepository><id>spring-milestones</id><url>http://repo.spring.io/milestone</url></pluginrepository></pluginrepositories></project>

如您所见,我具有starter-social-twitter依赖关系,该依赖关系为我提供了Spring Social和Web功能。 我将为我的jsp页面添加jasper和jstl。 由于具有里程碑意义的存储库,因此我的存储库部分已足够填充。

现在,我们将添加我们的服务来执行Twitter方法调用和一个用于处理请求的控制器。 我们的控制器简单明了:

@Controller
public class TwitterController {@Autowiredprivate TwitterService twitterService;@RequestMapping(value = "/timeline/{twitterUser}")public String getUserTimeline(@PathVariable String twitterUser, Model model) {model.addAttribute("tweets", twitterService.getUserTimeline(twitterUser));model.addAttribute("user", twitterUser);return "timeline";}@RequestMapping(value = "/profile/{twitterUser}")public String getUserProfile(@PathVariable String twitterUser, Model model) {model.addAttribute("userProfile", twitterService.getUserProfile(twitterUser));return "profile";}
}

如果请求带有“ / timeline / username”,我们的控制器将获取用户时间线,如果带有“ / profile / username”,它将从TwitterService获取用户配置文件。 这是我们的TwitterService:

@Service
public class TwitterService {@Autowiredprivate Twitter twitter;public List < Tweet > getUserTimeline(String twitterUser) {TimelineOperations timelineOps = twitter.timelineOperations();List tweets = timelineOps.getUserTimeline("@" + twitterUser);return tweets;}public TwitterProfile getUserProfile(String twitterUser) {UserOperations userOperations = twitter.userOperations();TwitterProfile userProfile = userOperations.getUserProfile(twitterUser);return userProfile;}
}

由于Spring Boot的自动配置,我们将创建一个Twitter对象。 我们只需要在我们的应用程序属性中提供一个应用程序ID和应用程序秘密密钥(又名“消费者密钥”和“消费者秘密”),Boot将完成其余的工作。 我引用了Spring javadoc中的Twitter对象说明:

“ TwitterTemplate的此实例仅限于仅执行需要客户端授权的操作。 例如,您可以使用它来搜索Twitter,但不能使用它来发布状态更新。 此处提供的客户端凭据用于通过OAuth 2客户端凭据授予获取客户端访问令牌。

如果您尝试进行状态更新,则会收到“ org.springframework.social.MissingAuthorizationException:操作需要授权,但API绑定是未经授权创建的”。 对于进一步的Twitter功能,我们还需要提供访问令牌和访问令牌秘密密钥,但据我所知,自动配置尚无法解决这些情况。
我的JSP:
profile.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title></title>
</head>
<body>
<img src="${userProfile.profileImageUrl}"/>  Screen name: ${userProfile.screenName} Name: ${userProfile.name}      Description: ${userProfile.description}   Location:  ${userProfile.location}  Followers: ${userProfile.followersCount}  </body>
</html>

如您所见,概要文件采用了我们控制器提供的userProfile并显示了基本概要文件属性。 timeline.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Time Line for <c:out value="${twitterUser}" /> TimeLine</title>
</head>
<body>
<ul><c:forEach items="${tweets}" var="tweet"><li>${tweet.text}at <c:out value="${tweet.createdAt}"/></li></c:forEach>
</ul>
</body>
</html>

显示推文及其文本和创建日期。 我的application.properties内容:

# Config for JSPs
spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
spring.social.twitter.appId= someAppId
spring.social.twitter.appSecret= someSecretId

spring.view属性用于jsp处理。 spring.social.twitter属性,可以从http://dev.twitter.com获得 。 只需使用您的Twitter帐户登录那里,创建您的应用并获取api密钥。 结果如下:

个人资料

时间线

  • 您可以在github上检查代码。

翻译自: https://www.javacodegeeks.com/2014/06/spring-social-example-on-spring-boot-or-how-i-stopped-worrying-and-loved-autoconfiguration.html

spring boot示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装虚拟机后,启动出错的解决办法

安装虚拟机后&#xff0c;启动出错&#xff0c;需要找到路径中的配置文件 使用记事本或其他应用打开 在vmci0.prensent值改为FALSE,才可以正常启动

什么是E1接口,E1的使用注意事项

欧洲的30路脉码调制PCM简称E1&#xff0c;速率是2.048Mbit/s 。 我国采用的是欧洲的E1标准。E1接口有G&#xff0e;703非平衡的75 ohm&#xff0c;平衡的120 ohm2种接口。接下来就由飞畅科技的小编来为大家详细介绍下使用E1的三种方法及注意事项&#xff0c;一起来看看吧&#…

Java序列化魔术方法及其示例使用

在上一篇文章中&#xff0c; 您需要了解有关Java序列化的所有知识 &#xff0c;我们讨论了如何通过实现Java序列化来启用类的可序列化性。 Serializable接口。 如果我们的类未实现Serializable接口&#xff0c;或者该类具有对非Serializable类的引用&#xff0c;则JVM将抛出No…

针对新手的Java EE7和Maven项目-第2部分-为我们的应用程序定义一场简单的战争

从第一部分恢复 第1部分 我们刚刚定义了父 pom。 一种特殊的pom类型&#xff0c;它最终定义了我们的应用程序将要使用的库。 它还配置了所有用于包装我们应用程序每个模块的Maven工具。 您可以在此处 签出 -1部分示例代码。 因此&#xff0c;到目前为止&#xff0c;在将要开发…

电信级E1保护倒换设备产品介绍

1-8路E1倒换保护设备是由杭州飞畅科技有限公司自主研发生产的E1线路无损伤自动切换设备。本系列设备是本公司研制的专用超大规模集成电路的基础上开发的E1切换器。提供1-8路独立的E1倒换保护功能(816E1)&#xff0c;在默认工作方式下&#xff0c;主用E1线路出现故障时&#xff…

电话光端机的电话业务不通问题,该怎么去检查?

我司的设备&#xff0c;电话光端机都是达到电信级别&#xff0c;通话声音是特别清晰的。如果电话光端机的电话杂音声过大可能是电话光端机的光口有误码引起的。 一般应该是光端机有误码引起的&#xff0c;产生误码的原因主要是光纤部分&#xff0c;因为一般设备一般发货前&…

java8 camel_Meet Fabric8:基于Camel和ActiveMQ的开源集成平台

java8 camel面料8 Fabric8是来自Red Hat的JBoss Fuse产品的Apache 2.0许可上游社区。 这是一个基于Apache ActiveMQ &#xff0c; Camel &#xff0c; CXF &#xff0c; Karaf &#xff0c; HawtIO等的集成平台。 它提供了自动化的配置和部署管理&#xff0c;以帮助使部署变得…

电话光端机的电话接口类型有哪些?

电话光端机常用的的电话接口类型有&#xff1a;环路中继接口&#xff08;FXO&#xff09;、模拟用户线接口&#xff08;FXS&#xff09;、热线电话接口&#xff08;公务电话&#xff09;、磁石电话接口。接下来&#xff0c;我们就跟随飞畅科技的小编来详细了解下电话光端机的电…

如何使用可外部化的接口在Java中自定义序列化

在上一篇文章“用示例介绍的有关Java序列化的一切”中 &#xff0c;我解释了如何使用以下方法序列化/反序列化一个对象 Serializable接口&#xff0c;还说明了如何使用writeObject和readObject方法自定义序列化过程。 Java序列化过程的缺点 但是&#xff0c;这些定制还不够&a…

电话光端机使用什么光纤网络比较好?

电话光端机是一种将传统电话信号转换为光信号并通过光纤传输的设备&#xff0c;要使用电话光端机&#xff0c;必须首先具有光纤网络。那么电话光端机使用哪种纤维更好呢&#xff1f;接下来就让我们跟随飞畅科技的小编一起来看看吧&#xff01; 如果电话光端机使用的光纤网络在…

电话光端机原理及作用分析

常用的光端机分为多种类型&#xff0c;例如电话光端机、网络光端机、音频光端机、视频光端机、串口光端机、PDH光端机等。通常&#xff0c;电话光端机是最常用的&#xff0c;并且它们也被广泛使用。今天&#xff0c;就由光端机专业厂家飞畅科技来为大家普及下电话光端机的原理及…

关于Jakarta EE与MicroProfile的创新和关系的提案

在JCrete非会议上&#xff0c;我们中的一些人正在就Jakarta EE的愿景&#xff0c;尤其是与MicroProfile的关系进行头脑风暴。 我想开始讨论&#xff0c;以使所有人都在同一页面上&#xff0c;尤其是Jakarta EE和MicroProfile之间的关系以及Jakarta的创新应如何。 我相信我们中的…

电话光端机作用,电话光端机功能特点介绍

电话光端机顾名思义其实也是一种光端机&#xff0c;但是他不仅仅只能传输电话的光端机。它的用户接口类型多样&#xff08;包括语音、数据、图象&#xff09;&#xff0c;均以小型模块化部件方式装配到母板上&#xff0c;各种用户模块可以混合装配&#xff0c;方便扩容及维护。…

光端机的作用是什么? 简述光端机的作用

简单说光端机是光信号传输的终端设备&#xff0c;光端机一般都是成对使用&#xff0c;分为光发射机和光接收机。市面上常见的光端机主要有&#xff1a;电话光端机、PDH光端机、高清视频光端机、音频光端机、以太网光端机、数据光端机等等。那么&#xff0c;各类光端机的作用是什…

db2分页sql_停止尝试使用内部DB框架模拟SQL OFFSET分页!

db2分页sql我敢肯定&#xff0c;到目前为止&#xff0c;您已经以多种方式弄错了。 而且您可能很快将无法正确处理。 那么&#xff0c;当您可以实施业务逻辑时&#xff0c;为什么还要在SQL调整上浪费您的宝贵时间呢&#xff1f; 让我解释… 直到最近的SQL&#xff1a;2008标准 …

关于单纤与双纤光端机的区别介绍

单纤和双纤的光端机最大区别就是它们主板上的光模块区别&#xff0c;其他的地方基本上都是一样的。下面&#xff0c;飞畅科技的小编来为大家详细介绍下单纤与双纤光端机的区别&#xff0c;一起来看看吧&#xff01; 单纤光端机&#xff1a;接收与发送的数据在一根光纤上传输。…

ImportError: cannot import name ‘constants‘

运行ns3gym案例一直报这个错&#xff0c;然后重新配置了两遍环境&#xff0c;然而并没有什么用。通过Google Baidu搜索&#xff0c;建议执行以下代码 pip install --upgrade pyzmq 执行后出现以下错误 然后搜索执行代码 sudo pip3 install --ignore-installed pyzmq 安装成功…

如何在不同的浏览器中设置Selenium网格以并行执行

到目前为止&#xff0c;Selenium是最常用的Web自动化测试工具。 如此受欢迎的原因之一是Selenium的自动跨浏览器测试功能。 硒自动化测试可以帮助您在所有主要浏览器&#xff0c;所有主要操作系统甚至移动设备浏览器上进行测试。 您可以在所有功能测试中获得广泛的浏览器覆盖&a…

网管型工业交换机和 非网管型工业交换机的优缺点

工业交换机专业为达到灵便变化多端的工业生产运用要求而设计方案&#xff0c;出示一种性价比高电力线通信通讯解决方法。而工业交换机也分成网管型和非网管型二种。那么&#xff0c;网管型工业交换机和非网管型工业交换机有什么不同&#xff0c;大家该如何选择呢&#xff1f;接…

如何集成和使用EclEmma插件来获得良好的Junit覆盖率

你好朋友&#xff0c; 如果编写好的代码很重要&#xff0c;那么编写覆盖所有业务逻辑的优良Junit测试用例也同样重要。通过编写覆盖业务逻辑的Junit测试用例&#xff0c;我们实际上确保代码的每种方法都能正常工作按照预期进行&#xff0c;因此减少了在软件开发的后期阶段中获…