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项目)

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

查看所有标签

猜你喜欢:

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

Python Machine Learning

Python Machine Learning

Sebastian Raschka / Packt Publishing - ebooks Account / 2015-9 / USD 44.99

About This Book Leverage Python' s most powerful open-source libraries for deep learning, data wrangling, and data visualization Learn effective strategies and best practices to improve and opti......一起来看看 《Python Machine Learning》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具