Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Spring CommandLineRunner需要一个找不到的bean_Spring_Api - Fatal编程技术网

Spring CommandLineRunner需要一个找不到的bean

Spring CommandLineRunner需要一个找不到的bean,spring,api,Spring,Api,一般来说,我对制作API和Spring还不熟悉 我试图使用CommandLineRunner来填充我的存储库,但它说它找不到我放在参数中所需的bean @SpringBootApplication public class DemoApplication { private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class); public static void main(S

一般来说,我对制作API和Spring还不熟悉

我试图使用CommandLineRunner来填充我的存储库,但它说它找不到我放在参数中所需的bean

@SpringBootApplication
public class DemoApplication {

    private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);

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


    @Bean
    public CommandLineRunner initializeDB(StudentRepository studentRepository){
        return (args)->{
            studentRepository.save(new Student("John1", "Doe1", "asdasda1","Comp Sci1",21));
            studentRepository.save(new Student("John2", "Doe2", "asdasda2","Comp Sci2",22));
            studentRepository.save(new Student("John3", "Doe3", "asdasda3","Comp Sci3",23));
            studentRepository.save(new Student("John4", "Doe4", "asdasda4","Comp Sci4",24));
            studentRepository.save(new Student("John5", "Doe5", "asdasda5","Comp Sci5",25));
            studentRepository.save(new Student("John6", "Doe6", "asdasda6","Comp Sci6",26));
            logger.info("The sample data has been generated");
        };
    }
}
这是我的应用程序类,下面是我的存储库类

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

import com.example.model.Student;

public interface StudentRepository extends JpaRepository<Student, Integer> {
}
import org.springframework.data.jpa.repository.JpaRepository;
导入com.example.model.Student;
公共界面StudentRepository扩展了JpaRepository{
}
有没有什么基本的东西是我缺少的?
提前感谢

如果应用程序类与其他类不在超级包中,则必须在
springboot应用程序
中指定所有应扫描的包(用于组件扫描、Spring数据存储库等)

或者使用类型安全的方法

@SpringBootApplication(scanBasePackageClasses = {ClassFromPackage1.class, ClassFromPackage2.class})

或者,将所有包移动到应用程序类包的子包中,以便所有默认机制都发生。

如果应用程序类与其他类不在超级包中,则必须在
SpringBootApplication
中指定应扫描的所有包(用于组件扫描、Spring数据存储库等)

或者使用类型安全的方法

@SpringBootApplication(scanBasePackageClasses = {ClassFromPackage1.class, ClassFromPackage2.class})
或者,将所有包移动到应用程序类包的子包中,这样所有默认机制都会发生。

最简单和明智的做法 DemoApplication(或使用
@SpringBootApplication
注释的任何类)应位于包结构的根目录下

这意味着,对于您希望spring管理其bean生命周期的任何其他类,将其移动到DemoApplication的(子)包中

换句话说,如果您的DemoApplication位于src/main/java/com/yourorg包中,那么StudentRepository应该位于src/main/java/com/yourorg(子)包中 DemoApplication(或使用
@SpringBootApplication
注释的任何类)应位于包结构的根目录下

这意味着,对于您希望spring管理其bean生命周期的任何其他类,将其移动到DemoApplication的(子)包中


换句话说,如果您的DemoApplication位于src/main/java/com/yourorg包中,那么StudentRepository应该位于(sub)包中src/main/java/com/yourorg的包

类的包结构如何?StudentRepository与应用程序类在同一个包中还是在子包中?StudentRepository位于其自己的包存储库中,而应用程序类位于其自己的包应用程序下。这两个包都位于同一个src/main/java包中以及其他任何类中您希望spring为其管理bean生命周期的SE,将其移动到(sub)DemoApplicationPackage类的包结构如何?StudentRepository与应用程序类在同一个包中还是在子包中?StudentRepository位于其自己的包存储库中,而应用程序类位于其自己的包应用程序下。这两个包都位于相同的src/main/java文件夹中您希望spring管理其bean的生命周期,将其移动到DemoApplications的(子)包中,就是这样。谢谢,就是这样。谢谢