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

如何做学校网站软文广告有哪些

如何做学校网站,软文广告有哪些,邯郸移动网站建设价格,用花瓣网站上的图片做游戏行吗文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一:引入到源码3.4.2 方式二:插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中,…

文章目录

    • 1. 概述
    • 2. 持久层机制
      • 2.1 固定语句
      • 2.2 数据源插件
    • 3. 案例演示
      • 3.1 编译已实现插件
      • 3.2 自定义插件
      • 3.3 数据库初始化
      • 3.4 插件引入
        • 3.4.1 方式一:引入到源码
        • 3.4.2 方式二:插件加载目录
      • 3.5 修改配置
      • 3.6 测试

1. 概述

在实际项目开发中,特别是政府项目,信创计划要求使用国产数据库,所以Nacos 需要支持不同类型的数据库。

Nacos 表结构如下,可以看到主要是存储配置、用户、租户相关信息:

在这里插入图片描述

2. 持久层机制

2.1 固定语句

Nacos 2.2 之前的版本中,所有的 SQL 操作的执行是通过直接使用 JdbcTemplate 执行固定 SQL 语句的形式,使得 SQL 语句与业务逻辑高度耦合,并且只支持 DerbyMySQL 两种数据源。

原有模块架构如下:
在这里插入图片描述
Nacos 2.1.1 源码中执行 SQL 示例:

在这里插入图片描述
如果是 Nacos 2.2 之前的版本,想要兼容多种数据库还是比较头疼的,官方提供的多中数据源支持分支停留在 1.4.2 版本,集成时还需要改造一些代码:

在这里插入图片描述

2.2 数据源插件

Nacos2.2.0 版本开始,实现了通过 SPI 机制注入多数据源插件的方式。将 SQL 操作按照数据表进行抽象出多个 Mapper 接口,Mapper 接口的实现类需要按照不同的数据源编写对应的 SQL 方言实现。

架构图如下:
在这里插入图片描述

在 nacos-plugin 中,可以看到包含了很多插件:
在这里插入图片描述

数据源插件模块 nacos-datasource-plugin-ext 中,可以看到已经实现了DM(达梦)、SQLServerOraclePostgreSQL

在这里插入图片描述

3. 案例演示

注意事项:

  • 目前多数据源插件处于 Beta 测试阶段,其 API 及接口方法定义可能会在后续版本升级而有较大修改,请注意您的插件适用版本
  • 这里使用的是 Nacos 2.3.2 版本

3.1 编译已实现插件

nacos-plugin 已经实现了多个数据库支持,但是目前仍然处于开发阶段,需要拉取源码自行编译。拉取到本地后,切换到 develop 开发分支。

首先需要将 alibaba-nacos.version 修改为最新的 2.3.2 版本,原先引入的是 2.3.0-SNAPSHOT 快照版本,本地和 Maven 仓库肯定都是没有的:

在这里插入图片描述
然后执行 mvn install 安装到本地仓库,这里建议上传到公司的 Maven 仓库。

3.2 自定义插件

针对 nacos-plugin 没有实现的数据库,需要自定义实现(这里只是简单示例,实际是复制了 nacos-postgresql-datasource-plugin-ext 相关代码)。

在 nacos-plugin 中的 nacos-datasource-plugin-ext 下创建自定义插件模块,引入数据库驱动、数据源插件基础依赖:

    <parent><artifactId>nacos-datasource-plugin-ext</artifactId><groupId>com.alibaba.nacos</groupId><version>${revision}</version></parent><modelVersion>4.0.0</modelVersion><artifactId>nacos-postgresql-datasource-plugin-ext</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><jdbc.postgresql.version>42.2.19</jdbc.postgresql.version></properties><dependencies><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>${jdbc.postgresql.version}</version></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-datasource-plugin-ext-base</artifactId><version>${revision}</version><scope>compile</scope></dependency></dependencies>

实现 AbstractDatabaseDialect 数据库方言接口,设置数据库类型、重写相关分页关键字方法:

public class PostgresqlDatabaseDialect extends AbstractDatabaseDialect {@Overridepublic String getType() {return DatabaseTypeConstant.POSTGRESQL;}@Overridepublic String getLimitTopSqlWithMark(String sql) {return sql + " LIMIT ? ";}@Overridepublic String getLimitPageSqlWithMark(String sql) {return sql + "  OFFSET ? LIMIT ? ";}@Overridepublic String getLimitPageSql(String sql, int pageNo, int pageSize) {return sql + "  OFFSET " + getPagePrevNum(pageNo, pageSize) + " LIMIT " + pageSize;}@Overridepublic String getLimitPageSqlWithOffset(String sql, int startOffset, int pageSize){return sql + "  OFFSET " + startOffset + " LIMIT " + pageSize;}}

继承相关 BaseMapper 类,重写一些 Mapper 接口中的特殊 SQL 方法:

在这里插入图片描述

编写 SPI 配置文件,引入方言类、自定义 Mapper ,提供修改后对应的数据库初始化SQL脚本:

在这里插入图片描述

3.3 数据库初始化

这里使用 PostgreSQL进行演示,新建数据库,找到对应的脚本执行即可:

在这里插入图片描述

3.4 插件引入

3.4.1 方式一:引入到源码

Nacos 2.3.2 源码中的 plugin/datasource/pom.xml 文件中,引入插件依赖:

在这里插入图片描述
这里只引入了 PostgreSQL ,也可以引入多个:

        <dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-postgresql-datasource-plugin-ext</artifactId><version>1.0.0-SNAPSHOT</version></dependency>

执行打包命令:

mvn -Prelease-nacos -Dmaven.test.skip=true -Dpmd.skip=true -Drat.skip=true -Dcheckstyle.skip=true clean install -U

在源码 nacos-2.3.2\distribution\target\nacos-server-2.3.2\nacos目录下,可以看到打包后的项目:

在这里插入图片描述
可以查看 nacos-server.jar 中是否已包含当前数据库驱动:

在这里插入图片描述

3.4.2 方式二:插件加载目录

Nacos 的启动脚本中,可以看到有一个 loader.path 启动参数, Nacos 支持通过指定路径加载插件:

在这里插入图片描述
所以可以直接将编译后的 jar 包(可以多个)放入到 nacos/plugins 目录中:

在这里插入图片描述

3.5 修改配置

修改 application.properties 配置文件,添加数据库配置:

### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=postgresql### Count of DB:
db.num=1### Connect URL of DB:
db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=nacos_java
db.user=postgres
db.password=123456### Connection pool configuration: hikariCP
db.pool.config.driverClassName=org.postgresql.Driver
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
#如果是 oracle 则需要改为 SELECT * FROM dual
#db.pool.config.connectionTestQuery=SELECT 1

3.6 测试

启动 Nacos ,添加配置、用户,查看数据库:

在这里插入图片描述

http://www.ds6.com.cn/news/11425.html

相关文章:

  • 网站原创文章来源近期发生的重大新闻
  • 装修设计公司取名宁波seo网络推广报价
  • 网页设计怎么赚钱优优群排名优化软件
  • 贵阳白云区疫情最新情况今天aso苹果关键词优化
  • 做平台网站外包多少钱啊俄罗斯搜索引擎yandex
  • wordpress插件 速度seo搜索优化工程师招聘
  • 企业建设网站应如何申请seo怎样
  • 如何提升网站点击量网页制作图片
  • 网站做接口怎么做长沙全网推广
  • 织梦网站管理系统百度怎么免费推广自己的产品
  • 代表b2c的平台是北京seo邢云涛
  • 黑色企业网站广西南宁做网站的公司
  • 乐清做网站公司百度搜索流量查询
  • 江苏威达建设有限公司网站关键词排名点击软件推荐
  • JAVA做的小型网站有哪些搜索引擎营销是什么
  • python做的网站如何打开app推广全国代理加盟
  • 做个简单的公司网站要多少钱推广资源网
  • wordpress换主题链接百度seo站长工具
  • 怎样看网站的建设时间seo模板建站
  • 做电商要不要公司网站网站维护的主要内容
  • 福州医保网站调入申报怎么做优化大师免安装版
  • 专业网站建设哪家好网站的seo如何优化
  • 做的比较好的返利网站知乎潍坊网站模板建站
  • 长沙装修公司排行榜seo视频教学网站
  • 北京的招聘网站有哪些佛山百度提升优化
  • 手机网站建设 cms襄阳百度开户
  • 给企业建设网站的流程图seo建站需求
  • 网站开发 实名认证需要备案吗建网站需要什么
  • 沧州软件开发公司seo优化实训总结
  • 数据库策略网站推广的有效方法有网站seo技术