Jboot 技术文档

文档正在编写中,请移步到:https://gitee.com/fuhai/jboot/blob/master/DOC.md 查看

Jboot 在线 API 查看: https://apidoc.gitee.com/fuhai/jboot/

概述

Jboot是一个基于JFinal 和 Undertow开发的微服务框架。

提供了AOP、RPC、分布式缓存、限流、降级、熔断、统一配置中心、Swagger Opentracing、metrics、分布式session、代码生成器、jwt、shiro安全控制等功能。

开发准备

由于 Jboot 是以 Jfinal 为核心的分布式微服务框架,所以要求您对 JFinal 熟悉使用,JFinal 的官方文档:http://www.jfinal.com/doc

由于 Jboot 是使用到了 jdk8 的某些特性,所有要求你当前的 java 环境为 1.8 以上,同时注意以下配置:

Maven :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <!--  -parameters 必须添加-->
        <compilerArgument>-parameters</compilerArgument>
    </configuration>
</plugin>

IntelliJ IDEA :

Eclipse :

注意

如果不配置 -parameters ,在使用 带参数的Action 和 @Cacheable 时可能会有问题。

MVC

Controller

Controller是JFinal核心类之一,作为MVC模式中的控制器。Controller是定义Action方法的地点,是组织Action的一种方式,一个Controller包含多个Action。

Controller是线程安全的。

Action

在Controller之中定义的 public方法 称为Action。Action是一个http请求的最小单位。Action必须满足两个特点:

  • 必须在Controller中定义
  • 必须是public可见性
public class HelloController extends Controller {
    public void index() {
       renderText("此方法是一个action");
    }
    public String test() {
       return "index.html";
    }
}

以上代码中定义了两个Action:

  • HelloController.index()
  • HelloController.test()

Action可以有返回值,返回值可在拦截器中通过invocation.getReturnValue() 获取到,以便进行render控制,后续会提到。

数据接收和响应

Interceptor

文件上传

Websocket

FlashMessage

Jwt 的使用

Shiro 的使用

页面静态化

限流

ORM

ActiveRecord

Model

Record

分页查询

事务

Colomns

Sql管理

多数据源

分库分表

AOP

Google Guice

Interceptor

@Before

@Clear

@Inject

@Bean

@Singleton

缓存

简介

Ehcache

Redis

EhRedis

缓存扩展

@Cacheable

@CacheEvict

@CachePut

@CachesEvict

@EnableActionCache

模板引擎

概述

表达式

指令

扩展

RPC

概述

Hello World

配置

Dubbo

Motan

扩展

限流

降级

MQ

概述

Hello World

配置

Redis MQ

Active MQ

Rabbit MQ

QPid MQ

阿里云商业MQ

Zbus

扩展

Opentracing

事件机制

Redis

Metrics

Hystrix

统一配置

序列化

SPI

配置文件

Swagger

代码生成器

项目构建和部署

鸣谢