Jboot es un marco de microservicio desarrollado basado en JFinal, JFinal-Undertow, Dubbo, Seata, Sentinel, ShardingSphere, Nacos, etc., para ayudar a los desarrolladores a reducir el umbral para el desarrollo de microservicios. Al mismo tiempo, admite perfectamente múltiples módulos maven bajo idea y eclipse, y archivos de recursos de carga en caliente como código java, html, css, js, etc. Desarrollo de Shuangshuang, vida feliz.
Hasta ahora, Jboot ha sido de código abierto durante más de 4 años, ha iterado más de 160 versiones y ha sido utilizado por más de 1,000 empresas, incluidas muchas empresas cotizadas conocidas.
Jboot V3.6.9 mejora principalmente las capacidades de interacción y representación de Jboot y Json front-end. La anotación @JsonBody se agrega para recibir datos Json front-end y refactorizar ErrorRender, que puede ser amigable para el front-end cuando ocurre un error de programa. Experiencia.
@JsonBody es muy poderoso. Por ejemplo, el contenido de Json que se pasa desde la interfaz es el siguiente:
[1,2,3]
Los siguientes métodos pueden recibir datos normalmente:
public void method1(@JsonBody() int[] beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method2(@JsonBody() String[] beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method3(@JsonBody() List beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method4(@JsonBody() Set beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method5(@JsonBody() List<Integer> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method6(@JsonBody() Set<Integer> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method7(@JsonBody() List<String> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
public void method8(@JsonBody() Set<String> beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
Si la interfaz pasa los siguientes datos Json:
{
"aaa":{
"bbb":[1,2,3]
}
}
Simplemente agregue el prefijo correspondiente a @JsonBody, por ejemplo:
public void method1(@JsonBody("aaa.bbb") int[] beans) {
System.out.println("beans--->" + beans);
renderText("ok");
}
El soporte para Java Bean también es muy amigable. Por ejemplo, el código de MyBean es el siguiente:
public class MyBean {
private String id;
private int age;
private BigInteger amount;
//getter setter
}
Los datos entrantes del front-end son los siguientes:
{
"aaa":{
"bbb":{
"id":"abc",
"age":17,
"amount":123
}
}
}
El código de recepción de back-end del controlador es el siguiente:
public void bean(@JsonBody("aaa.bbb") MyBean bean) {
System.out.println("bean--->" + bean);
renderText("ok");
}
O bien, el backend puede usar directamente un mapa para recibir:
public void map(@JsonBody("aaa.bbb") Map map) {
System.out.println("map--->" + map);
renderText("ok");
}
También puede especificar directamente el tipo de datos del mapa utilizando la recepción del mapa:
public void map(@JsonBody("aaa.bbb") Map<String, String> map) {
System.out.println("map--->" + map);
renderText("ok");
}
Si la interfaz pasa en una matriz de Bean, por ejemplo:
{
"aaa":{
"bbb":[
{
"id":"abc",
"age":17,
"amount":123
},
{
"id":"abc",
"age":17,
"amount":123
}
]
}
}
El backend puede recibir datos de las siguientes formas, por ejemplo:
public void list(@JsonBody("aaa.bbb") List<MyBean> list) {
System.out.println("list--->" + list);
renderText("ok");
}
o
public void set(@JsonBody("aaa.bbb") Set<MyBean beans) {
System.out.println("array--->" + beans);
renderText("ok");
}
o
public void array(@JsonBody("aaa.bbb") MyBean[] beans) {
System.out.println("array--->" + beans);
renderText("ok");
}
@JsonBody tiene más soporte, el espacio es limitado y no hay más ejemplos.
Jboot tiene principalmente las siguientes características:
- 1. Rápido desarrollo de MVC + ORM basado en JFinal
- 2. Basado en la subtabla de subbase de datos y transacciones distribuidas de ShardingSphere + Seata
- 3. Implementación de RPC basada en Dubbo o Motan
- 4. Limitación y degradación de la corriente distribuida basada en centinelas
- 5. Centro de configuración distribuido basado en Apollo y Nacos
- 6. Caché secundario distribuido basado en EhCache y Redis
Las actualizaciones de Jboot v3.6.9 son las siguientes:
- Nuevo: AttachmentManager agrega varios métodos para guardar archivos.
Nuevo: El parámetro del controlador agrega soporte para @JsonBody.
Nuevo: El módulo de herramientas Http agrega más configuraciones para facilitar la configuración de https en modo fatjar.
Nuevos certificados : Juicio automático de ErrorRender ¿El front-end requiere renderizado json? Cuando el encabezado de la solicitud es application / json, el json incorrecto se renderiza automáticamente.
Optimización: JbootSimpleApplication para hacer el código más conciso.
Optimización: Interceptor de caché optimizado para construir la clave del método para mejorar el rendimiento.
Optimización: Agregar JbootAccessTokenCache de forma predeterminada 2 horas de tiempo de almacenamiento en caché
Optimización: LocalAttachmentContainer, al guardar archivos de forma predeterminada, se realiza la misma verificación de archivo en el archivo.
Optimización: JwtManager devuelve un mapa constante cuando hay un error o no hay datos de Jwt en el análisis de Jwt.
Optimización: Actualice JFinal, Undertow, Jackson, etc. a la última versión
Documentos de desarrollo:
https://jbootprojects.gitee.io/docs/
Al mismo tiempo, Jboot lanzó oficialmente el marco de desarrollo de nivel empresarial JbootAdmin, detalles https://jbootprojects.gitee.io/docs/jbootadmin/
dependencia de maven:
<dependency>
<groupId>io.jboot</groupId>
<artifactId>jboot</artifactId>
<version>3.6.9</version>
</dependency>
Hola Mundo:
@RequestMapping("/")
public class HelloworldController extends JbootController {
public void index(){
renderText("hello world");
}
public static void main(String[] args){
JbootApplication.run(args);
}
}