当前位置: 首页 > news >正文

财务公司名称大全简单大气seo短期课程

财务公司名称大全简单大气,seo短期课程,宜昌做网站的,wordpress设置登录页面1 依赖注入的模式和类型 模式 类型 2 自动绑定(Autowiring) 官方定义 “自动装配是Spring框架中一种机制,用于自动解析和满足bean之间的依赖关系。通过自动装配,Spring容器可以根据类型、名称或其他属性来自动连接协作的bean&…

1 依赖注入的模式和类型

 模式

类型

2   自动绑定(Autowiring)

官方定义

“自动装配是Spring框架中一种机制,用于自动解析和满足bean之间的依赖关系。通过自动装配,Spring容器可以根据类型、名称或其他属性来自动连接协作的bean,而无需显式配置依赖关系。这使得开发者可以更加专注于业务逻辑而不必过多关注bean之间的连接与注入。”

优点

自动装配简化了应用程序的配置工作,提高了开发效率和代码的可读性,同时提供了灵活性和扩展性,使得应用程序更易于维护和演化。

3 自动绑定(Autowiring)模式 

4自动绑定的不足

虽然自动绑定(Autowiring)在某些情况下可以提供便利,但也有几个原因导致不建议过度使用或完全依赖自动绑定:

自动绑定使得依赖关系变得隐式,缺乏明确的配置。.autowiring不具有精确性,它是一种猜测性的东西,然而Spring非常在乎精确性 ,Autowiring很难在工具方面进行呈现,很难确定你这个autowiring的bean在上下文是否存在 。如果存在多个定义的bean,会报错,系统不知道你需要的是哪个bean这可能导致代码可读性和可维护性下降,特别是在复杂的应用程序中。

动绑定可能导致组件之间的耦合增加,影响模块化开发和重复使用。当组件之间的依赖关系不明确时,重构和替换组件可能变得困难。

5 Setter 方法注入

例如

6   构造器 注入

例如

public class UserService {private UserDao userDao;// 构造器public UserService(UserDao userDao) {this.userDao = userDao;}// 其他业务方法...

6 字段注入

7 方法注入

8 接口回调注入

8 依赖注入类型选择

9 限定注入

10 延迟依赖注入

通常的 @Autowired 会及时依赖相关的 Spring Bean,不过此时 Bean 的状态并未完全准备好,所以 ObjectProvider 可以在需要时获取 Spring Bean,更好的状态准备,达到延迟的获取效果。

11  依赖注入的过程和规则

在 AbstractApplicationContext#refresh#finishBeanFactoryInitialization 方法中,初始化所有还未初始化的 Bean(不是抽象、单例模式、不是懒加载方式) 通过 DefaultListableBeanFactory#preInstantiateSingletons 方法进行初始化,会通过 AbstractBeanFactory#getBean(beanName) 方法对每个 Bean 进行初始化 Bean 初始化的过程比较繁琐,大致过程如下:

1. 先找到对应的 BeanDefinition 对象,然后会走到 AbstractAutowireCapableBeanFactory#createBean 方法,**进行实例化**、**填充属性值**、调用 Bean 的**初始化方法**

2. 在填充属性值的过程,默认根据类型进行注入,那么在 AbstractAutowireCapableBeanFactory#autowireByType 的方法中会调用 DefaultListableBeanFactory#resolveDependency 方法进行注入,最后还是会通过 AbstractBeanFactory#getBean(beanName) 方法获取到需要注入的 Bean 对象

3. 在填充属性值的时候也会通过 AutowiredAnnotationBeanPostProcessor 注入属性值,该注入增强器会对 @Autowired 或者 @Value 注解标注的属性进行注入,也是通过 DefaultListableBeanFactory#resolveDependency 方法进行注入。具体过程可看 AutowiredAnnotationBeanPostProcessor 的私有内部类 AutowiredFieldElement#inject 方法

12 @Autowired 注入

1.在doCreateBean中会先调用applyMergedBeanDefinitionPostProcessors,后执行populateBean 所以会先调用postProcessMergedBeanDefinition后执行InstantiationAwareBeanPostProcessor的postProcessProperties。(之后就是要创建Bean,创建bean肯定要看看有没有配置什么字段需要注入->findAutowiringMetadata())

2.postProcessProperties中有两个步骤:

(1)findAutowiringMetadata查找注入元数据,没有缓存就创建,具体是上一节内容。最终会返回InjectionMetadata,里面包括待注入的InjectedElement信息(field、method)等等

(2)执行InjectionMetadata的inject方法,具体为AutowiredFieldElement和AutowiredMethodElement的Inject方法

(2.1)AutowiredFieldElement inject具体流程:

(2.1.1)DependencyDescriptor的创建

(2.1.2)调用beanFactory的resolveDependency获取带注入的bean

(2.1.2.1)resolveDependency根据具体类型返回候选bean的集合或primary 的bean

(2.1.3)利用反射设置field

13!!!TODO

面试题

依赖注入有几种方式

构造器注入

Setter 注入

字段注入

方法注入

接口回调注入

http://www.tj-hxxt.cn/news/89460.html

相关文章:

  • 全国村级网站建设网络关键词
  • 网站建设经验与教训2022近期时事热点素材摘抄
  • asp网站数据库连接济宁百度推广价格
  • 泰安10大首富关键词优化排名seo
  • 学做网站需要买什么书快速排名软件案例
  • 在线制作表情包生成器软件广州seo网站推广公司
  • 深圳营销型网站建设公司哪家好什么是sem和seo
  • 广州微信网站建设哪家好网页开发教程
  • 如何做自己个人网站企业查询官网
  • 用html制作旅游网站正规seo排名公司
  • app开发费用明细邵阳seo排名
  • 做网站的需求分析网站流量查询服务平台
  • dede旅游网站网络营销推广策划的步骤是什么
  • php与mysql网站开发360安全网址
  • 广州网站建设与网页设计国内免费发布产品的平台
  • php wordpress 关系自己的网站怎么样推广优化
  • 一个服务器做两个网站优化工作流程
  • 网络设计专业究竟好不好就业网络优化工具
  • 铜陵专业网站制作公司seo网站推广免费
  • 旅游局网站的建设情况抚州seo外包
  • 做网站常用的英文字体百度官网下载电脑版
  • 咸阳做网站优化seo优化一般多少钱
  • axure怎么做响应式网站极速建站网站模板
  • 网站结构建设方案晋城今日头条新闻
  • 重庆所有做网站的公司百度seo优化服务项目
  • WordPress代码改silder沈阳百度seo关键词优化排名
  • 写作网站都有哪些建站系统哪个比较好
  • 关键词优化排名易下拉效率seo怎么优化关键词排名培训
  • 花都网站建设公司网页制作代码大全
  • 如何在个人网上建网站搜索引擎网站推广如何优化