控制反转IOC:删除new对象的代码,交给IOC容器管理,加上@Component
依赖注入DI:@Autowired ,就可以实现程序运行时IOC容器自动注入需要的依赖对象
声明bean的四大注解:
@Component
=@Controller (标注在控制层类上)
= @Service (标注在业务层类上)
= @Repository (标注在数据访问层类上)
bean的名字,默认为类名首字母小写。
bean想要生效,还需要被组件扫描@ComponentScan。
@ComponentScan注解虽然没有显式配置,但是实际上已经包含在了启动类声明注解 @SpringBootApplication 中,默认扫描的范围是SpringBoot启动类所在包及其子包。
@Autowired注解,默认是按照类型进行自动装配的(去IOC容器中找某个类型的对象,然后完成注入操作)
那如果在IOC容器中,存在多个相同类型的bean对象,会报错,解决:
@Primary
@Qualifier
在@Qualifier的value属性中,指定注入的bean的名称。
@Resource
按照bean的名称进行注入