服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Resty极简restful框架快速接入Spring

Resty极简restful框架快速接入Spring

2022-08-30 11:21Dreampie Java教程

这篇文章主要为大家介绍了Resty极简的restful框架快速接入Spring详细说明,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Resty从最初开发到现在已经经历了近10个月时间,在github的star数即将进入400,在没有任何推广的情况,目前的情况还是比较可观的,主要感谢关注restful发展的人们。

对于不理解restful的人其实就是一个url地址的规范,但我从来不这么认为,我一直觉得rest是一种理念,就行java教你面向对象一样,rest教你面向资源,不再以功能来实现接口,以对资源的操作方式来实现接口,目前就我自己使用的情况来说,大多是比较好的反响:

1.接口真的是简单到了极致(而且非常),比如:
登录:

?
1
2
3
curl -X POST http://users.api.demo.com/sessions \
    -H "Content-Type: application/json" \
    -d '{"username": "admin","password":"111111","rememberMe":"false"}'

退出登录:

?
1
curl -X DELETE http://users.api.demo.com/sessions

获取当前登录用户:

?
1
curl -X GET http://users.api.demo.com/sessions

等等,接口使用者觉得非常简洁优雅,利于管理

2.当你开源预测接口的行为时,你可以做更多的全局性处理,比如在实际情况中:针对某种资源做权限,根据GET,POST,DELETE,PUT等操作做ETag和缓存处理,GET使用缓存,POST,DELETE,PUT更新缓存,及时接口分布在不同的项目缓存也具有即时性,等等

3.直面http,不需要你做额外的设计,http已经为你准备好了,快来进入restful的世界吧

Resty Maven的快照版

1.1.0-SNAPSHOT的更新内容:

1.快速接入Spring

导入spring的包:

?
1
2
3
4
5
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>${spring-context.version}</version>
</dependency>

编写Spring的启动配置(默认使用注解的方式,使用xml的同学请查阅@ImportResource注解),配置Spring扫描路径,支持多个

?
1
2
3
4
@Configuration
@ComponentScan(basePackages = {"cn.dreampie.service"})
public class HelloApp {
}

在Resty的AppConfig中配置SpringPlugin

?
1
2
3
public void configPlugin(PluginLoader pluginLoader) {
  pluginLoader.add(new SpringPlugin(HelloApp.class));
}

然后编写你的Spring class吧

?
1
2
3
4
5
6
7
8
9
10
//接口
public interface HelloService {
  public String hello();
}
@Component
public class HelloServiceImpl implements HelloService {
  public String hello() {
    return "hello";
  }
}

在Resource中使用,和原本Spring的方式无区别,你会以为这是一个纯Spring应用,但是route部分确比Spring mvc更简洁

?
1
2
3
4
5
6
@Autowired
  private HelloService helloService;
  @GET
  public String get() {
    return helloService.hello();
  }

Spring集成就是这么简单,这么完美(什么Dubbo+zookeeper早已不在话下)。

2.resty-cache缓存添加过期时间,orm部分使用@Table(expired=10000)

3.resty-security的加密功能提供密钥

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Encryptioner {
  public static String md5(String srcStr) {
    return encrypt("MD5", srcStr, null);
  }
  public static String md5(String srcStr, String salt) {
    return encrypt("MD5", srcStr, salt);
  }
  public static String sha1(String srcStr) {
    return encrypt("SHA-1", srcStr, null);
  }
  public static String sha1(String srcStr, String salt) {
    return encrypt("SHA-1", srcStr, salt);
  }
  public static String sha256(String srcStr) {
    return encrypt("SHA-256", srcStr, null);
  }
  public static String sha256(String srcStr, String salt) {
    return encrypt("SHA-256", srcStr, salt);
  }
  public static String sha384(String srcStr) {
    return encrypt("SHA-384", srcStr, null);
  }
  public static String sha384(String srcStr, String salt) {
    return encrypt("SHA-384", srcStr, salt);
  }
  public static String sha512(String srcStr) {
    return encrypt("SHA-512", srcStr, null);
  }
  public static String sha512(String srcStr, String salt) {
    return encrypt("SHA-512", srcStr, salt);
  }

4.添加Headers参数获取所有的header

?
1
2
3
4
@GET("/headers")
  public Headers headers(Headers headers) {
    return headers;
  }

5.添加XForwardedSupports,add config in application.properties  

?
1
2
app.xForwardedSupports=* 或者确定的ip地址 
app.xForwardedSupports=127.0.0.1,127.0.0.2

6.修复其他一般性bug和部分代码重构优化

相关链接

以上就是Resty极简restful框架快速接入Spring的详细内容,更多关于restful框架快速接入Spring的资料请关注服务器之家其它相关文章!

原文链接:https://www.oschina.net/news/67001/resty-1-1-0-snapshot

延伸 · 阅读

精彩推荐
  • Java教程java打印从1到100的值(break,return断句)

    java打印从1到100的值(break,return断句)

    java 先写一个程序,打印从1到100的值。之后修改程序,通过使用break关键词,使得程序在打印到98时退出。然后尝试使用return来达到相同的目的...

    Java之家3822020-08-16
  • Java教程深入剖析Java编程中的序列化

    深入剖析Java编程中的序列化

    这篇文章主要介绍了深入剖析Java编程中的序列化,文中谈到了序列化时对象的继承等各种问题,案例详尽,强烈推荐!需要的朋友可以参考下 ...

    goldensun5392019-12-26
  • Java教程浅谈Spring Context加载方式

    浅谈Spring Context加载方式

    这篇文章主要介绍了浅谈Spring Context加载方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    David_jim8292021-05-06
  • Java教程springboot中validator数据校验功能的实现

    springboot中validator数据校验功能的实现

    这篇文章主要介绍了springboot中validator数据校验功能,校验分为普通校验和分组校验,每种校验方式通过实例代码给大家介绍的非常详细,需要的朋友可以参...

    wfsm8352022-02-19
  • Java教程深入理解java三种工厂模式

    深入理解java三种工厂模式

    下面小编就为大家带来一篇深入理解java三种工厂模式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    jingxian2822020-05-09
  • Java教程java多线程编程之使用Synchronized块同步方法

    java多线程编程之使用Synchronized块同步方法

    synchronized块来同步一个对象变量,也可以使用synchronized块来同步类中的静态方法和非静态方法,下面使用Synchronized块同步方法 ...

    java技术网5082019-11-04
  • Java教程Javabean基于xstream包实现转XML文档的方法

    Javabean基于xstream包实现转XML文档的方法

    这篇文章主要介绍了Javabean基于xstream包实现转XML文档的方法,结合具体实例形式分析了xstream包用于转换xml文件的具体使用技巧,需要的朋友可以参考下...

    itsonglin4392020-11-01
  • Java教程spring整合redisson开启缓存方式

    spring整合redisson开启缓存方式

    这篇文章主要介绍了spring整合redisson开启缓存方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    清墨迹染5842021-12-31