有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java UnsatifiedPendencyException试图在eclipse中配置基本springboot项目

我试图在eclipse中(使用STS)配置一个基本的spring boot项目,在这个项目中,我想定义一个控制器类和一个实体类,以便在控制器中自动连接,但我遇到了一个例外。我一直想把它修好,但现在我没有主意了,有人能帮我吗

一切正常(我可以在控制器中获得一个实体对象,http请求“http://localhost:8080/index”以正确的方式返回我的视图)。。。直到我在“Entidad”类中定义了一个构造并得到了异常

这是我的代码:

package com.example.springMVC_ejemplo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringMvcBahiaProjectApplication {

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

}

package com.example.springMVC_ejemplo.controller;

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

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import com.example.springMVC_ejemplo.model.Entidad;

@Controller
public class MyController {

    List<Entidad> exampleEntityList = new ArrayList<>();

    // inject via application.properties
    @Value("${index.message}")
    private String message;

    @Autowired
    private Entidad entidad;

    @PostConstruct
    private void initExampleEntityList() {
        String nombre = entidad.getNombre();
        System.out.println("Inicializando la lista de entidades de ejemplo");
    }

    @GetMapping(value= {"/","/index"})
    public String main(Model model) {
        model.addAttribute("message", message);
        return "index";
    }

}

package com.example.springMVC_ejemplo.model;

import org.springframework.stereotype.Service;

@Service
public class Entidad {

    private String nombre;
    private String atributo1;
    private String atributo2;

    private Entidad(String nombre, String atributo1, String atributo2) {
        super();
        this.nombre = nombre;
        this.atributo1 = atributo1;
        this.atributo2 = atributo2;
    }

    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public String getAtributo1() {
        return atributo1;
    }
    public void setAtributo1(String atributo1) {
        this.atributo1 = atributo1;
    }
    public String getAtributo2() {
        return atributo2;
    }
    public void setAtributo2(String atributo2) {
        this.atributo2 = atributo2;
    }

}

我得到的例外是:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.6.RELEASE)

2020-04-07 20:26:57.072  INFO 18236 --- [           main] c.e.s.SpringMvcBahiaProjectApplication   : Starting SpringMvcBahiaProjectApplication on DESKTOP-40IFSQT with PID 18236 (C:\Users\ignac\OneDrive\Documentos\eclipse-workspace\springMVC_BahiaProject\target\classes started by ignac in C:\Users\ignac\OneDrive\Documentos\eclipse-workspace\springMVC_BahiaProject)
2020-04-07 20:26:57.075  INFO 18236 --- [           main] c.e.s.SpringMvcBahiaProjectApplication   : No active profile set, falling back to default profiles: default
2020-04-07 20:26:57.682  INFO 18236 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-04-07 20:26:57.689  INFO 18236 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-04-07 20:26:57.689  INFO 18236 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-04-07 20:26:57.742  INFO 18236 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-04-07 20:26:57.743  INFO 18236 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 639 ms
2020-04-07 20:26:57.777  WARN 18236 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myController': Unsatisfied dependency expressed through field 'entidad'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'entidad' defined in file [C:\Users\ignac\OneDrive\Documentos\eclipse-workspace\springMVC_BahiaProject\target\classes\com\example\springMVC_ejemplo\model\Entidad.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2020-04-07 20:26:57.779  INFO 18236 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2020-04-07 20:26:57.787  INFO 18236 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-04-07 20:26:57.870 ERROR 18236 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.example.springMVC_ejemplo.model.Entidad required a bean of type 'java.lang.String' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'java.lang.String' in your configuration.

提前谢谢


共 (0) 个答案