Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未定义[]类型的限定bean_Java_Spring_Spring Mvc - Fatal编程技术网

Java 未定义[]类型的限定bean

Java 未定义[]类型的限定bean,java,spring,spring-mvc,Java,Spring,Spring Mvc,我刚开始学习Spring,并试图制作一个基本的Spring程序,但我无法解决这个错误。代码如下: Student.java @Component public class Student { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 配置类 @Configuration @Comp

我刚开始学习Spring,并试图制作一个基本的Spring程序,但我无法解决这个错误。代码如下:

Student.java

@Component
public class Student {
private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
}
配置类

@Configuration
@ComponentScan("springfirst1")

public class ConfigClass {
public Student getStudent(){
    return new Student();
}
}
public class SpringFirst1 {

public static void main(String[] args) {
    ApplicationContext context = new AnnotationConfigApplicationContext("ConfigClass.class");
    Student s1 = context.getBean(Student.class);
    s1.setName("Adam");
    System.out.println(s1.getName());
}       
public class SpringFirst1 {

public static void main(String[] args) {
    ApplicationContext context = new AnnotationConfigApplicationContext(ConfigClass.class);
    Student s1 = context.getBean(Student.class);
    s1.setName("Gaurav");
    System.out.println(s1.getName());
} 
主类

@Configuration
@ComponentScan("springfirst1")

public class ConfigClass {
public Student getStudent(){
    return new Student();
}
}
public class SpringFirst1 {

public static void main(String[] args) {
    ApplicationContext context = new AnnotationConfigApplicationContext("ConfigClass.class");
    Student s1 = context.getBean(Student.class);
    s1.setName("Adam");
    System.out.println(s1.getName());
}       
public class SpringFirst1 {

public static void main(String[] args) {
    ApplicationContext context = new AnnotationConfigApplicationContext(ConfigClass.class);
    Student s1 = context.getBean(Student.class);
    s1.setName("Gaurav");
    System.out.println(s1.getName());
} 
}

错误:

Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [springfirst1.Student] is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:318)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985)
at springfirst1.SpringFirst1.main(SpringFirst1.java:13)

ApplicationContext
参数中进行以下更改可以解决此问题

主类

@Configuration
@ComponentScan("springfirst1")

public class ConfigClass {
public Student getStudent(){
    return new Student();
}
}
public class SpringFirst1 {

public static void main(String[] args) {
    ApplicationContext context = new AnnotationConfigApplicationContext("ConfigClass.class");
    Student s1 = context.getBean(Student.class);
    s1.setName("Adam");
    System.out.println(s1.getName());
}       
public class SpringFirst1 {

public static void main(String[] args) {
    ApplicationContext context = new AnnotationConfigApplicationContext(ConfigClass.class);
    Student s1 = context.getBean(Student.class);
    s1.setName("Gaurav");
    System.out.println(s1.getName());
} 
如果将@Component放在类的上方,则不需要这样做:

如果要使用java配置,必须将@Bean放在上面:

@Bean
public Student getStudent(){
  return new Student();
 }

编辑:检查Arun答案:-)

使用包声明更新Java类。如果AnnotationConfigApplicationContext参数中存在错误,则调试该问题会有所帮助。检查文档并更正,这将起作用。谢谢您的建议!