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

合肥网站制作价格广东东莞最新情况

合肥网站制作价格,广东东莞最新情况,男女做爰视频网站,seo深度优化公司Spring IoC 的工作流程: 读取 BeanDefinition: Spring 容器启动时,会读取 Bean 的配置信息 (例如 XML 配置文件、注解或 Java 代码),并将这些配置信息转换为 BeanDefinition 对象。创建 Bean 实例: 根据 BeanDefinition 中的信息,Spring 容器…

Spring IoC 的工作流程:

  1. 读取 BeanDefinition: Spring 容器启动时,会读取 Bean 的配置信息 (例如 XML 配置文件、注解或 Java 代码),并将这些配置信息转换为 BeanDefinition 对象。
  2. 创建 Bean 实例: 根据 BeanDefinition 中的信息,Spring 容器使用反射机制创建 Bean 的实例。
  3. 解析依赖关系: Spring 容器解析 Bean 的依赖关系,找到 Bean 所依赖的其他 Bean。
  4. 注入依赖: Spring 容器使用依赖注入的方式,将依赖对象注入到 Bean 中。
  5. Bean 的生命周期管理: Spring 容器负责管理 Bean 的生命周期,包括初始化、使用和销毁。

自动装配的核心概念:

  • @EnableAutoConfiguration:

    • 这是一个复合注解,通常放在 Spring Boot 应用的启动类上。
    • 它启用了 Spring Boot 的自动配置机制。
    • 它实际上包含了 @AutoConfigurationPackage 和 @Import(AutoConfigurationImportSelector.class) 两个注解。
  • @AutoConfigurationPackage:

    • 它用于指定自动配置的基础包。
    • Spring Boot 会扫描该包及其子包下的所有组件 (例如 @Component@Service@Repository@Controller 等),并将它们注册为 Bean。
    • 通常情况下,@AutoConfigurationPackage 会自动扫描启动类所在的包作为基础包。
  • AutoConfigurationImportSelector:

    • 它是自动配置的核心组件。
    • 它负责扫描所有符合自动配置条件的类,并将它们导入到 Spring 容器中。
    • 它主要通过以下几个步骤来实现自动配置:
      1. 扫描 META-INF/spring.factories 文件: AutoConfigurationImportSelector 会扫描所有 jar 包中的 META-INF/spring.factories 文件。
      2. 加载自动配置类: spring.factories 文件中定义了大量的自动配置类,AutoConfigurationImportSelector 会加载这些类。
      3. 条件过滤: AutoConfigurationImportSelector 会根据一定的条件对自动配置类进行过滤,只有满足条件的自动配置类才会被导入到 Spring 容器中。
      4. 导入自动配置类: AutoConfigurationImportSelector 使用 @Import 注解将符合条件的自动配置类导入到 Spring 容器中。
  • 条件注解 (Conditional Annotations):

    • Spring Boot 提供了大量的条件注解,用于控制自动配置类的生效条件。

 MyBatis中一级缓存和二级缓存有什么差别?

1. 一级缓存 (Local Cache):

  • 作用域: SqlSession 级别。
  • 生命周期: 与 SqlSession 的生命周期相同。 当 SqlSession 关闭时,一级缓存也会被清空。
  • 存储介质: 内存。
  • 工作原理:
    • 当执行一个查询语句时,MyBatis 首先会从一级缓存中查找是否存在相同的 SQL 语句和参数。
    • 如果存在,则直接从一级缓存中返回结果,避免访问数据库。
    • 如果不存在,则访问数据库,并将查询结果放入一级缓存中。
    • 当执行更新、插入或删除语句时,MyBatis 会清空一级缓存,以保证数据的一致性。
  • 优点:
    • 提高查询性能,减少数据库访问次数。
    • 实现简单,无需额外配置。
  • 缺点:
    • 缓存范围小,只能在单个 SqlSession 中共享。
    • 并发性差,多个 SqlSession 之间无法共享缓存。
  • 默认开启: 一级缓存默认开启,无需手动配置。
  • 清空时机:
    • 执行更新、插入或删除语句时。
    • 手动调用 SqlSession.clearCache() 方法时。
    • SqlSession 关闭时。

2. 二级缓存 (Second Level Cache):

  • 作用域: Mapper 级别 (namespace 级别)。
  • 生命周期: 与应用程序的生命周期相同。
  • 存储介质: 可以配置为内存、磁盘或其他存储介质。
  • 工作原理:
    • 当执行一个查询语句时,MyBatis 首先会从二级缓存中查找是否存在相同的 SQL 语句和参数。
    • 如果存在,则直接从二级缓存中返回结果,避免访问数据库。
    • 如果不存在,则访问数据库,并将查询结果放入二级缓存中。
    • 当执行更新、插入或删除语句时,MyBatis 会清空二级缓存中与该语句相关的缓存区域,以保证数据的一致性。
  • 优点:
    • 提高查询性能,减少数据库访问次数。
    • 缓存范围大,可以在多个 SqlSession 之间共享。
    • 并发性好,多个 SqlSession 可以同时访问二级缓存。
  • 缺点:
    • 实现复杂,需要手动配置。
    • 数据一致性难以保证,需要谨慎使用。
  • 默认关闭: 二级缓存默认关闭,需要手动配置才能开启。
  • 清空时机:
    • 执行更新、插入或删除语句时,会清空与该语句相关的缓存区域。
    • 手动配置缓存刷新策略。
    • 应用程序关闭时。

 

http://www.dtcms.com/wzjs/41634.html

相关文章:

  • 培训学做网站要多久深圳网络营销策划
  • 有哪些网站做明星周边如何推广软件
  • 长春制作网站定制沧州网站seo
  • 做传销网站违法的吗百度seo引流
  • 县级政府门户网站建设历程泉州seo报价
  • 国内购物网站排名济南全网推广
  • 预约网免费建站流程seo技巧与技术
  • 网站开发与建设主要干什么网站友情链接怎么弄
  • 邢台网站开发培训学校代写文章兼职
  • 广州建筑公司招聘信息深圳优化网站
  • html5和ria网站设计谷歌浏览器官方app下载
  • 网站怎么做 吸引人百度最新秒收录方法2023
  • 文化传播做网站推广吗南昌seo代理商
  • 紫金网站建设公司百度推广代理
  • 网站建设策目标seo培训师
  • 如何做购物返佣金网站东莞网络推广招聘
  • 网站改版 降权企业如何进行搜索引擎优化
  • 个人站长做导航网站怎么给公司做网站推广
  • 做标书需要用到哪些网站查资料今日特大新闻新事
  • 煎蛋无聊图 wordpressseo还能赚钱吗
  • 济南网站开发设计网址搜索引擎
  • 学做网站在哪里快速排名提升
  • 无视隐私的十大软件seo收费标准多少
  • 专门做推荐的网站linux网站入口
  • 开发公司预算员工作内容及职责深圳百度快速排名优化
  • 网站建设总计seo建站公司
  • 网站建设就选国家高新技术企业
  • 网站建设公司找哪里优化大师哪个好
  • 兼职python做网站谷歌推广怎么开户
  • 怎么做国外的网站 卖东西网页设计软件