x7框架demo

前几天在一个QQ技术群里,有人推荐了x7框架,pull下来试试,有些特点。

1. x7-reyc和feign框架的编程模型一样, 底层是resilience4j,完全脱离了spring cloud, 更适合k8s。附上例子: 

@ReyClient(value = "127.0.0.1:8868", circuitBreaker = "", retry = true, fallback = TestFallback.class)
public interface TestServiceRemote {

  /**
* 参数io.xream.x7.reyc.Url, 优先配置的http://127.0.0.1:8868/xxx/recy/test
     */
    @RequestMapping(value = "/xxx/reyc/test")
Boolean test(CatRO ro, Url url);

@RequestMapping(value = "/xxx/reyc/test")
Boolean testFallBack(CatRO ro);

@RequestMapping(value = "/xxx/time/test", method = RequestMethod.GET)
Boolean testTimeJack();

}

public class TestFallback {

public void testFallBack(CatRO ro){

/*
* send to kafka
*/

System.out.println("fallBack");
}

public void test(CatRO ro, Url url){

/*
* send to kafka
*/

System.out.println("fallBack with Url");
}
}

已经完全脱离spring cloud, 如果不用istio等service mesh框架,x7-reyc是个很好的选择。


2. x7-repo, 这是个简单的orm框架,整合了spring boot + sqli,这个orm框架比较简单,但不是很全面,例子如下:

  CriteriaBuilder.ResultMapBuilder builder = CriteriaBuilder.resultMapBuilder();
  builder.resultKey("c.id").resultKey("c.dogId","c_id");
  builder.or().eq("d.petId", 0);
  builder.or().lt("c.time",System.currentTimeMillis());
  builder.and().in("c.dogId", Arrays.asList(0));
  builder.sourceScript("catTest c LEFT JOIN dogTest d on c.dogId = d.id");
  builder.resultWithDottedKey();
  Criteria.ResultMapCriteria resultMapped = builder.build();
  Page<Map<String, Object>> page = repository.find(resultMapped);


用起来简单,但不适合复杂的SQL. 更多的例子还是去github上找, github地址: https://github.com/x-ream/x7

从github上pull下demo,发现整个框架依赖spring boot; 要是项目没用spring boot,就得自己整合io.xream.sqli项目, 这个整合
还是很麻烦的。

posted on 2019-05-06 16:14  空至空  阅读(395)  评论(0)    收藏  举报

导航