@ComponentScan-自动扫描组件
在以前,我们需要在Spring配置文件中配置<context:component-scan base-package="com.fzl"></context:component-scan>
,就能够进行包扫描,只要标注了@Component、@Controller、@Service、@Repository就可以扫描到。
现在,我们只需要通过@ComponentScan注解,就可以自动扫描组件,并且可以指定扫描规则。@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中。
- 新建3个包:dao、controller、service,并在包创建相应的java文件。这里以BookDao.java、BookService.java、BookController.java为例。并在类名处分别标记@Repository、@Service、@Controller注解。
@Repository
public class BookDao {
}
@Service
public class BookService {
}
@Controller
public class BookController {
}
- 在配置类MainConfig.java的类名上标注@ComponentScan注解。使用basePackages指定扫描的包。
//配置类===配置文件
@Configuration //告诉Spring这是一个配置类
@ComponentScan(basePackages = {
"com.fzl"})
public class MainConfig {
//给容器注册一个Bean;类型为返回值的类型。id默认是用方法名作为id