notas de uso inteligente de springboot

Primero, me referí a esta publicación de blog.

https://blog.csdn.net/valada/article/details/80892573

¿Qué es Spring Boot?

La declaración oficial es:

Spring Boot es un nuevo marco basado en Spring proporcionado por el equipo de Pivotal. Su propósito de diseño es simplificar el proceso de construcción y desarrollo de aplicaciones Spring. El marco sigue el principio de "la convención es mayor que la configuración" y utiliza una forma específica de configuración, por lo que los desarrolladores no necesitan definir una gran cantidad de configuración XML. De esta manera, Spring Boot se compromete a convertirse en un líder en el floreciente campo de desarrollo rápido de aplicaciones

Debido a que las personas han estado utilizando el marco de Spring durante 14 años, antes de que Spring naciera, sabían que el archivo de configuración era complicado.

En una palabra: springboot libera nuestro archivo de configuración y enfoca más tiempo en la implementación del negocio. Construcción simplificada del proyecto, tomcat incorporado.

Además de las ventajas anteriores, springboot tiene otras ventajas, ver más abajo.

1. La configuración de la base de datos, el límite de tamaño de carga de archivos, etc., se puede establecer a través de application.properties.

2. Es conveniente para nuestra operación de embalaje, este es el punto clave.

   Debido a que solía empaquetar múltiples opciones de configuración en application.properties, comentar manualmente o dejar ir para lograr el propósito, es fácil cometer errores. Por ejemplo, hay un entorno de desarrollo, un entorno de prueba y un entorno de producción. Entonces la configuración de diferentes archivos de configuración según el servidor publicado es diferente. Entonces este es el punto.

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境名字,比如:

application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境

至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

 

Por ejemplo, lo siguiente es mío.

Simplemente escriba la configuración de entorno diferente en cada archivo de configuración.

3. Se pueden establecer variables globales

@Value

En circunstancias normales, necesitamos definir algunas variables globales. La forma en que pensaremos es definir una variable estática pública y llamarla cuando sea necesario. ¿Hay otras soluciones mejores? La respuesta es si. Como sigue:

@Value("${spring.profiles.active}")    
String active;

spring.profiles.active se define en application.properties dentro de nuestra propiedad, podemos personalizar cualquier nombre de atributo, por @Valueanotación se puede sacar.

Sus beneficios son los siguientes:

    1.定义在配置文件里,变量发生变化,无需修改代码。
    2.变量交给Spring来管理,性能更好。

4.springboot puede manejar interceptores

Cree una clase de interceptor: ApiInterceptor e implemente la interfaz HandlerInterceptor

public class ApiInterceptor implements HandlerInterceptor {
    //请求之前    
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("进入拦截器");
        return true;
    }

    //请求时   
    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
    }

    //请求完成    
    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
    }
}

@SpringBootConfiguration La clase anotada hereda la clase WebMvcConfigurationSupport y reescribe el método addInterceptors para agregar la clase interceptor ApiInterceptor. El código es el siguiente:

@SpringBootConfigurationpublic
class WebConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        super.addInterceptors(registry);
        registry.addInterceptor(new ApiInterceptor());
    }
}

El marco del interceptor springboot ha sido escrito, y la implementación comercial específica conformará el cerebro por sí mismo.

 

5. Manejo de excepciones

Puede referirse a:

https://www.cnblogs.com/xuwujing/p/10933082.html

El proyecto SpringBoot se ha ocupado de ciertas excepciones, pero puede que no sea adecuado para nuestros desarrolladores, por lo que debemos capturar y manejar estas excepciones de manera uniforme. Hay una ControllerAdviceanotación en SpringBoot . Usar esta anotación significa que la captura de excepciones globales está habilitada. Solo necesitamos usar una ExceptionHandleranotación en un método personalizado y luego definir el tipo de excepciones capturadas para manejar estas excepciones capturadas de manera uniforme.


@ControllerAdvice //全局异常补获
public class MyExceptionHandler {

    @ExceptionHandler(value =Exception.class)
    public String exceptionHandler(Exception e){
        System.out.println("未知异常!原因是:"+e);
        return e.getMessage();
    }
}

No entraré en detalles aquí. Puede consultar el artículo de este blogger, que es muy bueno.

6. Pruebas unitarias

@SpringBootTest(classes = DemoApplication.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class TestDB {
    @Test
    public void test() {
    }
}

Lo anterior es solo un marco simple para pruebas unitarias, consulte:

https://blog.csdn.net/sz85850597/article/details/80427408

Ya terminaste aquí.

 


 

51 artículos originales publicados · Me gusta 4 · Visitante 7901

Supongo que te gusta

Origin blog.csdn.net/u012174809/article/details/103023726
Recomendado
Clasificación