[2025.2.18 JavaWeb学习]分层解耦

三层架构(分层,复用性强)

image

解耦

  • 内聚:软件中各个功能模块内部的功能联系(只把相关的功能放在一起)
  • 耦合:衡量软件中各个层/模块之间的依赖、关联程度
  • 软件设计原则:高内聚、低耦合
  • 依赖注入和控制反转:

image

  • 如何应用依赖注入与控制反转:
  • @Autowired:将容器中对应的类的bean对象赋值给该注解修饰变量
  • @Component:将某个类交给IOC容器管理

image

IOC控制反转详解

  • 一种基础声明和三种衍生bean声明:

image

  • 声明bean时,可以通过value属性指定bean的名字,如果没有指定,默认类名首字母小写
  • 使用以上四个注解都可以声明bean,但是在SpringBoot集成web开发中,声明控制器bean只能用@Controller
  • Bean组件扫描:
    • 注解想要生效,需要被组件注解@ComponentScan扫描
    • @ComponentScan虽然没有显式配置,但是已经包含在了启动类声明注解@SpringBootApplication
    • 可以手动指定要扫描哪个包

DI依赖注入详解

  • @Autowired按照类型进行注入,如果存在多个相同类型的bean,会报错,通过以下方式解决:
    • @Primary:指定某个类优先注入,写在类声明上
    • @Qualifier():指定bean,写在注入语句上面,配合@Autowired使用
    • @Resource():指定bean,不需要@Autowired,按照名称注入,与上述注解由SpringBoot提供不同,该注解由jdk提供
posted @ 2025-02-18 13:17  Luna-Evelyn  阅读(19)  评论(0)    收藏  举报