内容简介: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框架集成
-
增加扩展集成包:beetlsql-solon-plugin (示例项目:solon_beetlsql_multisource)
-
增加扩展集成包:mybatis-solon-plugin(示例项目:solon_mybatis_multisource)
-
增加扩展集成包:mybatis-sqlhelper-solon-plugin
-
增加扩展集成包:weed3-solon-plugin(示例项目:solon_weed_multisource)
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项目)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 框架已就绪,专注发力内容
- 京东云战略投资EasyStack 发力布局企业云市场
- 25岁的红帽:以开源为核心 发力中国市场
- 技术驱动:前后端的协同效率从哪些方面发力推进
- PostgreSQL 11 继续带来更多性能提升,正在为 JIT 发力
- 博思廷再次发力移动布控市场 “千家计划”降低渠道合作门槛
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。