1.三层架构
- Controller:控制层,接收前端请求,对请求进行处理,并响应数据
- service:业务逻辑层,处理具体的业务逻辑
- dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增删改查
2.分层解耦
- 内聚:软件中各个功能模块内部的功能联系
- 耦合:衡量软件中各个层
- 软件设计原则:高内聚低耦合
- 控制反转:Inversion Of Control(IOC)。对象的创建控制权由程序自身转移到外部容器
- 依赖注入:Dependency Injection(DI)。容器为应用程序提供运行时,所依赖的资源
- Bean对象:IOC容器中创建、管理的对象
3.IOC&DI入门
- @Component:将当前类交给IOC容器管理,成为IOC容器中的bean
- @Autowired:运行时,IOC容器会提供该类型的bean对象,并赋值给该变量(依赖注入)
4.IOC详解
Bean声明
要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:
Bean组件扫描
- 前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描
- @ComponentScan注解虽然没有显示配置,但是实际上已经包含在了启动类声明注解@SpringBootApplication中,默认扫描的范围是启动类所在包及其子包
5.DI详解
Bean注入
@Resource和@Autowired区别
- @Autowired是Spring框架提供的注解,@Resource是JDK提供的注解
- @Autowired默认按照类型注入,@Resource默认按照名称注入