Solon 1.1.6 发布,发力集成

栏目: 软件资讯 · 发布时间: 4年前

内容简介:Solon 是一个微型的Java开发框架。强调:克制 + 简洁 + 开放的原则。力求:更小、更快、更自由的体验。 所谓更小: 内核0.1m,最小web开发单位1m(相比Springboot项目包,小到可以乎略不计了) 所谓更快: 本机h...

Solon 是一个微型的 Java 开发框架。强调:克制 + 简洁 + 开放的原则。力求:更小、更快、更自由的体验。

所谓更小:

内核0.1m,最小web开发单位1m(相比Springboot项目包,小到可以乎略不计了)

所谓更快:

本机helloworld测试,qps达10万之多。可参考:《helloworld_wrk_test

所谓更自由:

代码操控自由:

//可以容器自动
@XController
public class DemoController{
    @XInject("${db}")
    Map<String,String> db;
    
    @XInject
    UserService userService;
    
    @XMapping("/user/update")
    public void udpUser(UserModel user){
        userService.updateById(user);
    }
}

//可以按需手动
Map<String,String> db = XApp.cfg().getMap("db");
UserService userService = Aop.get(UserService.class);
XApp.global().post("/user/update", x-> userService.updateById(x.paramMap()));

框架选择自由:

可以用solon-web这样的快速开发集成包。也可以按项目需要选择不同的插件组装,比如:为非Solon项目添加solon.boot.jlhttp,0.1m即可让项目实现http+mvc支持。

此次版本以集成第三方框加为主,更新如下:

1、ORM框架集成

2、RPC框架集成

  • 增加扩展集成包:dubbo-solon-plugin(示例项目:solon_dubbo_sml
//接口定义
public interface HelloService {
    String sayHello(String name);
}

//Provider
@Service
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String name) {
        return "hello, " + name;
    }
}

//Consume
@XController
public class DubboConsumeDemo {
    @Reference
    HelloService helloService;

    @XMapping("/")
    public String home() {
        return helloService.sayHello("noear");
    }
}

3、Job框架集成

  • 增加扩展集成包:cron4j-solon-plugin (示例项目:solon_schedule
@Cron4j(cron5x = "*/1 * * * *", name = "job1")
public class Cron4jRun1 implements Runnable {
    @Override
    public void run() {
        System.out.println("Hello world!");
    }
}

@Cron4j(cron5x = "*/1 * * * *")
public class Cron4jTask extends Task {
    @Override
    public void execute(TaskExecutionContext context) throws RuntimeException {
        System.out.println("Hello world!");
    }
}
  • 增加扩展集成包:quartz-solon-plugin (示例项目:solon_schedule
@Quartz(cron7x = "0 0/1 * * * ? *")
public class QuartzRun1 implements Runnable {
    @Override
    public void run() {
        System.out.println("Hello world!");
    }
}

@Quartz(cron7x = "0 0/1 * * * ? *")
public class QuartzJob implements Job {
    @Override
    public void execute(JobExecutionContext ctx) throws JobExecutionException {
        System.out.println("Hello world!");
    }
}

4、RESTful client框架集成

  • 增加扩展集成包:feign-solon-plugin (接口需要些RequestLine配置)
public interface RemoteService {
    @RequestLine("GET /users/get1?name={name}")
    String getOwner(@Param(value = "name") String name);

    @RequestLine("GET /users/get2?name={name}")
    User get2(String name);
}

@XMapping("demo")
@XController
public class DemoController {
    @FeignClient(url = "http://127.0.0.1:8080", path = "/users/")
    RemoteService2 service;

    @XMapping("test")
    public String test() {
        String result = service.getOwner("scott");

        return result;
    }
}

  • 增加扩展集成包:fairy(接口默认不需要配置)
public interface UserService {
    UserModel getUser(Integer userId);
}

@XMapping("demo")
@XController
public class DemoController {

    //直接指定服务端地址
    @FairyClient("http://localhost:8080/user/")
    UserService userService;

    //使用负载
    @FairyClient("local:/user/")
    UserService userService2;

    @XMapping("test")
    public void test() {
        UserModel user = userService.getUser(12);
        System.out.println(user);

        user = userService2.getUser(23);
        System.out.println(user);
    }
}

/**
 * 定义一个负载器(可以对接发现服务)
 * */
@XBean("local")
public class RpcUpstream implements XUpstream {
    @Override
    public String getServer() {
        return "http://localhost:8080";
    }
}

5、其它一些框架集成

  • 增加扩展集成包:hasor-solon-plugin(示例项目:solon_dataway,可启动dataway项目)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

腾讯产品法

腾讯产品法

李立 / 浙江大学出版社 / 2018-1 / 49元

从QQ到微信,从《英雄联盟》到《王者荣耀》,腾讯公司凭借强大的产品力成为世界互联网企业中的佼佼者,其“小步快跑,试错迭代”的产品开发机制,“别让我思考”的极简主义理念,“变成白痴级用户”的用户驱动战略,都成为整个中国互联网行业竞相学习的典范。 本书向读者完整地呈现了腾讯产品设计的底层思路,阐述了设计者如何发现问题、定义问题、拆解问题的全过程,从“产品思维”出发,以需求、战略、产品设计开发与运......一起来看看 《腾讯产品法》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具