Play framework 2.0 -调用WEB服务

 

#Play的WS API

 

有时候你需要在Play应用中调用其他HTTP服务。Play通过它的play.libs.WS库提供了支持,它可以提供一种方式进行异步HTTP调用。

play.libs.WS产生的调用应当返回Promise<Ws.Response>类型,同Play的异步机制,你可以稍后处理它。

 

1.生成HTTP调用

 

要产生一个HTTP请求,首先你要使用WS.url()指定URL,然后得到一个生成器来指定HTTP选项,例如设置头等。

最后调用与你想要的HTTP相关的方法:

Promise<WS.Response> homePage = WS.url("http://mysite.com").get();
 

或者:

 Promise<WS.Response> result = WS.url("http://localhost:9001").post("content");
 

2.获取HTTP请求结果

 

调用是异步的,你需要把它当作Promise<WS.Response>来取得实际内容。你可以组织多个

Promise最终以一个可以直接被Play服务器处理的Promise<Result>结束。

 import play.libs.F.Function;
	import play.libs.WS;
	import play.mvc.*;

	public class Controller extends Controller {

	 public static Result feedTitle(String feedUrl) {
	    return async(
		WS.url(feedUrl).get().map(
		    new Function<WS.Response, Result>() {
			public Result apply(WS.Response response) {
			    return ok("Feed title:" + response.asJson().findPath("title"));
			}
		    }
		)
	    );
	 }
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 Play Framework、MyBatis-Plus 和 Spring 集成起来,可以按照以下步骤进行操作: 1. 添加 MyBatis-Plus 和 Spring 依赖项到 Play Framework 项目中。 ``` libraryDependencies ++= Seq( "com.baomidou" %% "mybatis-plus" % "3.4.2", "org.springframework" % "spring-context" % "5.2.9.RELEASE" ) ``` 2. 创建一个 Spring Context 配置文件,例如 applicationContext.xml,并在文件中配置 MyBatis-Plus 和数据源。 ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mybatis-plus="http://mybatis.org/schema/mybatis-plus" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://mybatis.org/schema/mybatis-plus http://mybatis.org/schema/mybatis-plus/mybatis-plus.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- MyBatis-Plus 配置 --> <mybatis-plus:configuration> <mybatis-plus:global-config> <mybatis-plus:db-config id="dbConfig" /> </mybatis-plus:global-config> </mybatis-plus:configuration> <!-- 数据源配置 --> <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="password" /> </bean> <!-- MyBatis-Plus SqlSessionFactory 配置 --> <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="mapperLocations" value="classpath*:mapper/**/*.xml" /> <property name="globalConfig" ref="dbConfig" /> </bean> <!-- MyBatis-Plus MapperScannerConfigurer 配置 --> <bean class="com.baomidou.mybatisplus.extension.spring.MybatisMapperScannerConfigurer"> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> </beans> ``` 3. 创建 MyBatis-Plus 配置文件,例如 mybatis-config.xml,并在文件中配置 MyBatis-Plus 的一些参数和插件。 ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <settings> <setting name="cacheEnabled" value="true" /> <setting name="lazyLoadingEnabled" value="true" /> <setting name="aggressiveLazyLoading" value="false" /> </settings> <plugins> <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor" /> </plugins> </configuration> ``` 4. 在 Play Framework 中,可以使用 SpringApplicationBuilder 创建 Spring Context,并将其与应用程序一起启动。 ```java package controllers; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import play.mvc.Controller; import play.mvc.Result; public class HomeController extends Controller { public Result index() { // 使用 SpringApplicationBuilder 创建 Spring Context ApplicationContext context = new AnnotationConfigApplicationContext(); context.registerShutdownHook(); // 或者使用 ClassPathXmlApplicationContext 加载 applicationContext.xml 文件 // ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取 MyBatis-Plus Mapper 接口实例 UserMapper userMapper = context.getBean(UserMapper.class); // 调用接口方法,执行 SQL 操作 User user = userMapper.selectById(1L); return ok(user.toString()); } } ``` 这样,就可以在 Play Framework 中集成 MyBatis-Plus 和 Spring 了。当然,还需要根据项目实际情况进行进一步的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值