文档章节

Jboot发布啦,如果你做微服务架构,你应该看看。

理工男海哥
 理工男海哥
发布于 2017/06/21 16:31
字数 1276
阅读 3716
收藏 66
点赞 7
评论 26

Jboot发布啦

 

Jboot是什么呢?

详情地址地址:https://git.oschina.net/fuhai/jboot

jboot是一个类型springboot的开源框架,基于jfinal和undertow等非常优秀的、已经在商业项目中应用多年的、有良好口碑的、性能非常不出的诸多框架开发而成。

Jboot是一个新的轮子,但是是集大家之所长的一个极度好用的轮子。

如何使用Jboot呢?

第一步:maven依赖。

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

 

第二步:coding

废话,都低coding都支持什么样的coding,有什么样的好处呢?

 

我们从几个方面来看:

一、mvc

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

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

 

启动main方法,然后访问 http://127.0.0.1:8088,然后你就能看到浏览器输出:hello jboot.

 

怎么样?是否极度简单呢?

 

我们继续.

 

 

二、数据库查询。

表结构:

  CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `login_name` varchar(32) DEFAULT NULL,
  `password` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

 

在resources下创建jboot.properties文件,并配置如下:

  jboot.datasource.type=mysql
  jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo
  jboot.datasource.user=root
  jboot.datasource.password=

 

然后简单改造下刚才的controller:

@RequestMapping("/")
public class MyController extend JbootController{   
    public void index(){
        List<Record> records = Db.find("select * from `user`");
        setAttr("users",records);
        render("index.html");
    }

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

 

因为我们用到了html,所以我们在resource下建立一个index.html来渲染数据。html的内容如下:

<html >
<head>
    <meta charset="UTF-8">
    <title>users</title>
</head>
<body>
#for(user : users)
   #(user.login_name)<br />
#end
</body>
</html>

 

启动main方法,访问页面后,页面显示了数据库列表的数据。

 

OK,实际上这些都是小case,来个复杂的。

 

三:微服务

微服务是什么呢?在大型的系统里面,比如京东。实际上有很多个“项目”组成的,每个“项目”都可以理解为一个服务,把大型的项目拆分成多个微小的服务就是微服务了。

 

微服务有什么好处呢?大家可以试想一下,如果我们把所有的功能都写在一个“项目”里面,如果说其中一个小模块除了点问题,我们重新升级这个小模块,那就需要我们对整个项目重新部署,这个过程中可能就会中断服务。

 

比如说,京东的快递查询模块出现问题了,不肯能因为升级而重启整个京东网站。

 

这个时候就只能把每个模块都做成一个“项目”或者叫“服务”。

 

但是这个时候,京东网想要去读取这个“项目”的数据,怎么办呢?我们可以让这个项目提供一个api接口,然后让需要这个数据的项目去调用这个接口。

 

但是,这样还是很麻烦。

 

在众多的项目中,都使用到了一种技术,叫RPC,也就是remote procedure call的简写。翻译过来叫远程过程调用,再简单点就理解为“远程调用”好了,

也就是我们在我们的项目里,只要调用 xxx.aaa() 这样,就调用到了远程服务器的 aaa() 方法了。

 

RPC的开源框架,市面上有很多,比如google的grpc,tiwtter的thirft,淘宝的dubbo,新浪的motan。

 

Jboot集成了 grpc、thirft和motan(为什么不要dubbo呢?因为好几年没维护了),所以在jboot中使用rpc,极致、简单、爽!

 

首先需要我们定义个接口,接口中不要有任何的实现。代码如下:

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

然后只需要我们在项目A中,写我们自己的一个类,实现这个接口,一般叫service类。代码如下:

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

注意:在实现类中添加@JbootrpcService注解。

 

然后在我们的另个项目,暂且叫项目B,在这个项目中代码如下:

public class MyController extends bootController{

    @JbootrpcService
    HelloService service ;

    public void index(){
        renderText("hello " + service.hello());
    }

}

定义个HelloService接口,也是用@JbootrpcService注解,就可以爽快在在项目B中调用项目A的接口了。

 

当然,还需要给jboot做个简单的配置:

jboot.rpc.type = motan
jboot.rpc.registryType = consul
jboot.rpc.registryAddress = 127.0.0.1:8500

下载consul到本地计算机,然后执行命令

consul -agent dev

注:consul 下载地址 http://consul.io

 

一旦涉及到微服务,更多的只是好包括了如何防止微服务雪崩、如何对为辅的调用统计、如何对微服务的跟踪,如果对微服务的路由,这些实际上Jboot已经支持,但是并非这篇文字能写的完的了。

 

实际上、Jboot一样支持类型spring的ioc和aop,支持了众多的mq(activeMQ、rabbitMQ,阿里云商业MQ等等)和 良好的缓存机制、事件机制等等等等。

 

更多功能,等你来发现了...

 

Jboot 开源地址:https://git.oschina.net/fuhai/jboot

 

 

个人微信公众号

我是某上市公司的CTO,以上是我的个人微信公众号,经常分享技术心得和生活感悟,欢迎勾搭。

© 著作权归作者所有

共有 人打赏支持
理工男海哥

理工男海哥

粉丝 819
博文 36
码字总数 35675
作品 5
昌平
其他
加载中

评论(26)

s
shej123
不错,赞一个。
l
langzheren

引用来自“菜屌算不算”的评论

是我孤陋寡闻了 jfinal 还真没听到过:fearful:

引用来自“michaely”的评论

没关系,你会听到的,因为下年JFinal会连续第6年获得中国最受欢迎的开源软件第一名。@JFinal

引用来自“BlueBing”的评论

今年JFinal大概是要翻车了
厉害
BlueBing
BlueBing

引用来自“菜屌算不算”的评论

是我孤陋寡闻了 jfinal 还真没听到过:fearful:

引用来自“michaely”的评论

没关系,你会听到的,因为下年JFinal会连续第6年获得中国最受欢迎的开源软件第一名。@JFinal
今年JFinal大概是要翻车了
晴朗320
晴朗320

引用来自“piaohao”的评论

源码已读完,项目结构清晰简洁,代码美观大方,学习了:smile:
读完源码,就给点建设吧
晴朗320
晴朗320

引用来自“JFinal”的评论

在 jfinal 之下玩微服务最好的框架,大量有价值的技术组合,对微服务实践有很大的参考价值,赞一个
开山元祖都这么说了,看来这框架错不了。。
gofree
gofree
赞一个,正常应用 jboot 比jfinal 能简化多少代码?
z
zhoufei_zh
关注一下
菜屌算不算
菜屌算不算

引用来自“菜屌算不算”的评论

是我孤陋寡闻了 jfinal 还真没听到过:fearful:

引用来自“michaely”的评论

没关系,你会听到的,因为下年JFinal会连续第6年获得中国最受欢迎的开源软件第一名。@JFinal
牛逼,但是还是不敢用。
迷失烧饼

引用来自“piaohao”的评论

源码已读完,项目结构清晰简洁,代码美观大方,学习了:smile:

引用来自“michaely”的评论

能读源码的人,一般都是牛人。:+1:
主要还是的源码写得好,才有法读的懂嘛
江南红衣
江南红衣
有空研究一下
Jboot 1.0 正式版发布,天下武功,唯快不破

Jboot终于迎来了1.0正式版本的发布,依赖Jfinal最新版本3.3,它已经历时6个月,发布超过了20个版本。 Jboot定位在大型分布式项目、微服务和高并发,它已经完成了类SpringCloud的功能,而且比...

michaely ⋅ 2017/11/22 ⋅ 49

jboot 1.0-beta1 发布,基于 Jfinal 类似 SpringBoot 的框架

Jboot又发新版本了,具体地址:https://git.oschina.net/fuhai/jboot jboot 1.0-beta1 changes更新如下: 1、重构shiro模块,使其支持shiro.ini配置,方便其他项目迁移。2、新增JbootRedisL...

michaely ⋅ 2017/07/14 ⋅ 11

后台管理框架 - jboot-admin

项目介绍 jboot-admin是基于强大的微服务框架jboot开发的后台管理框架,采用微服务架构设计思想,分为api层、服务实体层、服务调用层、服务实现层、服务基础层,涵盖了jboot提供的大部分功能...

Rlax ⋅ 01/15 ⋅ 0

Jboot v1.2.3 新增 J2Cache 适配及限流功能

Jboot是一个基于JFinal 和 undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Opentracing数据追踪、metrics数据监控、分布式session、代码生成器、s...

michaely ⋅ 01/04 ⋅ 7

Rlax/jboot-admin

项目介绍   jboot-admin为使用强大的微服务框架jboot开发的后台管理系统,完全按照微服务思路设计开发,可用作后台系统项目脚手架,涵盖了jboot提供的大部分功能,包含代码生成、认证权限、...

Rlax ⋅ 01/11 ⋅ 0

Jboot v1.5.7 发布,优化细节、正常更新

Jboot 是一个基于 JFinal 和 Undertow 开发的微服务框架。提供了 AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Opentracing 数据追踪、metrics 数据监控、分布式 session、代码生...

理工男海哥 ⋅ 06/15 ⋅ 0

一个基于 JFinal 的微服务框架-Jboot

JBoot 是什么 Jboot,专为大型分布式项目和微服务而生。她是一个基于jfinal 和 undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、swagger api自动生...

michaely ⋅ 2017/06/05 ⋅ 40

Jboot v1.1.8 发布,优化细节,增强稳定。

Jboot v1.1.8 发布了,从Jboot 发布1.0正式版到现在,大家能看到几乎没有新增功能,而是一直在优化,修改bug也不多,实际上,Jboot得益于 JFinal、Dubbo、Motan、Hystrix、Undertow 等这些优...

michaely ⋅ 2017/12/15 ⋅ 7

2017 年,开启了 IT 架构的新纪元

今年,微服务,容器和云非常普遍。6月份,Evans Data Corp 进行的一项调查显示,几乎一半的云开发人员正在使用不可变的架构和微服务。有几项新服务是用于管理微服务,包括一些大的科技公司的...

周其 ⋅ 2017/12/28 ⋅ 4

Jboot v1.2.8 发布,重构 Metric,修复 RPC 若干问题

Jboot是一个基于JFinal 和 undertow开发的微服务框架。提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Opentracing数据追踪、metrics数据监控、分布式session、代码生成器、s...

michaely ⋅ 01/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java软件工程师简历中项目经验怎么写?

作者:暗灭 链接:https://www.zhihu.com/question/20695310/answer/180691302 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 直接给你贴个我自己的简历...

颖伙虫 ⋅ 26分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部