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

做网站用什么后缀好万维设计

做网站用什么后缀好,万维设计,长沙网站开发流程,佛山网站推广软件这里写自定义目录标题 前言1、项目结构2、搭建nacos注册中心、配置中心3、项目依赖4、common模块5、provider服务提供者pom文件bootstrap.yml在nacos中添加配置启动类UserServiceImpl consumer服务消费者pom文件bootstrap.ymlnacos配置启动类UserController 测试END 前言 在sp… 这里写自定义目录标题 前言1、项目结构2、搭建nacos注册中心、配置中心3、项目依赖4、common模块5、provider服务提供者pom文件bootstrap.yml在nacos中添加配置启动类UserServiceImpl consumer服务消费者pom文件bootstrap.ymlnacos配置启动类UserController 测试END 前言 在springboot3不再兼容jdk8的时候随之而来的便是各种框架不兼容引发的bug虽然各位框架的开发大佬在加班加点的更新适配但能够创建一个适用并且不报错的项目依旧是一件耗时耗力的事情。 我们都知道在String Cloud项目中默认使用Feign组件进行服务间的通信REST API的调用方式使用起来十分的优雅、简洁但通常情况下HTTP这种通信机制都是短连接也就意味着每一次调用都是一次TCP连接的建立。无疑这种方式的开销以及效率都有不小的问题。在对外部系统时使用REST API的方式去调用是个好方法但在内部服务之间的调用中就会显得开销很大所以我们可以在内部服务之间使用RPC调用。 1、项目结构 在该demo中主要有以上四个项目 parent 父项目所有依赖的管理包在该项目的开发中我们将所有的依赖以及依赖的版本都描述在parent项目中在实际不同模块的开发中我们只需要引入parent包便可以在从中添加依赖而不再去关注依赖的版本。 provider 服务提供方用来提供服务的一方。 consumer 服务消费方负责消费服务。 common 抽离出来的共组模块。在该模块中定义我们要调用的接口以及涉及到的entity、vo、dto等类同时也可定义一些公用的工具类、枚举类等等 2、搭建nacos注册中心、配置中心 此处不过多详细描述下载并安装配置nacos即可 3、项目依赖 项目中的所有依赖都在parent项目中进行管理所以我们这里先看parent的pom文件。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.fawu/groupIdartifactIdparent/artifactIdversion1.0-SNAPSHOT/versionpackagingpom/packagingparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.0.4/version/parentpropertiesjava.version17/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version3.0.4/spring-boot.versionspring-cloud-alibaba.version2022.0.0.0/spring-cloud-alibaba.versionspring-cloud.version2022.0.0/spring-cloud.versiondubbo.version3.3.0-beta.1/dubbo.versionmybatis-plus.version3.5.1/mybatis-plus.versiondruid.version1.2.8/druid.versionmapstruct.version1.4.1.Final/mapstruct.versionhutool.version5.8.20/hutool.versionlombok.version1.18.26/lombok.versionlombok-mapstruct-binding.version0.2.0/lombok-mapstruct-binding.versionmaven-surefire-plugin.version3.1.2/maven-surefire-plugin.versionspring-cloud-bootstrap.version4.0.3/spring-cloud-bootstrap.versionpoi.version4.1.2/poi.versionfastjson.version2.0.32/fastjson.versioncommons-i3o.version1.3.2/commons-i3o.version/propertiesdependencyManagement!-- SpringBoot 依赖配置 --dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency!-- SpringCloud 微服务 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency!-- SpringCloud Alibaba 微服务 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring-cloud-alibaba.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactIdversion${spring-cloud-bootstrap.version}/version/dependency!-- dubbo --dependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo/artifactIdversion${dubbo.version}/version/dependency!-- Alibaba Spring Context extension --dependencygroupIdcom.alibaba.spring/groupIdartifactIdspring-context-support/artifactIdversion1.0.11/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion${mybatis-plus.version}/version/dependency!-- 数据库连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion${druid.version}/version/dependency!-- mapstruct 对象拷贝--dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion${mapstruct.version}/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok-mapstruct-binding/artifactIdversion${lombok-mapstruct-binding.version}/version/dependencydependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion${hutool.version}/version/dependency!-- excel工具 --dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion${poi.version}/version/dependency!-- fastjson --dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion${fastjson.version}/version/dependency!-- common io --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-io/artifactIdversion${commons-io.version}/version/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationmainClassnone/mainClass !-- 取消查找本项目下的Main方法为了解决Unable to find main class的问题 --classifierexecute/classifier !-- 为了解决依赖模块找不到此模块中的类或属性 --/configurationexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build/project 其中的主要依赖为上图所示依赖版本都是Springboot3.x之后适配的版本。 4、common模块 在该模块中我们需要配置需要调用的接口。首先来看一下他的依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.fawu/groupIdartifactIdparent/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdcommon/artifactIdversion0.0.1-SNAPSHOT/versionnamecommon/namedescriptioncommon/descriptionpropertiesjava.version8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project 我们可以看到在pom文件的开头有如下配置 parentgroupIdcom.fawu/groupIdartifactIdparent/artifactIdversion1.0-SNAPSHOT/version/parent进行该配置后即可引用parent管理的依赖版本不需要再去关注依赖的版本了。其余的便是常规的一些依赖。 然后便是需要在该项目中创建在服务消费者中调用在服务提供者中实现的接口 public interface UserService {/*** 测试登录接口* param username* return*/String login(String username); }5、provider服务提供者 该模块用来提供服务也就是实现在common模块中提出的login接口。 pom文件 照例先看一下pom文件。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.fawu/groupIdartifactIdparent/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdProvider/artifactIdversion0.0.1-SNAPSHOT/versionnameProviderDemo/namedescription服务提供者/descriptionpropertiesjava.version17/java.version/propertiesdependenciesdependencygroupIdcom.fawu/groupIdartifactIdcommon/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo/artifactId/dependency!-- Alibaba Spring Context extension --dependencygroupIdcom.alibaba.spring/groupIdartifactIdspring-context-support/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build/project 我们可以看到在该项目中引入了spring-cloud-starter-alibaba-nacos-discovery、spring-cloud-starter-alibaba-nacos-config、spring-cloud-starter-bootstrap、dubbo依赖。 其中spring-cloud-starter-alibaba-nacos-discovery是使用nacos作为注册中心的依赖spring-cloud-starter-alibaba-nacos-config是使用nacos作为配置中心的依赖spring-cloud-starter-bootstrap为配置读取bootstrap配置的依赖dubbo即为使用RPC进行通讯的依赖。 bootstrap.yml 接下来对模块进行配置创建bootstrap.yml文件 server:port: 8087 spring:application:name: providerDemocloud:nacos:discovery:server-addr: 127.0.0.1:8848enabled: trueregister-enabled: truenamespace: demogroup: DEFAULT_GROUPconfig:server-addr: 127.0.0.1:8848extension-configs[0]:data-id: providerDemo.yamlgroup: DEFAULT_GROUPrefresh: truefile-extension: ymlnamespace: demogroup: DEFAULT_GROUP 我们可以看到在该配置中配置了端口号配置了nacos作为注册中心时的地址以及命名空间、分组配置了nacos作为配置中心的地址以及要加载的配置的dataId、分组。 在nacos中添加配置 此时我们打开nacos的地址 http://127.0.0.1:8848/nacos/index.html 1)、创建命名空间 选择命名空间 点击新建命名空间 创建demo命名空间 2)、添加配置 打开配置管理/配置列表选择我们刚刚创建的demo的空间点击创建配置。 创建providerDemo.yaml配置配置内容如下 spring:# 前后端传输时间相差8小时问题jackson:time-zone:GMT8date-format:yyyy-MM-dd HH:mm:ssdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/bot?useUnicodetruecharacterEncodingutf8nullCatalogMeansCurrenttrue useSSLfalseuseLegacyDatetimeCodefalseserverTimezoneGMT%2b8serverTimezoneAsia/Shanghaiusername: rootpassword: rootredis:# Redis数据库索引默认为0database: 0# Redis服务器地址host: 127.0.0.1# Redis服务器连接端口port: 6379# Redis服务器连接密码默认为空password: # 连接超时时间毫秒timeout: 3000mybatis:configuration:cache-enabled: falsemap-underscore-to-camel-case: truemapper-locations: classpath:mapping/**/*Mapper.xmltype-aliases-package: com.onlyoa.common.entitypagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: countcountSqlpage-size-zero: truedubbo:cloud:subscribed-services: consumerDemoscan:#指定 Dubbo 服务实现类的扫描基准包base-packages: com.fawu protocol:#使用dubbo协议name: dubbo # port 为协议端口 -1 表示自增端口从 20880 开始port: -1 registry:#配置中心nacos地址address: nacos://127.0.0.1:8848 config-center:namespace: democonsumer:timeout: 300000user:test:userId: 123456我们可以看到在该配置中和我们常规springboot项目中的配置文件基本相似只是多了一个dubbo的配置项。 启动类 SpringBootApplication EnableDubbo EnableDiscoveryClient public class ProviderDemoApplication {public static void main(String[] args) {SpringApplication.run(ProviderDemoApplication.class, args);}}我们可以看到启动类上多出了EnableDubbo、EnableDiscoveryClient两个注解顾名思义一个为dubbo的配置注解一个为注册中心的配置注解。 UserServiceImpl 终于到了服务的实现了在该模块中我们引入了 dependencygroupIdcom.fawu/groupIdartifactIdcommon/artifactIdversion0.0.1-SNAPSHOT/version/dependency也就是我们在前面所编写的仅有一个接口的common模块。接下来我们来实现该接口。 import com.fawu.common.service.UserService; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Value;/*** 用户服务层实现** author a hrefhttps://github.com/fawu-Kfawu.K/a* since 2024-03-16 14:44**/DubboService public class UserServiceImpl implements UserService {Value(${user.test.userId})private String userId;Overridepublic String login(String username) {if (userId.equals(username)) {return 账号正确;} else {return 账号错误;}} }需要注意在该类上添加了DubboService注解该注解表明了这是一个dubbo服务即可以通过RPC进行调用的服务。 consumer服务消费者 pom文件 照例看一下pom文件吧 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdcom.fawu/groupIdartifactIdparent/artifactIdversion1.0-SNAPSHOT/version/parentartifactIdConsumer/artifactIdversion0.0.1-SNAPSHOT/versionnameConsumerDemo/namedescription服务消费者/descriptionpropertiesjava.version17/java.version/propertiesdependenciesdependencygroupIdcom.fawu/groupIdartifactIdcommon/artifactIdversion0.0.1-SNAPSHOT/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdorg.apache.dubbo/groupIdartifactIddubbo/artifactId/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludes/configuration/plugin/plugins/build /project可以看到该依赖和服务提供者的依赖一致所以从此刻我们就能明白一个模块既可以是服务提供者也可以是服务消费者。 bootstrap.yml server:port: 7777 spring:application:name: consumerDemocloud:nacos:discovery:server-addr: http://127.0.0.1:8848/enabled: trueregister-enabled: truenamespace: demogroup: DEFAULT_GROUPconfig:server-addr: 127.0.0.1:8848extension-configs[0]:data-id: consumerDemo.yamlgroup: DEFAULT_GROUPrefresh: truefile-extension: ymlnamespace: demogroup: DEFAULT_GROUP此配置依旧和服务提供者的配置基本相同只有配置的data-id不同 nacos配置 打开nacos网址创建配置 配置内容 spring:# 前后端传输时间相差8小时问题jackson:time-zone:GMT8date-format:yyyy-MM-dd HH:mm:ssservlet:multipart:max-file-size: 100MBmax-request-size: 100MBdatasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/bot?useUnicodetruecharacterEncodingutf8nullCatalogMeansCurrenttrue useSSLfalseuseLegacyDatetimeCodefalseserverTimezoneGMT%2b8serverTimezoneAsia/Shanghaiusername: rootpassword: rootredis:# Redis数据库索引默认为0database: 0# Redis服务器地址host: 127.0.0.1# Redis服务器连接端口port: 6379# Redis服务器连接密码默认为空password: # 连接超时时间毫秒timeout: 3000cloud:sentinel:transport:#配置Sentinel dashboard地址dashboard: 127.0.0.1:8848#默认8719端口假如被占用会自动从8719开始依次1扫描直到找到未被占用的端口port: 8719datasource:dsl:nacos:server-addr: 127.0.0.1:8848 #配置中心nacos地址namespace: demo #配置nacos地址dataId: onlyone-consumer-sentinelgroupId: SENTINEL_GROUPdata-type: jsonrule-type: flowdubbo:registry:#配置中心nacos地址address: nacos://127.0.0.1:8848 scan:#指定 Dubbo 服务实现类的扫描基准包base-packages: com.fawucloud:subscribed-services: providerDemoapplication:qos-enable: falsename: consumerDemoconfig-center:namespace: demoprotocol:#使用dubbo协议name: dubbo # port 为协议端口 -1 表示自增端口从 20880 开始port: -1 consumer:timeout: 300000mybatis:configuration:cache-enabled: falsemap-underscore-to-camel-case: truemapper-locations: classpath:mapping/**/*Mapper.xmltype-aliases-package: com.onlyoa.common.entitysftp:# 服务器地址host: 127.0.0.1# 端口port: 22# 账号userName: root# 密码password: root# 图片的根路径basePath: /home/nginx/image# 音频的根路径audioPath: /home/nginx/audio# 视频的根路径videoPath: /home/nginx/video# channel连接超时时间timeout: 30000#连接次数count: 3#休眠时间sleepTime: 6000#服务器头像地址titleImgsPath: http://127.0.0.1:80/image/#服务器音频地址titleAudiosPath: http://127.0.0.1:80/audio/#服务器视频地址titleVideosPath: http://127.0.0.1:80/video/启动类 import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient EnableDubbo public class ConsumerDemoApplication {public static void main(String[] args) {SpringApplication.run(ConsumerDemoApplication.class, args);}}UserController import com.fawu.common.service.UserService; import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;/*** 用户控制层** author a hrefhttps://github.com/fawu-Kfawu.K/a* since 2024-03-16 14:47**/ RestController public class UserController {DubboReferenceprivate UserService userService;GetMapping(login)public String login(String username) {return userService.login(username);} }对于使用dubboRPC调用的服务使用DubboReference注解进行调用。 测试 http://127.0.0.1:7777/login?username123456 此时我们调用login接口就会看到如下内容 当然了也可以是改一下username END
http://www.zqtcl.cn/news/169011/

相关文章:

  • 包头焦点网站建设郑州包装设计公司
  • 建行官方网站首页做跨境电商亏死了
  • 河北智能网站建设平台卖链接的网站
  • 网站建设简单点的服装搭配网站建设策划书
  • 哪一个军事网站做的比较好今天第四针最新消息
  • 黄页网站推广app软件查企业公司用什么软件
  • 网站设计机构培训全自动网页制作系统源码
  • 外贸网站建设收益深圳建设厅官网
  • 跟网站开发有关的内容东莞市生态环境局
  • dw软件做的东西怎么在网站用网站备案抽查通过
  • 重庆建设集团网站首页wordpress主题inn
  • 对京东网站建设的总结湖北做网站的
  • 杭州网站开发后端招郑州工装定制
  • 网站搭建论文filetype ppt 网站建设
  • 个人做营利性质网站会怎么样如何引用网站上的资料做文献
  • 新网站制作市场泰安做网站哪家好
  • 常熟苏州网站建设flash如何制作网站
  • 电商网站都是用什么做的网站服务器维护方案
  • 简述企业网站建设的流程手机怎么自己做网页
  • 网站备案信息管理呼图壁网站建设
  • 网站建设学习资料开发一套软件需要多少钱
  • 大庆网站设计衡阳seo网站推广
  • 基层科普网站建设的现状自己做的网站怎样链接数据库
  • 网站建设工程师的职位要求化妆品行业网站开发
  • 做海报有什么素材网站知乎什么样的蓝色做网站做好看
  • 餐饮网站建设网站wordpress优酷视频插件下载
  • 什么网站做广告效果好wordpress中文cms
  • seo与网站优化广州洲聚网站开发
  • 建一个自己用的网站要多少钱北京网站建设价格天
  • 免费做婚礼邀请函的网站如何设定旅游网站seo核心关键词