Noticias del viento
¡Hoy leí un blog que Spring Boot mató a Maven! Siempre quise construirlo yo mismo.
Construye el proyecto
Ingrese a este sitio web para generar un proyecto de demostración de SpringBoot.
De la siguiente manera: Después de
exportar el proyecto, descomprímalo y colóquelo en un directorio y luego viértalo en IDEA.
Estos pocos incluyen muchas, muchas dependencias centrales. Después de la importación básica, no necesitamos preocuparnos demasiado por las cosas relacionadas con Spring. Si desea utilizar dependencias directas de terceros, consulte build.gradle a continuación para obtener más detalles.
Importar proyecto
Seleccione abrir y luego seleccione su proyecto descomprimido. Generalmente, se llamará demostración después de la descompresión. Si hay un conflicto, cambie el nombre usted mismo.
Luego, elija un entorno JDK y está bien pasar al siguiente paso.
El problema en la esquina inferior derecha de la imagen se debe a que mi versión de Gradle es demasiado alta y la versión de mi idea es demasiado baja.
Sin embargo , si el conjunto de versiones es demasiado bajo o no es la versión especificada, se informará un error como se muestra a continuación:
Entonces, para evitar el problema anterior, configuramos 5.6 .1 Después de la configuración, aparecerá una ventana emergente en la esquina inferior derecha que se muestra en la figura siguiente, seleccione Activar importación automática.
Luego seleccionamos Build -> Build Project
Necesitamos abrir la configuración del módulo y seleccionar el JDK que tenemos instalado.
Primero seleccione el directorio raíz del proyecto, Comando + tecla Abajo o Mi Fn + F4 puede abrirlo.
Luego seleccione Construir -> Construir proyecto nuevamente
Configuración del proyecto
La mayor parte de la configuración del proyecto se ha seleccionado cuando regeneramos.
build.gradle content
plugins {
id 'org.springframework.boot' version '2.3.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
}
group = 'com.lyd'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3'
implementation 'com.alibaba:druid-spring-boot-starter:1.1.10'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'mysql:mysql-connector-java'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
}
test {
useJUnitPlatform()
}
Contenido del archivo application.properties
#datasource
spring.datasource.url=jdbc:mysql://localhost:3306/credit?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#set tomcat port context
#端口被占用的话就换一个
server.port=8082
server.servlet.context-path=/demo
En la nueva versión, server.context-path ha sido invalidado. Después de establecer una ruta de acceso unificada, no tendrá efecto. Modifíquelo a server.servlet.context-path .
Contenido en el archivo application.yml
#spring的配置
spring:
datasource:
name: sqldata
url: jdbc:mysql://localhost:3306/credit?characterEncoding=UTF-8 #配置在 配置中心
username: root #配置在 配置中心
password: 123456 #配置在 配置中心
# 使用druid数据连接池
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 'x' FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
aop:
proxy-target-class: true
#把内置的tomcat 参数 配置在 properties文件中,以便日后使用配置中心
# #tomcat容器的配置
#server:
# context-path: /lyd
# port: 8082
#mybatis的配置
mybatis:
type-aliases-package: com.lyd.demo.mapper
mapper-locations: classpath*:mappings/**/*.xml
Código de prueba simple
Configuración de arranque SpringBoot
Podemos consultar el código en el paso 2:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
Comienza el servicio
Somos un proyecto gradle, usamos
./gradlew rootRun
No importa si el progreso alcanza el 75%, está bien. Cuando vemos que no hay errores ni ocupaciones de puertos en la figura siguiente, es exitoso:
A continuación, visitamos http: // localhost: 8082 / demo / hello? Name = xxxxxx con
éxito!
Fuera de servicio
Después de leer muchos servicios de detención, el más simple es ver el ID del proceso de servicio y ejecutarlo directamente:
kill -9 [pid] 如:kill -9 800
¿Cómo comprobamos el pid?
El primero:
ps -ef | grep [Application名称,只要能查到就行]
如:ps -ef | grep DemoApplication
Luego puede ver que el segundo número en la figura a continuación es el ID del proceso, luego ejecute kill -9 1268.
El segundo tipo: Cuando
ejecutamos ./gradlew bootRun, veremos la siguiente figura:
¿Hay un ID de proceso que coincida con nosotros? El primer método encontró lo mismo.
Bien, ejecutemos kill -9 1268
Otro punto es que volvemos a ejecutar el ./gradlew bootRun después de matarlo, cuando iniciamos el servicio tenemos que esperar un poco más, que puede que no se inicie tan rápido, lo que nos lleva a seguir solicitando 404.