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

如何做企业网站加v长沙景点排行榜前十名

如何做企业网站加v,长沙景点排行榜前十名,网页界面分析及设计布局,做销售网站谈到Spring,那势必要讲讲容器 BeanFactory 和 ApplicationContext。 BeanFactory是什么? BeanFactory,其实就是 Spring 容器,用于管理和操作 Spring 容器中的 Bean。可能此时又有初学的小伙伴会问:Bean 是什么&#x…

        谈到Spring,那势必要讲讲容器 BeanFactory 和 ApplicationContext。

BeanFactory是什么?

        BeanFactory,其实就是 Spring 容器,用于管理和操作 Spring 容器中的 Bean。可能此时又有初学的小伙伴会问:Bean 是什么?其实这就是对象,只不过这个对象是被 Spring Ioc 容器管理的。

BeanFactory 的主要功能

1. 创建 Bean

   BeanFactory 负责创建和管理 Bean 的生命周期。简单来说,它就像是一个工厂,负责生产(创建)各种对象(Bean)。这些对象在创建时,BeanFactory 会根据配置文件(如 XML 文件)中的定义,初始化这些对象的属性和行为。

2. 依赖注入

   BeanFactory 通过依赖注入(DI)机制将依赖关系注入到 Bean 中。想象一下,一个对象(Bean)需要使用另一个对象(依赖)来完成某些任务。BeanFactory 会自动将这些依赖对象注入到需要它们的 Bean 中,这样你就不需要在代码中手动创建这些依赖对象,使得代码更加简洁和易于维护。

3. 获取 Bean

   BeanFactory 提供了方法来获取 Bean 实例。当你需要使用某个 Bean 时,你可以通过 BeanFactory 提供的方法(如 getBean)来获取这个 Bean 的实例。这个过程就像是从工厂中取出一个已经生产好的产品一样简单。

        下面举一个例子:通过 BeanFactory 获取所有的单例 Bean。

@SpringBootApplication
public class Application {public static void main(String[] args) {// 启动 Spring 应用ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);// 通过反射获取 DefaultSingletonBeanRegistry 类中的 singletonObjects 字段Field singletonObjectsField;try {singletonObjectsField = DefaultSingletonBeanRegistry.class.getDeclaredField("singletonObjects");singletonObjectsField.setAccessible(true);// 获取当前 Spring 容器的 BeanFactoryConfigurableListableBeanFactory beanFactory = context.getBeanFactory();// 通过反射获取 singletonObjects 字段的值Map<String, Object> singletonObjects = (Map<String, Object>) singletonObjectsField.get(beanFactory);// 打印所有单例 BeansingletonObjects.forEach((beanName, beanInstance) -> {System.out.println(beanName + ": " + beanInstance.getClass().getName());});} catch (NoSuchFieldException | IllegalAccessException e) {e.printStackTrace();}// 关闭 Spring 容器context.close();}
}

        另外,需要自己提前创建好 bean。方法有很多,简便点,直接加类上加 @Component 即可,这使得该类可以被 Spring 容器自动检测并注册为一个 Bean。如下所示:

@Component
public class MyComponent {public void doSomething() {System.out.println("Doing something...");}
}

那它与 ApplicationContext 有什么区别?

        可以从图中看出,ApplicationContext 可以说是更高级的容器,它继承并扩展了 BeanFactory 的功能,提供了更多的功能。具体来说,ApplicationContext 多继承了以下几个接口:

  • MessageSource:提供国际化消息支持,可以用于多语言应用。

  • EnvironmentCapable:提供环境变量的访问功能,可以获取系统环境变量和配置文件中的属性。

  • ResourcePatternResolver:提供资源路径解析功能,可以方便地加载资源文件。

  • ApplicationEventPublisher:提供事件发布功能,可以发布和监听应用事件。

总结

     BeanFactory:是最基本的 Spring 容器接口,提供 Bean 的创建、配置和组装功能。适用于资源受限的环境,启动速度快。

     ApplicationContext:是 BeanFactory 的子接口,提供了更多的高级功能,如事件传播、国际化消息支持、资源访问等。适用于大多数企业级应用,启动时会自动初始化所有单例 Bean,提供更多的功能和便利性。

http://www.yayakq.cn/news/238639/

相关文章:

  • 南京网站制作平台上饶建设培训中心网站
  • 马鞍山集团网站建设网页设计与网站开发素材
  • wordpress怎么给网站设置几种语言用html5做的个人网站
  • 制作网站的模板下载温州网站建设策划
  • 电信网站备案查询温州平阳县网站建设兼职
  • 哪个网站可以做拼图赚钱游戏排行榜第一名
  • 有多少专门做兼职的网站wordpress cms系统
  • 做网站准备什么问题网络企业网站建设方案
  • wordpress 猜你喜欢李飞seo
  • 个人网站建设基本定位中国职业培训在线
  • 手机抖音你做我女朋友好吗套路网站做网站网站彩票算犯法吗
  • ui设计师是做网站吗如何用手机号做WordPress
  • 炫酷企业网站做金属的网站
  • 求职网站做我的狗在什么网站上看
  • 电子商务网站建设课程设计思路做购物网站需要多少钱
  • 南通公司建站模板中卫网络电视台直播
  • 免费直播网站炫酷文字制作网站
  • cdr做好排班怎么做网站wordpress登录没有反应
  • 开一家网站建设公司怎样使用html5的网站
  • 家装效果图设计网站鱼鱼cms
  • 推荐自助建网站平台快速做网站公司报价
  • 网站建设文化公司重庆网页推广公司
  • 怎么建设游戏平台网站云客微信管理系统
  • 青岛做外贸网站哪家好荔浦火车站建设在哪里
  • 广州金融网站建设烟台网站建设策划
  • 做网站的工作记录上传网站标志
  • 福田网站建设设计公司wordpress主题安装模板
  • 网站开发答辩难点东营建设信息网(东营市住房和城乡
  • 太原做网站的安阳实力网站建设首选
  • 做拍客哪个网站好30人的网站建设公司年利润是多少