Jboot v3.6.9 lanzado, poderoso @JsonBody

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);
    }
}

Supongo que te gusta

Origin www.oschina.net/news/123047/jboot-3-6-9-released
Recomendado
Clasificación