SpringBoot 默认会从使用 @SpringBootApplication 注解标注的类的当前目录开始扫描,扫描该目录以及所有子目录中的类,只要发现标注了Spring依赖管理bean的注解的类,就会自动实例化并放到 IoC 中统一管 理起来。
Spring Bean
Spring 针对 Bean 的依赖管理提供的注解
(1) @Component 可以用在任何 Spring Bean (2) @Service 用在业务逻辑层,即服务层(Service)的 Spring Bean (3) @Controller 用在 Web 层,即控制层(Controller)的 Spring Bean (4) @Repository 用在 Dao 层,即持久化层(Dao)的 Spring Bean 为了对开发者友好,分为四个不同的注解可以更清晰的分层设计 (5) @Configuration 用在配置业务的 Spring Bean 上。 (6) @Bean 用在方法上,并且方法必须有返回值 .一般和@Configuration 一起使用 @Bean 主要用于让 Spring 管理不是自己写的 Spring Bean。 可以在注解后面跟小括号,在内部指定实例在 Spring 容器中的名称。
作用域
自定义SpringBean的名称
Bean 的依赖查找和依赖注入:有两种方式 按名称查找和按类型查找
@Autowired 默认是按类型查找实现自动装配(依赖注入) 如果自动装配时找到了超过 1 个匹配类型的 bean 实例时,那么会抛出异常(required a single bean, but xxx were found)。出现该问题可以使用 @Primary 或者 @Qualifier 解决