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

做网站广告网页源代码怎么调出来

做网站广告,网页源代码怎么调出来,中国建设银行网站查询密码是什么,制作app软件工具下载(个人整理,仅供参考) 在Spring Boot 启动过程中,MyBatis-Plus 的加载和初始化涉及多个阶段的工作。这些工作包括 MyBatis-Plus 自身的配置解析、Mapper 接口的扫描与注册、SQL 语句的动态注入以及底层 MyBatis 的初始化等。以下是…

(个人整理,仅供参考)
在Spring Boot 启动过程中,MyBatis-Plus 的加载和初始化涉及多个阶段的工作。这些工作包括 MyBatis-Plus 自身的配置解析、Mapper 接口的扫描与注册、SQL 语句的动态注入以及底层 MyBatis 的初始化等。以下是对整个过程的详细分析:

  1. Spring Boot 启动时对 MyBatis-Plus 的加载
    Spring Boot 在启动时会对 MyBatis-Plus 进行自动配置(AutoConfiguration),并通过依赖注入的方式完成组件的初始化。以下是关键步骤:

     (1)@EnableAutoConfiguration 和 MybatisPlusAutoConfigurationSpring Boot 的核心特性是基于约定优于配置的原则,通过 @EnableAutoConfiguration 注解自动加载相关的 Starter 配置。mybatis-plus-boot-starter 提供了 MybatisPlusAutoConfiguration 类,该类负责完成 MyBatis-Plus 的自动配置。主要功能:数据源配置:加载 DataSource,并将其注入到 MyBatis 中。SqlSessionFactory 初始化:创建 SqlSessionFactory 对象,用于管理 SQL 会话。Mapper 扫描:扫描标注了 @Mapper 或被 @MapperScan 指定的包路径下的所有 Mapper 接口,并将其注册为 Spring 容器中的 Bean。全局配置:读取 application.yml 或 application.properties 中的 MyBatis-Plus 配置项(如分页插件、逻辑删除配置等)。(2)MapperScannerConfigurer 的作用MyBatis-Plus 使用 MapperScannerConfigurer 来扫描所有的 Mapper 接口。扫描到的每个 Mapper 接口都会被注册为一个 Spring Bean,并与底层的 MyBatis 映射器绑定。(3)SqlSessionTemplate 和 SqlSession 的初始化Spring Boot 会创建 SqlSessionTemplate,它是 MyBatis 的核心组件之一,用于执行 SQL 语句。SqlSessionTemplate 内部封装了 SqlSession,并通过线程安全的方式管理数据库连接。
    
  2. MyBatis-Plus 的加载和初始化
    MyBatis-Plus 在 Spring Boot 启动时完成了自身的初始化工作,主要包括以下几个方面:

    (1)全局配置加载
    MyBatis-Plus 会从配置文件中读取全局配置项,例如:

     数据库字段命名规则(驼峰命名或下划线命名)。主键生成策略。字段自动填充策略。分页插件、逻辑删除插件等。配置项通常通过 application.yml 或 application.properties 提供,例如:yamlmybatis-plus:global-config:db-config:table-underline: true  # 启用驼峰命名规则id-type: auto          # 主键生成策略
    

    (2)Mapper 接口的动态代理
    MyBatis-Plus 会为每个 Mapper 接口生成动态代理对象。这些代理对象实现了接口中定义的方法,并通过 MyBatis 的底层机制执行 SQL 操作。

     动态代理的核心逻辑:方法拦截:当调用 Mapper 接口中的方法时,动态代理会拦截调用,并根据方法签名生成对应的 SQL 语句。SQL 注入:如果启用了自定义 SQL 注入器(如 InsertBatchSomeColumn),则会在启动时将这些方法的 SQL 注入到 MyBatis 的 MappedStatement 中。
    

    (3)SQL 方法的动态注入
    MyBatis-Plus 提供了许多内置的通用方法(如 insert、selectById 等),这些方法对应的 SQL 语句是在启动时动态生成并注入到 MyBatis 的 MappedStatement 中的。

     动态注入的过程:扫描 Mapper 接口:MyBatis-Plus 会扫描所有的 Mapper 接口,并为其注册默认的 SQL 方法。生成 SQL 语句:对于每个方法,MyBatis-Plus 会根据方法签名和实体类的元信息(如表名、字段名)动态生成 SQL 语句。注入 MappedStatement:生成的 SQL 语句会被注入到 MyBatis 的 MappedStatement 中,供后续执行使用。
    

    (4)插件的初始化
    MyBatis-Plus 提供了许多内置插件(如分页插件、逻辑删除插件等),这些插件会在启动时被初始化并注册到 MyBatis 的拦截器链中。

     常见插件:分页插件(PaginationInterceptor):用于支持分页查询。逻辑删除插件(LogicSqlInjector):用于支持逻辑删除功能。性能分析插件(PerformanceInterceptor):用于分析 SQL 执行性能。插件的初始化通常通过配置文件或代码显式注册,例如:java@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
    
  3. 底层 MyBatis 的初始化
    MyBatis 是 MyBatis-Plus 的底层框架,因此 MyBatis-Plus 的初始化也依赖于 MyBatis 的核心机制。以下是 MyBatis 的初始化过程:

     (1)SqlSessionFactory 的创建SqlSessionFactory 是 MyBatis 的核心组件,用于创建 SqlSession 对象。在 Spring Boot 中,SqlSessionFactory 通常通过 SqlSessionFactoryBean 创建。初始化流程:加载 MyBatis 配置文件:读取 mybatis-config.xml 或通过 Java 配置类提供的配置项。解析 Mapper XML 文件:如果存在 XML 格式的 Mapper 文件,MyBatis 会解析这些文件并将其中的 SQL 语句注册到 MappedStatement 中。创建 SqlSessionFactory 实例:完成上述步骤后,SqlSessionFactory 被创建并注入到 Spring 容器中。(2)MapperRegistry 的初始化MapperRegistry 是 MyBatis 的一个内部组件,用于管理所有的 Mapper 接口。在启动时,MyBatis 会将所有的 Mapper 接口注册到 MapperRegistry 中。(3)Configuration 的初始化Configuration 是 MyBatis 的核心配置对象,包含所有的全局配置项和映射信息。在启动时,MyBatis 会初始化 Configuration 对象,并将所有的 MappedStatement、插件、类型处理器等注册到其中。
    
  4. 总结:工作原理及底层逻辑
    以下是 Spring Boot 启动时 MyBatis-Plus 的加载和初始化过程的总结:

     Spring Boot 自动配置:加载 DataSource。初始化 SqlSessionFactory。扫描并注册 Mapper 接口。MyBatis-Plus 的初始化:加载全局配置项。动态生成并注入 SQL 方法。初始化插件(如分页插件、逻辑删除插件)。MyBatis 的底层初始化:创建 SqlSessionFactory。解析 Mapper XML 文件。初始化 MapperRegistry 和 Configuration。运行时行为:当调用 Mapper 接口中的方法时,动态代理会拦截调用,并通过 MyBatis 的底层机制执行 SQL 操作。
    

MyBatis-Plus 在 Spring Boot 启动时会完成实体类的基础 SQL(如 SELECT、INSERT、UPDATE、DELETE 等)的组装和加载,并将这些 SQL 注册到 MyBatis 的 Mapper 映射中。这个过程可以理解为 提前初始化好基础 SQL,以便在运行时直接使用。

以下是详细的分析和工作原理:

  1. 基础 SQL 的组装
    MyBatis-Plus 通过动态生成的方式,为每个实体类生成一组通用的基础 SQL(即 CRUD 操作对应的 SQL)。这些 SQL 是基于实体类的注解(如 @TableName 和 @TableField)以及全局配置(如字段命名规则、主键策略等)动态生成的。

     (1)SQL 的生成逻辑MyBatis-Plus 使用 AbstractMethod 类及其子类来定义每种 SQL 方法的生成逻辑。例如:Insert 方法:生成插入语句(INSERT INTO table_name (column1, column2) VALUES (?, ?))。SelectById 方法:生成根据主键查询的语句(SELECT * FROM table_name WHERE id = ?)。Update 方法:生成更新语句(UPDATE table_name SET column1 = ?, column2 = ? WHERE id = ?)。Delete 方法:生成删除语句(DELETE FROM table_name WHERE id = ?)。这些方法的具体实现位于 com.baomidou.mybatisplus.core.injector.methods 包中。(2)动态生成 SQLMyBatis-Plus 会根据实体类的元信息(如表名、字段名、主键等)动态生成 SQL 语句。例如:如果实体类中有 @TableName("user") 注解,则生成的 SQL 中的表名为 user。如果字段上有 @TableField("name") 注解,则生成的 SQL 中的字段名为 name。如果启用了驼峰命名规则(table-underline: true),则会自动将字段名从驼峰命名转换为下划线命名。
    
  2. SQL 的注册过程
    生成的基础 SQL 会被注册到 MyBatis 的 MappedStatement 中,这是 MyBatis 的核心组件之一,用于存储 SQL 语句及其映射信息。

     (1)什么是 MappedStatement?MappedStatement 是 MyBatis 的一个内部对象,用于描述一条 SQL 语句的执行细节,包括:SQL 语句本身。参数类型。返回值类型。执行器类型(如 SIMPLE、REUSE、BATCH)。(2)SQL 注册的流程在 Spring Boot 启动时,MyBatis-Plus 会完成以下步骤:扫描 Mapper 接口:通过 @MapperScan 或 MapperScannerConfigurer 扫描所有的 Mapper 接口。生成 SQL:为每个 Mapper 接口中的方法动态生成 SQL 语句。注册到 MappedStatement:将生成的 SQL 注册到 MyBatis 的 Configuration 对象中,并与对应的 Mapper 方法绑定。示例:假设有一个实体类 User 和对应的 UserMapper:java@TableName("user")public class User {private Long id;private String name;}public interface UserMapper extends BaseMapper<User> {}在启动时,MyBatis-Plus 会为 UserMapper 注册以下基础 SQL:SELECT * FROM user WHERE id = ?(selectById 方法)INSERT INTO user (id, name) VALUES (?, ?)(insert 方法)UPDATE user SET name = ? WHERE id = ?(updateById 方法)DELETE FROM user WHERE id = ?(deleteById 方法)这些 SQL 会被存储在 MappedStatement 中,并与 UserMapper 的方法绑定。
    
  3. 提前初始化的好处
    MyBatis-Plus 的这种提前初始化机制有以下好处:

     (1)性能优化减少运行时开销:SQL 语句在启动时就已经生成并注册,运行时无需再动态生成 SQL,从而提高了执行效率。缓存复用:MappedStatement 是 MyBatis 的缓存对象,同一 SQL 语句在多次调用时可以直接复用,避免重复解析。(2)简化开发零配置:开发者无需手动编写 SQL 语句,MyBatis-Plus 会根据实体类自动生成基础 SQL。统一管理:所有基础 SQL 都由 MyBatis-Plus 统一生成和管理,减少了代码冗余和潜在错误。(3)灵活性可扩展性:如果需要自定义 SQL 方法,可以通过实现 AbstractMethod 或自定义 SqlInjector 来扩展功能。插件支持:MyBatis-Plus 的插件机制(如分页插件、逻辑删除插件)可以在 SQL 注册过程中对生成的 SQL 进行增强或修改。
    
  4. 动态代理与运行时行为
    虽然基础 SQL 在启动时已经生成并注册,但实际的 SQL 执行是由 MyBatis 的动态代理机制完成的。以下是运行时的行为:

     (1)动态代理拦截当调用 Mapper 接口中的方法时,MyBatis 的动态代理会拦截调用,并根据方法签名找到对应的 MappedStatement。(2)参数绑定MyBatis 会根据方法的参数类型和 SQL 中的占位符(?)进行参数绑定。例如:javaUser user = userMapper.selectById(1L);在运行时,MyBatis 会将 1L 绑定到 SQL 中的 ?,生成最终的 SQL:sqlSELECT * FROM user WHERE id = 1;(3)执行 SQL绑定参数后,MyBatis 会通过 SqlSession 执行 SQL,并返回结果。
    
  5. 总结
    SQL 的组装:
    MyBatis-Plus 在启动时会根据实体类的元信息动态生成基础 SQL(如 SELECT、INSERT、UPDATE、DELETE 等)。
    SQL 的注册:
    生成的 SQL 会被注册到 MyBatis 的 MappedStatement 中,并与 Mapper 方法绑定。
    提前初始化的好处:
    这种方式减少了运行时的开销,简化了开发,并提供了良好的灵活性和扩展性。


文章转载自:

http://KDbyzHkZ.yxshp.cn
http://tle4yAbr.yxshp.cn
http://aKKaq8az.yxshp.cn
http://O8KJSiKJ.yxshp.cn
http://C2iQMXSv.yxshp.cn
http://S4f2pnF2.yxshp.cn
http://M6Ms5BT0.yxshp.cn
http://oO6wUpuY.yxshp.cn
http://fh1q9XIR.yxshp.cn
http://fZRcOW5g.yxshp.cn
http://V8IOOyZR.yxshp.cn
http://jYqJEmuJ.yxshp.cn
http://W34qS2nq.yxshp.cn
http://DjpVbIOs.yxshp.cn
http://IrTjjDDq.yxshp.cn
http://SwH2NMCN.yxshp.cn
http://KKad5eIA.yxshp.cn
http://9QliF795.yxshp.cn
http://oY3Fvfax.yxshp.cn
http://saU9IxpN.yxshp.cn
http://jjwjRYQd.yxshp.cn
http://0apLaa11.yxshp.cn
http://tmoCypMU.yxshp.cn
http://Ls8IFNVI.yxshp.cn
http://iCO7GRQK.yxshp.cn
http://BeFAmGwf.yxshp.cn
http://F5wzcqT3.yxshp.cn
http://5zl95ulc.yxshp.cn
http://e3dVtJiU.yxshp.cn
http://pH8970NV.yxshp.cn
http://www.dtcms.com/wzjs/764219.html

相关文章:

  • 广州管网建设驻马店做网站优化
  • 郑州做设计公司网站网易云音乐wordpress插件
  • 企业网站建设自己的官网网站建设 上传和下载功能
  • 网站的meta标签优化中企动力是干啥的
  • 玉林建设工程信息网站个人网页设计图片大全
  • 制作公司网站需要购买域名和服务器吗生成器在线制作
  • 网站建设 成都今网科技网站建设的三网合一
  • 在网站上做承诺二手房交易税费
  • 友情链接平台广告网站seo优化效果
  • 网站制作网站建设案例南京做网站南京乐识好
  • 免费教育网站建设用自己电脑做服务器建网站
  • 域名备案和网站备案区别长沙建设工程官方网站
  • 网站模板样式修改十大正规平台
  • 阿里云网站建设最后什么样子福永网站建设公司哪家好
  • 外面网站怎么做深圳市seo网络推广平台
  • 零基础学做网站页一个公司怎么做网站都放些什么
  • 公司做网站的费用怎么做账建筑招标网站
  • 用fullpage做的网站河南核酸检测vip
  • 家居网站建设营销推广网站推广公司运营模式
  • 网站栅格新乡平原新区建设局网站
  • 国外网站建设现状wordpress积分代码
  • 广西两学一做网站深圳提倡居家办公
  • 如何模板建站承接php网站建设
  • 专业网站建设网站设计软件如何开发制作
  • 网站建设中手机版中国建设工程造价网
  • 电信网站备案郑州定制网站建设
  • 门户网站开源win主机wordpress
  • 网页制作与网站建设答案教师网络培训
  • 微网站地图定位wordpress怎么多用户
  • 用什么软件做公司网站免费纯ftp空间