Java 未定义[]类型的限定bean
我刚开始学习Spring,并试图制作一个基本的Spring程序,但我无法解决这个错误。代码如下: Student.javaJava 未定义[]类型的限定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
@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参数中存在错误,则调试该问题会有所帮助。检查文档并更正,这将起作用。谢谢您的建议!