gpt4 book ai didi

带有 mysql 配置的 Java Spring Boot 无法启动

转载 作者:行者123 更新时间:2023-11-30 23:44:35 25 4
gpt4 key购买 nike

我一直在尝试用mysql启动spring boot,一直没有成功。当我点击运行时,服务器在 sql 进行查询后几秒钟后就停止了。

2017-11-05 04:13:04.607  WARN 4648 --- [           main] .t.AbstractTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
2017-11-05 04:13:05.525 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/metrics/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.MetricsMvcEndpoint.value(java.lang.String)
2017-11-05 04:13:05.525 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/metrics || /metrics.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.526 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/beans || /beans.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.527 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/info || /info.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.528 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/mappings || /mappings.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.528 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException
2017-11-05 04:13:05.529 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/health || /health.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(javax.servlet.http.HttpServletRequest,java.security.Principal)
2017-11-05 04:13:05.531 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/auditevents || /auditevents.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public org.springframework.http.ResponseEntity<?> org.springframework.boot.actuate.endpoint.mvc.AuditEventsMvcEndpoint.findByPrincipalAndAfterAndType(java.lang.String,java.util.Date,java.lang.String)
2017-11-05 04:13:05.532 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/dump || /dump.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.532 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/trace || /trace.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.534 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/loggers/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.get(java.lang.String)
2017-11-05 04:13:05.534 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/loggers/{name:.*}],methods=[POST],consumes=[application/vnd.spring-boot.actuator.v1+json || application/json],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.LoggersMvcEndpoint.set(java.lang.String,java.util.Map<java.lang.String, java.lang.String>)
2017-11-05 04:13:05.535 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/loggers || /loggers.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.535 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/configprops || /configprops.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.536 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/autoconfig || /autoconfig.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.536 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/env/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
2017-11-05 04:13:05.537 INFO 4648 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/env || /env.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
2017-11-05 04:13:05.946 DEBUG 4648 --- [ main] org.hibernate.SQL :
select
articulo0_.id as id1_0_0_,
articulo0_.cantidad as cantidad2_0_0_,
articulo0_.codigo as codigo3_0_0_,
articulo0_.descripcion as descripc4_0_0_,
articulo0_.nombre as nombre5_0_0_
from
articulo articulo0_
where
articulo0_.id=?
2017-11-05 04:13:05.991 INFO 4648 --- [ main] c.g.i.GestorInventarioApplicationTests : Started GestorInventarioApplicationTests in 7.338 seconds (JVM running for 8.23)
2017-11-05 04:13:06.085 INFO 4648 --- [ Thread-4] o.s.w.c.s.GenericWebApplicationContext : Closing org.springframework.web.context.support.GenericWebApplicationContext@4cc8eb05: startup date [Sun Nov 05 04:12:59 COT 2017]; root of context hierarchy
2017-11-05 04:13:06.102 INFO 4648 --- [ Thread-4] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'

到此为止。

实体:

package com.gestor.inventario;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="articulo")
public class Articulo {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@Column(name="nombre")
private String nombre;
@Column(name="codigo")
private String codigo;
@Column(name="descripcion")
private String descripcion;
@Column(name="cantidad")
private int cantidad;

public Articulo() {}

public Articulo(long id, String nombre, String descripcion, String codigo, int cantidad) {
this.id = id;
this.nombre = nombre;
this.codigo = codigo;
this.descripcion = descripcion;
this.cantidad = cantidad;
}
public void setId(long id) {
this.id = id;
}

public long getId() {
return id;
}

public void setNombre(String vchNombre) {
this.nombre = vchNombre;
}

public String getNombre() {
return nombre;
}

public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}

public String getDescripcion() {
return descripcion;
}

public void setCodigo(String codigo) {
this.codigo = codigo;
}

public String getCodigo() {
return codigo;
}

public void setCantidad(int cantidad) {
this.cantidad= cantidad;
}

public int getCantidad() {
return cantidad;
}
}

播种机:

package com.gestor.inventario;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class dbSeeder implements CommandLineRunner {
private ArticuloRepository articulosRepository;

@Autowired
public dbSeeder(ArticuloRepository articulosRepository) {
this.articulosRepository = articulosRepository;
}

@Override
public void run(String... strings) throws Exception {
List<Articulo> articulos = new ArrayList<>();
articulos.add(new Articulo(1, "Nombre1", "Descripcion1", "Codigo1", 100));
articulosRepository.save(articulos);
}
}

Controller :

package com.gestor.inventario;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/articulos")
public class Controller {
private ArticuloRepository articuloRepository;

@Autowired
public Controller(ArticuloRepository articuloRepository) {
this.articuloRepository = articuloRepository;
}

@RequestMapping(value = "/all", method = RequestMethod.GET)
public List<Articulo> getAll() {
return articuloRepository.findAll();
}

@RequestMapping(value = "/insert", method = RequestMethod.POST)
public List<Articulo> insert(@RequestBody Articulo obj) {
articuloRepository.save(obj);
return articuloRepository.findAll();
}

@RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
public List<Articulo> delete(@PathVariable long id){
articuloRepository.delete(id);
return articuloRepository.findAll();
}
}

存储库:

package com.gestor.inventario;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ArticuloRepository extends JpaRepository<Articulo, Long>{

}

属性:

spring.datasource.url=jdbc:mysql://localhost:3306/dbinventory?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.tomcat.max-wait=20000
spring.datasource.tomcat.max-active=50
spring.datasource.tomcat.max-idle=20
spring.datasource.tomcat.min-idle=15

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
spring.jpa.properties.hibernate.id.new_generator_mappings = false
spring.jpa.properties.hibernate.format_sql = true

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

任务:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.gyance</groupId>
<artifactId>gestorInventario</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>gestorInventario</name>
<description>Módulo de gestión de inventarios</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


</project>

数据库:

Database

最佳答案

要使您的项目正确运行,您需要有类似的东西:

@SpringBootApplication
public class App {

public static void main(String[] args) {
SpringApplication.run(App.class);
}

}

@SpringBootApplication 包含为您自动启动 Tomcat@EnableAutoConfiguration。如果没有这一步,您的应用程序就没有理由在您的 void run(String... string) 方法退出后保持 Activity 状态!

如果您的 App 中没有 bean 配置,至少您应该包含 @EnableAutoConfiguration 而不是 @SpringBootApplication类。

关于带有 mysql 配置的 Java Spring Boot 无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47120026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com