Spring中如何向容器注册Bean


今天就跟大家聊聊有关Spring中如何向容器注册Bean,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先我们需要了解一下是什么是Ioc。Ioc是Spring的核心技术之一,全称是Inversion of Control(控制反转)。最原始的创建对象的方法就是通过new来实现(手动的编写代码实现):
而Spring提供了Ioc容器用于对象的创建以及配置、管理、销毁等。控制:容器进行组件代码的控制和管理反转:组件代码的控制权由外部代码转移到了内部容器 (程序员到容器)当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象,这样做降低了类之间的耦合程度。不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。那么到底什么是容器?
从程序的角度,容器实际上就是某些特定接口的实现类的实例。Spring提供了两种不同的类型的容器:Spring BeanFactory容器: 最简单的容器,给依赖注入提供了基本的支持
ApplicationContext容器: ApplicationContext 容器继承自BeanFactory,它包括 BeanFactory 容器的所有功能,并对其功能进行了扩展。Spring BeanFactory 容器org.springframework.beans.factory.BeanFactor 接口BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。
ApplicationContext接口,它由BeanFactory接口派生而来,ApplicationContext包含BeanFactory的所有功能,通常建议比BeanFactory优先。代码:
getBean方法:从容器中获取Bean对象is方法:单例,原型,bean类型的判断get方法:获取Bean类型和别名
ApplicationContext 的主要实现类
ClassPathXmlApplicationContext:从 类路径下加载配置文件FileSystemXmlAppl开发云主机域名icationContext: 从文件系统中加载配置文件ConfigurableApplicationContext:扩展于ApplicationContext,新增加两个主要方法:refresh() 和 close(), 让ApplicationContext 具有启动、刷新和关闭上下文的能力ApplicationContext :在初始化上下文时就实例化所有单例的 Bean。WebApplicationContext: 是专门为 WEB 应用而准备的,它允许从相对于 WEB 根目录的路径中完成初始化工作
1、Bean配置信息(xml配置文件、配置类、注解)定义了Bean的实现及依赖关系,即Bean的配置信息2、Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表3、容器根据注册表加载、实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用一、XML配置文件(使用类的无参构造函数)
配置文件配置文件位置、名称不固定,建议命名为applicationContext.xmlid:创建的对象名称class:需要进行注册的Bean全路径使用静态工厂创建和使用实例工厂创建与使用类的无参构造函数相似,不再介绍测试方法二、java配置类配置类测试三、注解添加注解开启扫描或者测试方法注意:@Controller注解仅仅其标记作用,开启注解扫描@ComponentScan后才会注册Bean
看完上述内容,你们对Spring中如何向容器注册Bean有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注开发云行业资讯频道,感谢大家的支持。

相关推荐: 微服务拆分到什么粒度合适——康威定律

微服务这个概念一直很火,现在ServiceMesh概念更火,最近我经手的多个项目也都采用微服务的方式开发。但实践发现,当一个RD同时开发超过2个微服务的时候,出现bug或故障的概率会提升。我现在看项目的时候会不自觉的关注工程服务拆分个数和研发人数的比值。虽然这…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/13 16:26
下一篇 05/13 16:26