Introducción a la bota de primavera
Spring Boot es un marco muy popular recientemente, un marco mejorado en el marco de Spring. El propósito de este marco es aumentar la velocidad de los desarrolladores, reducir la dificultad de la configuración, etc., lo que simplifica en gran medida el proceso de desarrollo. Para obtener instrucciones detalladas, consulte la documentación oficial. En el trabajo diario, hay muy pocas oportunidades para construir un entorno o marco, y la mayoría de ellos se desarrollan de forma original. Por lo tanto, cuando se le pide que construya un marco simple, surgen varias dificultades. Por ejemplo, cuando estaba construyendo un servidor, preparé una pequeña demostración. Pensé que era muy simple, pero encontré varios problemas. Descubrí que los blogs en Internet estaban hablando de algunos puntos de manera dispersa, y era difícil tener un proceso completo, incluidos los problemas que podrían encontrarse. Aquí hay un resumen detallado del proceso de construcción de un proyecto simple para referencia futura. Al mismo tiempo, este blog también es una preparación básica para el próximo blog, la construcción del servidor de proxy inversa de tengine.
Dos ventajas del boot de primavera:
1. El concepto de "Prioridad de la Convención sobre Configuración (COC)" basado en el marco de Spring y la ruta de las mejores prácticas.
2. Para las aplicaciones empresariales diarias, Spring-Boot Starter configura automáticamente el módulo de dependencia y está "fuera de la caja" (Spring-Boot-Starter convencional, como el prefijo de nombres se encuentra en el org.springframenwork.-boot paquete o el espacio de nombres).
En este artículo, continuaré introduciendo la configuración del archivo de configuración Springboot a mis amigos. Cómo usar los parámetros de configuración global, así que comencemos nuestra introducción a hoy.
Sabemos que Spring Boot admite la configuración automática de contenedores, y el valor predeterminado es Tomcat, por supuesto, también podemos modificarlo:
1. Primero, excluyimos a Tomcat en la dependencia de Spring-Boot-Starter-Web: excluye el arranque de Tomcat en el archivo POM
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions></dependency>
2. Agregar al contenedor de muelles
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactId> spring-boot-starter-jetty </artifactid> </pendency>
De esta manera, nuestro contenedor Springboot se modificará en un contenedor de embarcadero.
Para facilitar nuestra depuración, aquí hay una herramienta de depuración HTTP para usted: Postman
Hablemos sobre el archivo de configuración global de SpringBoot: Application.Properties
En el desarrollo, debemos haber encontrado tal requisito, que es modificar nuestro puerto de acceso al contenedor. Dado que Springboot carga el contenedor de forma predeterminada, la configuración del puerto se controlan, por supuesto, a través de archivos de configuración, lo cual es bastante conveniente. Solo necesitamos agregarlo en el archivo de configuración:
Server.port = 6666
De esta manera, nuestro puerto de contenedores se modificará a 6666.
También podemos establecer alias de acceso de proyecto a través de archivos de configuración:
servidor.Context-Path =/SpringBoot
De esta manera, podemos iniciar el proyecto y acceder a nuestro proyecto a través de http: // localhost: 6666/springboot1
Lo anterior es solo la punta del iceberg de la configuración del archivo de configuración de torcer. Por ejemplo, también podemos configurar la configuración de conexión de la base de datos, configurar la configuración del entorno de desarrollo, implementar la configuración del entorno y lograr un cambio sin problemas entre los dos.
Aprendamos sobre el uso del controlador de Springboot. SpringBoot nos proporciona tres anotaciones:
En el artículo anterior, utilizamos @RestController. Intentemos usar @Controller juntos:
@Controller // @ResponseBodyPublic Class RequestTest {/*** No hay restricciones en el método de solicitud* @return*/@RequestMapping (valor = "/req") public String req () {return "Success"; }}Cuando ingresamos http: // localhost: 8080/springboot1/req para ingresar en el navegador, encontramos 404
{"Timestamp": 1515332935215, "Estado": 404, "Error": "Sin mensaje disponible", "Path": "/SpringBoot1/Req"}¿Por qué es esto? Esto se debe a que @Controller debe usarse con la plantilla, por lo que abrimos el archivo Maven POM y agregamos la plantilla de SpringBoot:
<!-Template SpringBoot-> <Spendency> <MoupRupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-thymeleaf </artifactid> </pendency>
Luego encuentre plantillas en el directorio de recursos de nuestro proyecto (si no, cree una nueva, pero asegúrese de tener en cuenta que el nombre de la carpeta debe ser consistente), y luego crear un éxito.html para que comencemos el proyecto nuevamente y accedamos a la dirección en este momento, ¿está bien?
Sin embargo, debe tenerse en cuenta aquí que el desarrollo actual de nivel empresarial está separado de los extremos delanteros y traseros. Cuando hacemos servicios de back-end, solo necesitamos devolver los datos correspondientes. Por supuesto, hay otra desventaja de usar plantillas, es decir, el rendimiento causará ciertas pérdidas, por lo que todos pueden entenderlo brevemente aquí.
Como se menciona en la introducción anterior, @controlador+ @ResponseBody es equivalente a @RestController, por lo que se recomienda que use @RestController aquí.
Presentemos @RQUESTMAPPing (valor = "/req"). Creo que todos ya saben su uso. Por supuesto, esta anotación no solo puede usarse en métodos, sino que también se aplica a las clases.
@RestController //@Controller //@ResponseBody@requestmapping (value = "/test") public class requestTest {/*** No hay restricciones en el método de solicitud* @return*/@RequestMapping (value = "/req") public String req () {return "éxito"; }/** * El método de solicitud restringida es Get * @return */@RequestMapping (valor = "/req1", método = requestmethod.get) public string req1 () {return "Success"; }/** * El método de solicitud de restricción es post * @return */@requestmapping (valor = "/req2", método = requestmethod.post) public string req2 () {return "éxito"; }}Creo que cuando ves este método, ya debes saber su utilidad. Es un tipo de acceso especificado, y se puede acceder de cualquier manera sin configurar el valor predeterminado. No sé si pensé que si el método está configurado en la clase @RequestMapping, el método de la clase se heredará de forma predeterminada. Por supuesto, también puede configurarlo por separado en el método. Pruebe el problema de prioridad usted mismo.
A continuación le presentaré cómo acceder a las constantes en los archivos de configuración en el controlador. Primero agregamos el archivo de configuración:
name = hpugSage = 35Content = name: $ {name}; edad: $ {edad}Utilizamos constantes en los archivos de configuración, que son utilizados por $ {}.
A continuación inyectamos parámetros en el controlador:
// Parámetros de inyección en el archivo de configuración @Value ("$ {name}") Nombre de cadena privada; @Value ("$ {edad}") edad entera privada; @Value ("$ {content}") Contenido de cadena privada; @RequestMapping (valor = "/req3", método = requestmethod.get) public string req3 () {return "name =" + name; } @RequestMapping (valor = "/req4", método = requestmethod.get) public string req4 () {return "age =" + edad; } @RequestMapping (valor = "/req5", método = requestmethod.get) public string req5 () {return "content =" + content; }Comience nuestro proyecto e intente visitarlo.
Si se siente insatisfecho con este uso, aquí hay otro truco: usamos archivos de configuración de mapeo de clases y usamos clases para usar parámetros. Es más conveniente que inyectar un solo parámetro. Primero, crea una clase de Java
@Componente@configurationProperties (prefix = "userInfo") public class UserInfo {private String Names; edad de entero privado; Contenido de cadena privada; public entero getAge () {return Age; } public String getNames () {devuelve nombres; } public void setNames (nombres de cadenas) {this.names = nombres; } public void setAge (edad entera) {this.age = edad; } public String getContent () {return content; } public void setContent (contenido de cadena) {this.content = content; }}Luego establezca los parámetros en nuestro archivo de configuración:
userInfo.names = Little Broken Child UserInfo.age = 25userInfo.Content = name: $ {userInfo.names}; edad: $ {userInfo.age}Cableado para hacer nuestro controlador:
// Inyect Object @autewired private userInfo userInfo; @RequestMapping (valor = "/req6", método = requestmethod.get, produce = "text/sencillo; charset = utf-8") public string req6 () {return "name =" + userInfo.getNames (); } @RequestMapping (valor = "/req7", método = requestmethod.get) public string req7 () {return "Age =" + userInfo.getage (); } @RequestMapping (valor = "/req7", método = requestmethod.get) public string req7 () {return "Age =" + userInfo.getage (); } @RequestMapping (valor = "/req8", método = requestmethod.get) public string req8 () {return "content =" + userInfo.getContent (); }Ok, intente reiniciar nuestra visita al proyecto.
Amigos, ¿no sabes si te encuentras con este problema? Hay código chino confuso. En primer lugar, no te preocupes. Veamos otro archivo de configuración de SpringBoot: Application.yml. Este archivo de configuración reemplaza ";" por los espacios Newline. Echemos un vistazo a cómo configurar la misma configuración en YML:
servidor: puerto: 8888 context-path: /springboot1name: hpugsage: 35content: name: $ {name}; edad: $ {edad} userInfo: nombres: little kid edad: 25 contenido: name: $ {userInfo.names}; edad: $ {userinfo.age}Ahora comencemos el proyecto y lo intentemos.
Volviendo a la pregunta confusa anterior, ¿no hay confusión cuando usamos YML? ¿Estás un poco deprimido? ¿Por qué es esto? Esto se debe a que el archivo .properties utiliza el formulario de codificación unicode, por lo que aparecerá un código confuso cuando ingresemos chino. Por supuesto, hay otra razón para el código confuso, es decir, la configuración de codificación que puedo ser inconsistente con el front-end. Agregamos esto al archivo de configuración:
Spring: http: codificación: fuerza: verdadero charset: utf-8 habilitado: trueserver: tomcat: uri-coding: utf-8
para controlar. Aquí hay algunos consejos de desarrollo. SpringBoot nos proporciona soluciones a diferentes archivos de configuración en diferentes entornos de desarrollo:
Formato #ML Spring: Perfiles: Active: Prod#.Properties Format Spring.Profiles.Active = dev
Resumir
Lo anterior es el tutorial sobre el uso de un archivo de configuración Spring-Boot-Starter-Web que el editor le presentó sobre las dificultades encontradas en el desarrollo de arranque de primavera. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!