Solon 1.1.6 发布,发力集成

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

内容简介: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项目)

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

查看所有标签

猜你喜欢:

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

代码2.0

代码2.0

(美)劳伦斯·莱斯格 / 李旭、沈伟伟 / 清华大学出版社 / 2009-7-1 / 48.00

《代码2.0:网络空间中的法律》在西方发达国家已成为法律学、公共管理学、商学、传播学、政治学和信息科学技术专业的必读书目。对于政府管理者、法律执业者、ICT企业管理者、创意产业从业者和广大信息工程技术人员来说,这的确是一本能够启迪思维的难得之作。在众多以网络为主题的书籍中,这是一本问世近10年但居然没有过时的书!于是,它成为了经典之作,荣膺学术名著和畅销读物两项桂冠。一起来看看 《代码2.0》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

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

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具