Spring全套

IOC容器

Javaweb开发及其解决方案

w

问题一:

需要在业务层new一个对象,new一个UserDaoImpl实现类,这就使得UserDaoImpl实现类和本方法高度耦合

解决思路:第三方根据要求为程序提供需要的Bean对象的代理对象

返回的对象是加强过的Bean对象,是通过特定方法加强过的对象,所以最后调用的不是对象,而是被加强的BeanProxy的一些方法,就能够达到对通用的方法的增强

三种思想的提出和框架概念

IOC思想指的是:创建对象的时候,不直接创建而是交给第三方来创建

DI思想指的是:如果Bean1中需要包含Bean2才能达到原有的一些效果

原先的做法是:从第三方获取Bean1和Bean2,再在程序代码中把Bean2设置给Bean1

DI思想中:把设置的步骤交给第三方,在第三方创建Bean1的时候就已经创建了Bean2,并把Bean2设置给了Bean1

Spring的概述

数据访问和web开发都是上层建筑部分,基于切面和核心容器上面存在的

BeanFactory版本

快速入门

创建第三方--->因为第三方不是我们手动编写的,而是Spring编写的,所以要导入Spring的jar包或者导入Maven坐标

编写Bean类

创建并配置配置文件--->创建对应的.xml文件,并将该类的信息配置到该XML中

编写测试代码,创建第三方,加载配置文件,获取该对象

IOC

Maven中已经配置好了核心内容:包括核心容器和切面相关

DI

告诉配置文件==告诉Bean工厂

在userServiceImpl中设置一个属性,包含name,ref两个属性,ref指的是去容器中找这个名字的类

name指的把ref当中指的容器交给userServiceImpl中属性名为name的属性

BeanFactory版本的依赖注入总结

重点是:1.在UserServiceImpl中添加一个setUserDao用于接收注入的对象

2.在xml配置文件当中嵌入<property>配置注入

3.在UserServiceImpl设置UserDao对象这个成员属性,这样之后UserServiceImpl中别的方法都可以调用这个对象

ApplicationContext版本的快速入门

ApplicationContext很多思想都源于BeanFactory

BeanFactory和ApplicationContext的关系

BeanFactory是早期的接口,主要是类方面的作用,ApplicationContext是后期的更高级的接口,有其他的功能

继承关系
"融合关系"

ApplicationContext 内部装了一个 BeanFactory 对象,所有底层的 Bean 管理工作都由它来做,ApplicationContext 只是一个 "带壳的超级工厂"。

ApplicationContext 在内部持有并使用 BeanFactory,把它作为自己实现的核心组件,而不是从零开始重写所有逻辑。

BeanFactory是在执行getBean之后才创建类
相关推荐
陈随易35 分钟前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人2 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
candyTong2 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
Rust研习社4 小时前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
IT_陈寒5 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
CaffeinePro5 小时前
Pydantic深度使用:数据校验、枚举、ORM映射
后端·fastapi
Chenyiax6 小时前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端
MariaH6 小时前
Koa和Express的区别
后端
MariaH6 小时前
Koa框架的使用
后端
luckdewei7 小时前
那个用 passlib 做认证的新同事,上线第一天就把用户密码写进了日志
后端