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之后才创建类
相关推荐
锋行天下8 分钟前
服务器 Python 2.7 装不了 langgraph-cli?用本地生成 Dockerfile 曲线救国
人工智能·后端·python
桦说编程23 分钟前
TransmittableThreadLocal 解读:从 CRR 机制到上下文所有权
java·后端·源码
喵个咪1 小时前
GoWind 拆解:全链 ID 类型体系——int64 定版与前端字符串化契约
前端·后端·go
xys_6781 小时前
JavaEE通关手册:初识Java
java·开发语言
文丑颜不良啊1 小时前
LeetCode2461~2480题目解析
java·leetcode
喵个咪1 小时前
GoWind CMS 拆解:发布审批——多级推进、逐级角色与全程留痕
前端·后端·go
喵个咪1 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
前端·后端·go
喵个咪1 小时前
GoWind CMS 拆解:搜索三板斧——高亮、联想、同义词
后端·搜索引擎·go
喵个咪2 小时前
GoWind 拆解:AI Agent 编排引擎——波次并行、子图递归与人工审批
人工智能·后端·go
喵个咪2 小时前
GoWind Admin 拆解:打印模板设计器——从画布到服务端 PDF 的完整打印链路
前端·后端·go