Jboot发布啦html
Jboot是什么呢?mysql
详情地址地址:https://git.oschina.net/fuhai/jbootgit
jboot是一个类型springboot的开源框架,基于jfinal和undertow等很是优秀的、已经在商业项目中应用多年的、有良好口碑的、性能很是不出的诸多框架开发而成。spring
Jboot是一个新的轮子,可是是集你们之所长的一个极度好用的轮子。sql
如何使用Jboot呢?数据库
<dependency> <groupId>io.jboot</groupId> <artifactId>jboot</artifactId> <version>1.0-alpha3</version> </dependency>
废话,都低coding都支持什么样的coding,有什么样的好处呢?api
咱们从几个方面来看:浏览器
@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.缓存
怎么样?是否极度简单呢?springboot
咱们继续.
表结构:
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,以上是个人我的微公众号,常常分享技术心得和生活感悟,欢迎勾搭。