如果你理解了@ComponentScan,那么你就理解了Spring。
Spring是一个依赖注入(dependency injection)框架,所有的内容都是关于bean的定义及其依赖关系。
定义Spring Beans的第一步是使用正确的注解-@Component或@Service或@Repository或@Controller
但是,Spring不知道你定义了哪个bean?除非它知道从哪里可以找到这个bean。
@ComponentScan做的事情就是告诉Spring从哪里找到bean。
由你来指定哪些包需要被扫描。一旦你指定完,Spring将会在被指定的包及其下级的包(sub packages)中寻找bean,也就是自动扫描包下所有使用@Service、@Component、@Repository和@Controller的类。
@ComponentScan
叙述完理论部分,咱们就“真刀实枪”捣鼓捣鼓@ComponentScan到底怎么用?如果你有兴趣可以先看一下下边的@SpringBootApplication,看完之后再回来看@ComponentScan更会恍然大悟,原来还可以这样搞。
咱们继续,有好奇心的宝宝可能先看了下边所讲的@SpringBootApplication会有疑问,如何用@ComponentScan实现相同的功能呢?这时候@ComponentScan要出山了,仔细看~
小编加了一个配置类,那么这个配置类在这里起什么作用呢?请继续往下看~
配置类
package com.itcast.config;
import org.springframework.context.annotation.ComponentScan;
//该注解默认会扫描该类所在的包下所有的配置类
//@ComponentScan
//配置类=配置文件
@Configuration //告诉Spring这是一个配置类
@ComponentScan("com.itcast") //现在扫描的是com.itcast包下所有的类
public class BeanConfig
{
}
主程序
package com.itcast;
import com.itcast.config.BeanConfig