jboot是一个基于jfinal开发的一个类似springboot的开源框架【转】

jboot是一个基于jfinal、undertow开发的一个类似springboot的开源框架, 我们已经在正式的商业上线项目中使用。她集成了微服务,MQ,RPC,监控(使用了Hystrix和 Metrics)、访问隔离、容错隔离、延迟隔离、 熔断、代码生成等功能,开发者使用及其简单,同时保证分布系统的高效和稳定。

源码地址:http://git.oschina.net/fuhai/jboot

QQ交流群: 601440615

jboot demo

https://github.com/yangfuhai/jbootdemo

maven dependency

<dependency>
    <groupId>io.jboot</groupId>
    <artifactId>jboot</artifactId>
    <version>1.0-alpha3.1</version></dependency>

controller example

new a controller

@RequestMapping("/")public class MyController extend JbootController{
   public void index(){
        renderText("hello jboot");
   }}

start

public class MyStarter{
   public static void main(String [] args){
       Jboot.run(args);
   }}

visit: http://127.0.0.1:8080

mq example

config jboot.properties

#type default redis (support: redis,activemq,rabbitmq,hornetq,aliyunmq )
jboot.mq.type = redis
jboot.mq.redis.address = 127.0.0.1
jboot.mq.redis.password =
jboot.mq.redis.database =

server a sendMqMessage

 Jboot.getMq().publish(yourObject, toChannel);

server b message listener

Jboot.getMq().addMessageListener(new JbootmqMessageListener(){
        @Override
        public void onMessage(String channel, Object obj) {
           System.out.println(obj);
        }}, channel);

rpc example

type default motan (support:local,motan,grpc,thrift)
jboot.rpc.type = motanjboot.rpc.requestTimeOut
jboot.rpc.defaultPortjboot.rpc.defaultGroup
jboot.rpc.defaultVersionjboot.rpc.registryType = consul
jboot.rpc.registryName
jboot.rpc.registryAddress = 127.0.0.1:8500

define interface

public interface HelloService {
    public String hello(String name);}

server a export serviceImpl

@JbootrpcServicepublic class myHelloServiceImpl  implements HelloService {
    public String hello(String name){
         System.out.println("hello" + name);
         return "hello ok";
    }}

download consul and start (consul:https://www.consul.io/)

consul -agent dev

server b call

 HelloService service = Jboot.service(HelloService.class);
 service.hello("michael");

or server b controller

public class MyController extends bootController{

    @JbootrpcService
    HelloService service ;

    public void index(){

        renderText("hello " + service.hello());
    }}


其他请点击开源中国查看

start app

cd yourProjectPath/target/app/bin./jboot

start app and change config

cd yourProjectPath/target/app/bin./jboot --jboot.server.port=8080 --jboot.rpc.type=local

use your properties replace jboot.properties

cd yourProjectPath/target/app/bin./jboot --jboot.model=dev --jboot.server.port=8080

use jboot-dev.proerties replace jboot.properties and set jboot.server.port=8080

thanks

rpc framework:

· motan(https://github.com/weibocom/motan)

· grpc(http://grpc.io)

· thrift(https://github.com/apache/thrift)

mq framework:

· activemq

· rabbitmq

· redis mq

· hornetq

· aliyun mq

cache framework

· ehcache

· redis

core framework:

· jfinal (https://github.com/jfinal/jfinal)

· undertow (https://github.com/undertow-io/undertow)

· guice (https://github.com/google/guice)

· metrics (https://github.com/dropwizard/metrics)

· hystrix (https://github.com/Netflix/Hystrix)

author

· name:michael yang

· qq:1506615067

· email:fuhai999@gmail.com


评论区

zzhkiller

2017-06-26 08:52

牛逼是牛逼,封装的太厉害了, 不会觉得很多累赘会越来越多吗

jimmyyn

2017-06-26 15:02

完全没有必要

海哥

2017-06-28 12:04

@zzhkiller 极薄封装。

giianhui

2017-10-17 09:52

jetty 和 tomcat不能启动吗?@海哥

newajax

2017-12-19 17:20

虽然项目中没使用,但是设计思想还是可以借鉴的

小小旋风

2018-01-12 14:50

不能通过 tomcat启动吗?@海哥

海哥

2018-01-12 15:15

@小小旋风 可以的,晚点给教程吧

zhouxueliang

2018-01-20 19:59

@海哥 通过tomcat 部署有教程了么

zhouxueliang

2018-01-20 20:33

@小小旋风 通过tomcat部署有教程了么

xufu123

2018-04-26 17:09

啥时候有视频教学

xufu123

2018-05-02 17:58

谁搭过Jboot项目框架吗

热门分享

扫码入社