当前位置: 首页 > news >正文

网站建设技术中心wordpress 附件储存

网站建设技术中心,wordpress 附件储存,网站雪花代码,网站建设做什么会计科目twitter自定义apiSpringBoot提供了许多启动器模块来快速启动和运行。 SpringBoot的自动配置机制负责根据各种标准代表我们配置SpringBean。 除了Core Spring Team提供的现成的springboot启动器之外#xff0c;我们还可以创建自己的启动器模块。 在本文中#xff0c;我们将研… twitter自定义api SpringBoot提供了许多启动器模块来快速启动和运行。 SpringBoot的自动配置机制负责根据各种标准代表我们配置SpringBean。 除了Core Spring Team提供的现成的springboot启动器之外我们还可以创建自己的启动器模块。 在本文中我们将研究如何创建自定义SpringBoot入门程序。 为了演示它我们将创建twitter4j-spring-boot-starter 它将自动配置Twitter4J bean。 为此我们将创建 twitter4j-spring-boot-autoconfigure模块其中包含Twitter4J AutoConfiguration bean定义 twitter4j-spring-boot-starter模块用于获取twitter4j-spring-boot-autoconfigure和twitter4j-core依赖项 使用twitter4j-spring-boot-starter的示例应用程序 创建父模块spring-boot-starter-twitter4j 首先我们将创建一个父pom类型模块以定义依赖项版本和子模块。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sivalabs/groupIdartifactIdspring-boot-starter-twitter4j/artifactIdpackagingpom/packagingversion1.0-SNAPSHOT/versionnamespring-boot-starter-twitter4j/namepropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingtwitter4j.version4.0.3/twitter4j.versionspring-boot.version1.3.2.RELEASE/spring-boot.version/propertiesmodulesmoduletwitter4j-spring-boot-autoconfigure/modulemoduletwitter4j-spring-boot-starter/modulemoduletwitter4j-spring-boot-sample/module/modulesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.twitter4j/groupIdartifactIdtwitter4j-core/artifactIdversion${twitter4j.version}/version/dependency/dependencies/dependencyManagement/project 在此pom.xml中我们在部分中定义了SpringBoot和Twitter4j版本因此我们无需在所有地方都指定版本。 创建twitter4j-spring-boot-autoconfigure模块 在我们的父Maven模块spring-boot-starter-twitter4j中创建一个名为twitter4j-spring-boot-autoconfigure的子模块。 添加Maven依赖项例如spring-boot spring-boot-autoconfigure twitter4j-core和junit 如下所示 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sivalabs/groupIdartifactIdtwitter4j-spring-boot-autoconfigure/artifactIdpackagingjar/packagingversion1.0-SNAPSHOT/versionparentgroupIdcom.sivalabs/groupIdartifactIdspring-boot-starter-twitter4j/artifactIdversion1.0-SNAPSHOT/version/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-autoconfigure/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdscopetest/scope/dependencydependencygroupIdorg.twitter4j/groupIdartifactIdtwitter4j-core/artifactIdoptionaltrue/optional/dependency/dependencies /project 请注意我们已将twitter4j-core指定为可选依赖项因为仅当将twitter4j-spring-boot-starter添加到项目时才应将twitter4j-core添加到项目中。 创建Twitter4jProperties来保存Twitter4J配置参数 创建Twitter4jProperties.java来保存Twitter4J OAuth配置参数。 package com.sivalabs.spring.boot.autoconfigure;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty;ConfigurationProperties(prefix Twitter4jProperties.TWITTER4J_PREFIX) public class Twitter4jProperties {public static final String TWITTER4J_PREFIX twitter4j;private Boolean debug false;NestedConfigurationPropertyprivate OAuth oauth new OAuth();public Boolean getDebug() {return debug;}public void setDebug(Boolean debug) {this.debug debug;}public OAuth getOauth() {return oauth;}public void setOauth(OAuth oauth) {this.oauth oauth;}public static class OAuth {private String consumerKey;private String consumerSecret;private String accessToken;private String accessTokenSecret;public String getConsumerKey() {return consumerKey;}public void setConsumerKey(String consumerKey) {this.consumerKey consumerKey;}public String getConsumerSecret() {return consumerSecret;}public void setConsumerSecret(String consumerSecret) {this.consumerSecret consumerSecret;}public String getAccessToken() {return accessToken;}public void setAccessToken(String accessToken) {this.accessToken accessToken;}public String getAccessTokenSecret() {return accessTokenSecret;}public void setAccessTokenSecret(String accessTokenSecret) {this.accessTokenSecret accessTokenSecret;}} } 使用此配置对象我们可以在application.properties中配置twitter4j属性如下所示 twitter4j.debugtrue twitter4j.oauth.consumer-keyyour-consumer-key-here twitter4j.oauth.consumer-secretyour-consumer-secret-here twitter4j.oauth.access-tokenyour-access-token-here twitter4j.oauth.access-token-secretyour-access-token-secret-here创建Twitter4jAutoConfiguration以自动配置Twitter4J 这是我们启动器的关键部分。 Twitter4jAutoConfiguration配置类包含将根据某些条件自动配置的Bean定义。 那是什么标准 如果twitter4j.TwitterFactory .class在类路径上 如果尚未明确定义TwitterFactory bean 因此 Twitter4jAutoConfiguration像这样。 package com.sivalabs.spring.boot.autoconfigure;import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import twitter4j.Twitter; import twitter4j.TwitterFactory; import twitter4j.conf.ConfigurationBuilder;Configuration ConditionalOnClass({ TwitterFactory.class, Twitter.class }) EnableConfigurationProperties(Twitter4jProperties.class) public class Twitter4jAutoConfiguration {private static Log log LogFactory.getLog(Twitter4jAutoConfiguration.class);Autowiredprivate Twitter4jProperties properties;BeanConditionalOnMissingBeanpublic TwitterFactory twitterFactory(){if (this.properties.getOauth().getConsumerKey() null|| this.properties.getOauth().getConsumerSecret() null|| this.properties.getOauth().getAccessToken() null|| this.properties.getOauth().getAccessTokenSecret() null){String msg Twitter4j properties not configured properly. Please check twitter4j.* properties settings in configuration file.;log.error(msg);throw new RuntimeException(msg);}ConfigurationBuilder cb new ConfigurationBuilder();cb.setDebugEnabled(properties.getDebug()).setOAuthConsumerKey(properties.getOauth().getConsumerKey()).setOAuthConsumerSecret(properties.getOauth().getConsumerSecret()).setOAuthAccessToken(properties.getOauth().getAccessToken()).setOAuthAccessTokenSecret(properties.getOauth().getAccessTokenSecret());TwitterFactory tf new TwitterFactory(cb.build());return tf;}BeanConditionalOnMissingBeanpublic Twitter twitter(TwitterFactory twitterFactory){return twitterFactory.getInstance();}} 我们使用ConditionalOnClass{TwitterFactory.classTwitter.class}来指定仅当存在TwitterFactory.classTwitter.class类时才进行此自动配置。 我们还在bean定义方法上使用了ConditionalOnMissingBean 以指定仅当未明确定义TwitterFactory / Twitter bean时才考虑使用此bean定义。 还要注意我们已经使用EnableConfigurationPropertiesTwitter4jProperties.class进行了注释以启用对ConfigurationProperties的支持并注入了Twitter4jProperties bean。 现在我们需要在src / main / resources / META-INF / spring.factories文件中配置自定义Twitter4jAutoConfiguration 如下所示 org.springframework.boot.autoconfigure.EnableAutoConfiguration com.sivalabs.spring.boot.autoconfigure.Twitter4jAutoConfiguration 创建twitter4j-spring-boot-starter模块 在我们的父Maven模块spring-boot-starter-twitter4j中创建一个名为twitter4j-spring-boot-starter的子模块。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sivalabs/groupIdartifactIdtwitter4j-spring-boot-starter/artifactIdpackagingjar/packagingversion1.0-SNAPSHOT/versionparentgroupIdcom.sivalabs/groupIdartifactIdspring-boot-starter-twitter4j/artifactIdversion1.0-SNAPSHOT/version/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdcom.sivalabs/groupIdartifactIdtwitter4j-spring-boot-autoconfigure/artifactIdversion${project.version}/version/dependencydependencygroupIdorg.twitter4j/groupIdartifactIdtwitter4j-core/artifactId/dependency/dependencies/project 请注意在这个Maven模块中我们实际上是引入twitter4j-core依赖性。 我们不需要在此模块中添加任何代码但可以选择在src / main / resources / META-INF / spring.provides文件中指定通过此启动程序提供的依赖项 如下所示 提供twitter4j-core 这就是我们的入门者。 让我们使用全新的启动程序twitter4j-spring-boot-starter创建示例。 创建twitter4j-spring-boot-sample示例应用程序 让我们创建一个简单的SpringBoot应用程序并添加我们的twitter4j-spring-boot-starter依赖项。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.sivalabs/groupIdartifactIdtwitter4j-spring-boot-sample/artifactIdpackagingjar/packagingversion1.0-SNAPSHOT/versionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion1.3.2.RELEASE/version/parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingjava.version1.8/java.version/propertiesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/builddependenciesdependencygroupIdcom.sivalabs/groupIdartifactIdtwitter4j-spring-boot-starter/artifactIdversion1.0-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies/project 创建入口点类SpringbootTwitter4jDemoApplication 如下所示 package com.sivalabs.demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class SpringbootTwitter4jDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootTwitter4jDemoApplication.class, args);} } 创建TweetService 如下所示 package com.sivalabs.demo;import java.util.ArrayList; import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import twitter4j.ResponseList; import twitter4j.Status; import twitter4j.Twitter; import twitter4j.TwitterException;Service public class TweetService {Autowiredprivate Twitter twitter;public ListString getLatestTweets(){ListString tweets new ArrayList();try {ResponseListStatus homeTimeline twitter.getHomeTimeline();for (Status status : homeTimeline) {tweets.add(status.getText());}} catch (TwitterException e) {throw new RuntimeException(e);}return tweets;} } 现在创建一个测试以验证我们的Twitter4j AutoConfigutation。 在此之前请确保已将twitter4j oauth配置参数设置为实际值。 您可以从https://apps.twitter.com/获得它们 package com.sivalabs.demo;import java.util.List;import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import twitter4j.TwitterException;RunWith(SpringJUnit4ClassRunner.class) SpringApplicationConfiguration(SpringbootTwitter4jDemoApplication.class) public class SpringbootTwitter4jDemoApplicationTest {Autowiredprivate TweetService tweetService;Testpublic void testGetTweets() throws TwitterException {ListString tweets tweetService.getLatestTweets();for (String tweet : tweets) {System.err.println(tweet);}}} 现在您应该能够在控制台输出中看到最新的推文。 您可以在GitHub上找到代码 https //github.com/sivaprasadreddy/twitter4j-spring-boot-starter 翻译自: https://www.javacodegeeks.com/2016/02/creating-custom-springboot-starter-twitter4j.htmltwitter自定义api
http://www.zqtcl.cn/news/552612/

相关文章:

  • zhihe网站建设 淘宝龙岗网站建设哪家好
  • 微信h5商城网站枣庄建设工程管理局网站
  • 做弹弓教程网站旺道seo怎么优化网站
  • 监理公司宣传册设计样本杭州优化seo公司
  • 佛山优化网站关键词衡水专业做网站
  • 京东alexa排名seo发外链网站
  • 中国工业设计网站制作网页版权怎么修改
  • 贞丰县建设局网站一般的电脑培训班要多少钱
  • 模板网站建设清单太原网站制作电话
  • 网站建设的需求要素设计企业网站机
  • 深圳百度推广电话西安官网seo技术
  • 沈阳建站免费模板福州建设企业
  • 怎么在百度首页做网站wordpress返回前页
  • 张家口城乡建设局网站wordpress 等待响应
  • 专门设计网站的公司叫什么怎么做网站多少钱
  • 淡水网站建设健身器材 网站模版
  • 河南建设网站公司简介做新闻类网站需要什么资质
  • 网络文化经营许可证图片下载优化大师安装桌面
  • 网站cms系统教育网站开发文档
  • 用网站做淘客怎么做网站建设在电访销售话术
  • 做电影网站赚了几百万动画制作流程
  • 怎么做企业的网站首页wordpress 主机迁移
  • 网站常见问题网页设计代码开头
  • 聊城网站推广品牌推广计划描述
  • 池州网站制作优化有没有专业做特产的网站
  • wordpress采集站源码wordpress好用的会员插件
  • 寿县城乡建设局网站青岛网站建设大全
  • 杭州做网站的好公司哪家好做影视网站侵权吗
  • 自助建站网站seo公司想学编程做网站
  • 网站空间备案要多久花木公司网站源码