一、知识点整理
1、IOC与DI入门
1)控制反转: Inversion 0f Control,简称I0C。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转。
2)依赖注入: Dependency lnjection,简称DI。容器为应用程序提供运行时所依赖的资源,称之为依赖注入。
3)Bean对象:IOC容器中创建、管理的对象,称之为bean。
2、IOC与DI使用步骤
@Component//将当前类交给IOC容器管理,成为IOC容器中的bean
@Autowired//运行时,IOC容器会提供该类型的bean对象,并赋值给该变量 - 依赖注入
如果新建一个新的EmpControllerB类,使依赖注入从A切换为B,将A的@Component注解注释掉、B相同位置写上该注解即可。
3、声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写。使用以下四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller。
4、@SpringBootApplication具有包扫描作用,默认扫描当前包及其子包
若将包移出启动类所在的包,则在启动类@SpringBootApplication上写上注解并指定包名
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan({"other","com.example"})
@SpringBootApplication
public class SpringbootWebProject01Application {
public static void main(String[] args) {
SpringApplication.run(SpringbootWebProject01Application.class, args);
}
}
5、@Autowired注解默认按照类型进行,如果存在多个相同类型的bean,将会报错,可通过以下几种方案来解决:
@Primary
@Qualifier
@Resource
6、@Resource 与 @Autowired区别
1)@Autowired 是spring框架提供的注解,而@Resource是JDK提供的注解。
2)@Autowired 默认是按照类型注入,而@Resource默认是按照名称注入。
二、学习视频
1、B站黑马程序员JavaWeb课程https://www.bilibili.com/video/BV1m84y1w7Tb?p=79&vd_source=841fee104972680a6cac4dbdbf144b50