繁体   English   中英

Spring Boot Application如何在没有@Configuration类的情况下创建bean

[英]How does a Spring Boot Application create beans without @Configuration class

我是Spring Boot Application的新手。 我想了解spring Boot Application如何在没有@Configuration类的情况下创建bean。 我看了一个示例项目,其中既没有@Bean定义也没有组件扫描,但@Autowired提供了对类的依赖。 请看下面的代码:

@RestController
public class RestController{

**@Autowired
public CertificationService certificationService;**
.
.
.
.
}

//Interface

public interface CertificationService{

public List<Certification> findAll();

}

//Implementation Class
@Transactional
@Service

public class CertificationServiceImpl{

public List<Certification> findAll(){
.
.
}

}

我对spring的有限知识告诉我,当一个类上有@Service注释时,必须有一个@ComponentScan来创建bean。 但是没有组件扫描,如何创建CertificationServiceImpl bean,以及RestController中的CertificationService自动装配如何在这里工作?

如文档中所述

... @SpringBootApplication注释等同于使用@Configuration @EnableAutoConfiguration@ComponentScan @EnableAutoConfiguration@ComponentScan ......

假设您有Spring Boot app类,例如:

package com.mypackage;

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

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

然后,默认情况下会为Spring组件扫描包com.mypackage下面的所有包。 顺便说一句,您可以指定要在@SpringBootApplication注释中直接扫描的包,而不使用@ComponentScan 更多细节在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM