某服装公司网站建设论文php网站开发案例论文

diannao/2026/1/25 19:06:16/文章来源:
某服装公司网站建设论文,php网站开发案例论文,网站开发用哪个linux,网站建设协议目录 1.nacos环境搭建nacos安装 2.项目主体结构6.2)表结构分析6.4)**运营端微服务搭建**6.4)登录功能实现 7)接口工具postman、swagger、knife4j7.1)postman7.2)swagger7.3)knife4j 8)网关9)前端集成9.1)前端项目部署思路9.2)配置nginx 1.nacos环境搭建 nacos安装 ①#xf… 目录 1.nacos环境搭建nacos安装 2.项目主体结构6.2)表结构分析6.4)**运营端微服务搭建**6.4)登录功能实现 7)接口工具postman、swagger、knife4j7.1)postman7.2)swagger7.3)knife4j 8)网关9)前端集成9.1)前端项目部署思路9.2)配置nginx 1.nacos环境搭建 nacos安装 ①docker拉取镜像 docker pull nacos/nacos-server:1.2.0②创建容器 docker run --env MODEstandalone --name nacos --restartalways -d -p 8848:8848 nacos/nacos-server:1.2.0MODEstandalone 单机版 –restartalways 开机启动 -p 8848:8848 映射端口 -d 创建一个守护式容器在后台运行 ③访问地址http://192.168.200.130:8848/nacos 2.项目主体结构 6.2)表结构分析 关于app端用户相关的内容较多可以单独设置一个库leadnews_user 表名称说明ap_userAPP用户信息表ap_user_fanAPP用户粉丝信息表ap_user_followAPP用户关注信息表ap_user_realnameAPP实名认证信息表 从当前资料中找到对应数据库并导入到mysql中 项目中的持久层使用的mybatis-plus一般都使用mybais-plus逆向生成对应的实体类 app_user表对应的实体类如下 package com.heima.model.user.pojos;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data;import java.io.Serializable; import java.util.Date;/*** p* APP用户信息表* /p** author itheima*/ Data TableName(ap_user) public class ApUser implements Serializable {private static final long serialVersionUID 1L;/*** 主键*/TableId(value id, type IdType.AUTO)private Integer id;/*** 密码、通信等加密盐*/TableField(salt)private String salt;/*** 用户名*/TableField(name)private String name;/*** 密码,md5加密*/TableField(password)private String password;/*** 手机号*/TableField(phone)private String phone;/*** 头像*/TableField(image)private String image;/*** 0 男1 女2 未知*/TableField(sex)private Boolean sex;/*** 0 未1 是*/TableField(is_certification)private Boolean certification;/*** 是否身份认证*/TableField(is_identity_authentication)private Boolean identityAuthentication;/*** 0正常1锁定*/TableField(status)private Boolean status;/*** 0 普通用户1 自媒体人2 大V*/TableField(flag)private Short flag;/*** 注册时间*/TableField(created_time)private Date createdTime;}手动加密md5随机字符串 md5是不可逆加密md5相同的密码每次加密都一样不太安全。在md5的基础上手动加盐salt处理 注册-生成盐 登录-使用盐来配合验证 1用户输入了用户名和密码进行登录校验成功后返回jwt(基于当前用户的id生成) 2用户游客登录生成jwt返回(基于默认值0生成)‘ 6.4)运营端微服务搭建 在heima-leadnews-service下创建工程heima-leadnews-user 引导类 package com.heima.user;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient MapperScan(com.heima.user.mapper) public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class,args);} }bootstrap.yml server:port: 51801 spring:application:name: leadnews-usercloud:nacos:discovery:server-addr: 192.168.200.130:8848config:server-addr: 192.168.200.130:8848file-extension: yml在nacos中创建配置文件 spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/leadnews_user?useUnicodetruecharacterEncodingUTF-8serverTimezoneUTCusername: rootpassword: root # 设置Mapper接口所对应的XML文件位置如果你在Mapper接口中有自定义方法需要进行该配置 mybatis-plus:mapper-locations: classpath*:mapper/*.xml# 设置别名包扫描路径通过该属性可以给包中的类注册别名type-aliases-package: com.heima.model.user.pojoslogback.xml ?xml version1.0 encodingUTF-8? !-- Console 输出设置 -- appender nameCONSOLE classch.qos.logback.core.ConsoleAppenderencoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/patterncharsetutf8/charset/encoder /appender!-- 按照每天生成日志文件 -- appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名--fileNamePattern${LOG_HOME}/leadnews.%d{yyyy-MM-dd}.log/fileNamePattern/rollingPolicyencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/pattern/encoder /appender!-- 异步输出 -- appender nameASYNC classch.qos.logback.classic.AsyncAppender!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --discardingThreshold0/discardingThreshold!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --queueSize512/queueSize!-- 添加附加的appender,最多只能添加一个 --appender-ref refFILE/ /appenderlogger nameorg.apache.ibatis.cache.decorators.LoggingCache levelDEBUG additivityfalseappender-ref refCONSOLE/ /logger logger nameorg.springframework.boot leveldebug/ root levelinfo!--appender-ref refASYNC/--appender-ref refFILE/appender-ref refCONSOLE/ /root6.4)登录功能实现 ①接口定义 RestController RequestMapping(/api/v1/login) public class ApUserLoginController {PostMapping(/login_auth)public ResponseResult login(RequestBody LoginDto dto) {return null;} }②持久层mapper package com.heima.user.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.heima.model.user.pojos.ApUser; import org.apache.ibatis.annotations.Mapper;Mapper public interface ApUserMapper extends BaseMapperApUser { }③业务层service package com.heima.user.service;import com.baomidou.mybatisplus.extension.service.IService; import com.heima.model.common.dtos.ResponseResult; import com.heima.model.user.dtos.LoginDto; import com.heima.model.user.pojos.ApUser;public interface ApUserService extends IServiceApUser{/*** app端登录* param dto* return*/public ResponseResult login(LoginDto dto);}实现类 package com.heima.user.service.impl;import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.heima.model.common.dtos.ResponseResult; import com.heima.model.common.enums.AppHttpCodeEnum; import com.heima.model.user.dtos.LoginDto; import com.heima.model.user.pojos.ApUser; import com.heima.user.mapper.ApUserMapper; import com.heima.user.service.ApUserService; import com.heima.utils.common.AppJwtUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.DigestUtils;import java.util.HashMap; import java.util.Map;Service public class ApUserServiceImpl extends ServiceImplApUserMapper, ApUser implements ApUserService {Overridepublic ResponseResult login(LoginDto dto) {//1.正常登录手机号密码登录if (!StringUtils.isBlank(dto.getPhone()) !StringUtils.isBlank(dto.getPassword())) {//1.1查询用户ApUser apUser getOne(Wrappers.ApUserlambdaQuery().eq(ApUser::getPhone, dto.getPhone()));if (apUser null) {return ResponseResult.errorResult(AppHttpCodeEnum.DATA_NOT_EXIST,用户不存在);}//1.2 比对密码String salt apUser.getSalt();String pswd dto.getPassword();pswd DigestUtils.md5DigestAsHex((pswd salt).getBytes());if (!pswd.equals(apUser.getPassword())) {return ResponseResult.errorResult(AppHttpCodeEnum.LOGIN_PASSWORD_ERROR);}//1.3 返回数据 jwtMapString, Object map new HashMap();map.put(token, AppJwtUtil.getToken(apUser.getId().longValue()));apUser.setSalt();apUser.setPassword();map.put(user, apUser);return ResponseResult.okResult(map);} else {//2.游客 同样返回token id 0MapString, Object map new HashMap();map.put(token, AppJwtUtil.getToken(0l));return ResponseResult.okResult(map);}} }④控制层controller package com.heima.user.controller.v1;import com.heima.model.common.dtos.ResponseResult; import com.heima.model.user.dtos.LoginDto; import com.heima.user.service.ApUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/api/v1/login) public class ApUserLoginController {Autowiredprivate ApUserService apUserService;PostMapping(/login_auth)public ResponseResult login(RequestBody LoginDto dto) {return apUserService.login(dto);} }7)接口工具postman、swagger、knife4j 7.1)postman 7.2)swagger (1)简介 Swagger 是一个规范和完整的框架用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/)。 它的主要作用是 使得前后端分离开发更加方便有利于团队协作 接口的文档在线自动生成降低后端开发人员编写接口文档的负担 功能测试 Spring已经将Swagger纳入自身的标准建立了Spring-swagger项目现在叫Springfox。通过在项目中引入Springfox 即可非常简单快捷的使用Swagger。 (2)SpringBoot集成Swagger 引入依赖,在heima-leadnews-model和heima-leadnews-common模块中引入该依赖 dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactId /dependency dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactId /dependency只需要在heima-leadnews-common中进行配置即可因为其他微服务工程都直接或间接依赖即可。 在heima-leadnews-common工程中添加一个配置类 新增com.heima.common.swagger.SwaggerConfiguration package com.heima.common.swagger;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;Configuration EnableSwagger2 public class SwaggerConfiguration {Beanpublic Docket buildDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(buildApiInfo()).select()// 要扫描的API(Controller)基础包.apis(RequestHandlerSelectors.basePackage(com.heima)).paths(PathSelectors.any()).build();}private ApiInfo buildApiInfo() {Contact contact new Contact(黑马程序员,,);return new ApiInfoBuilder().title(黑马头条-平台管理API文档).description(黑马头条后台api).contact(contact).version(1.0.0).build();} }在heima-leadnews-common模块中的resources目录中新增以下目录和文件 文件resources/META-INF/Spring.factories org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.heima.common.swagger.SwaggerConfiguration3Swagger常用注解 在Java类中添加Swagger的注解即可生成Swagger接口文档常用Swagger注解如下 Api修饰整个类描述Controller的作用 ApiOperation描述一个类的一个方法或者说一个接口 ApiParam单个参数的描述信息 ApiModel用对象来接收参数 ApiModelProperty用对象接收参数时描述对象的一个字段 ApiResponseHTTP响应其中1个描述 ApiResponsesHTTP响应整体描述 ApiIgnore使用该注解忽略这个API ApiError 发生错误返回的信息 ApiImplicitParam一个请求参数 ApiImplicitParams多个请求参数的描述信息 ApiImplicitParam属性 属性取值作用paramType查询参数类型path以地址的形式提交数据query直接跟参数完成自动映射赋值body以流的形式提交 仅支持POSTheader参数在request headers 里边提交form以form表单的形式提交 仅支持POSTdataType参数的数据类型 只作为标志说明并没有实际验证LongStringname接收参数名value接收参数的意义描述required参数是否必填true必填false非必填defaultValue默认值 我们在ApUserLoginController中添加Swagger注解代码如下所示 RestController RequestMapping(/api/v1/login) Api(value app端用户登录, tags ap_user, description app端用户登录API) public class ApUserLoginController {Autowiredprivate ApUserService apUserService;PostMapping(/login_auth)ApiOperation(用户登录)public ResponseResult login(RequestBody LoginDto dto){return apUserService.login(dto);} }LoginDto Data public class LoginDto {/*** 手机号*/ApiModelProperty(value手机号,required true)private String phone;/*** 密码*/ApiModelProperty(value密码,required true)private String password; }启动user微服务访问地址http://localhost:51801/swagger-ui.html 7.3)knife4j (1)简介 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍! gitee地址https://gitee.com/xiaoym/knife4j 官方文档https://doc.xiaominfo.com/ 效果演示http://knife4j.xiaominfo.com/doc.html (2)核心功能 该UI增强包主要包括两大核心功能文档说明 和 在线调试 文档说明根据Swagger的规范说明详细列出接口文档的说明包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息使用swagger-bootstrap-ui能根据该文档说明对该接口的使用情况一目了然。在线调试提供在线接口联调的强大功能自动解析当前接口参数,同时包含表单验证调用参数可返回接口响应内容、headers、Curl请求命令实例、响应时间、响应状态码等信息帮助开发者在线调试而不必通过其他测试工具测试接口是否正确,简介、强大。个性化配置通过个性化ui配置项可自定义UI的相关显示信息离线文档根据标准规范生成的在线markdown离线文档开发者可以进行拷贝生成markdown接口文档通过其他第三方markdown转换工具转换成html或pdf这样也可以放弃swagger2markdown组件接口排序自1.8.5后ui支持了接口排序功能例如一个注册功能主要包含了多个步骤,可以根据swagger-bootstrap-ui提供的接口排序规则实现接口的排序step化接口操作方便其他开发者进行接口对接 (3)快速集成 在heima-leadnews-common模块中的pom.xml文件中引入knife4j的依赖,如下 dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactId /dependency创建Swagger配置文件 在heima-leadnews-common模块中新建配置类 新建Swagger的配置文件SwaggerConfiguration.java文件,创建springfox提供的Docket分组对象,代码如下 package com.heima.common.knife4j;import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;Configuration EnableSwagger2 EnableKnife4j Import(BeanValidatorPluginsConfiguration.class) public class Swagger2Configuration {Bean(value defaultApi2)public Docket defaultApi2() {Docket docketnew Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//分组名称.groupName(1.0).select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage(com.heima)).paths(PathSelectors.any()).build();return docket;}private ApiInfo apiInfo() {return new ApiInfoBuilder().title(黑马头条API文档).description(黑马头条API文档).version(1.0).build();} }以上有两个注解需要特别说明如下表 注解说明EnableSwagger2该注解是Springfox-swagger框架提供的使用Swagger注解该注解必须加EnableKnife4j该注解是knife4j提供的增强注解,Ui提供了例如动态参数、参数过滤、接口排序等增强功能,如果你想使用这些增强功能就必须加该注解否则可以不用加 添加配置 在Spring.factories中新增配置 org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.heima.common.swagger.Swagger2Configuration, \com.heima.common.swagger.SwaggerConfiguration访问 在浏览器输入地址http://host:port/doc.html 8)网关 1在heima-leadnews-gateway导入以下依赖 pom文件 dependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactId/dependency /dependencies2在heima-leadnews-gateway下创建heima-leadnews-app-gateway微服务 引导类 package com.heima.app.gateway;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;SpringBootApplication EnableDiscoveryClient //开启注册中心 public class AppGatewayApplication {public static void main(String[] args) {SpringApplication.run(AppGatewayApplication.class,args);} }bootstrap.yml server:port: 51601 spring:application:name: leadnews-app-gatewaycloud:nacos:discovery:server-addr: 192.168.200.130:8848config:server-addr: 192.168.200.130:8848file-extension: yml在nacos的配置中心创建dataid为leadnews-app-gateway的yml配置 spring:cloud:gateway:globalcors:add-to-simple-url-handler-mapping: truecorsConfigurations:[/**]:allowedHeaders: *allowedOrigins: *allowedMethods:- GET- POST- DELETE- PUT- OPTIONroutes:# 平台管理- id: useruri: lb://leadnews-userpredicates:- Path/user/**filters:- StripPrefix 1环境搭建完成以后启动项目网关和用户两个服务使用postman进行测试 请求地址http://localhost:51601/user/api/v1/login/login_auth 1.3 全局过滤器实现jwt校验 思路分析 用户进入网关开始登陆网关过滤器进行判断如果是登录则路由到后台管理微服务进行登录用户登录成功后台管理微服务签发JWT TOKEN信息返回给用户用户再次进入网关开始访问网关过滤器接收用户携带的TOKEN网关过滤器解析TOKEN 判断是否有权限如果有则放行如果没有则返回未认证错误 具体实现 第一 ​ 在认证过滤器中需要用到jwt的解析所以需要把工具类拷贝一份到网关微服务 第二 在网关微服务中新建全局过滤器 package com.heima.app.gateway.filter;import com.heima.app.gateway.util.AppJwtUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;Component Slf4j public class AuthorizeFilter implements Ordered, GlobalFilter {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {//1.获取request和response对象ServerHttpRequest request exchange.getRequest();ServerHttpResponse response exchange.getResponse();//2.判断是否是登录if(request.getURI().getPath().contains(/login)){//放行return chain.filter(exchange);}//3.获取tokenString token request.getHeaders().getFirst(token);//4.判断token是否存在if(StringUtils.isBlank(token)){response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.setComplete();}//5.判断token是否有效try {Claims claimsBody AppJwtUtil.getClaimsBody(token);//是否是过期int result AppJwtUtil.verifyToken(claimsBody);if(result 1 || result 2){response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.setComplete();}}catch (Exception e){e.printStackTrace();response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.setComplete();}//6.放行return chain.filter(exchange);}/*** 优先级设置 值越小 优先级越高* return*/Overridepublic int getOrder() {return 0;} }测试 启动user服务继续访问其他微服务会提示需要认证才能访问这个时候需要在heads中设置设置token才能正常访问。 9)前端集成 9.1)前端项目部署思路 通过nginx来进行配置功能如下 通过nginx的反向代理功能访问后台的网关资源通过nginx的静态服务器功能访问前端静态页面 9.2)配置nginx ①解压资料文件夹中的压缩包nginx-1.18.0.zip ②解压资料文件夹中的前端项目app-web.zip ③配置nginx.conf文件 在nginx安装的conf目录下新建一个文件夹leadnews.conf,在当前文件夹中新建heima-leadnews-app.conf文件 heima-leadnews-app.conf配置如下 upstream heima-app-gateway{server localhost:51601; }server {listen 8801;location / {root D:/workspace/app-web/;index index.html;}location ~/app/(.*) {proxy_pass http://heima-app-gateway/$1;proxy_set_header HOST $host; # 不改变源请求头的值proxy_pass_request_body on; #开启获取请求体proxy_pass_request_headers on; #开启获取请求头proxy_set_header X-Real-IP $remote_addr; # 记录真实发出请求的客户端IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理信息} }nginx.conf 把里面注释的内容和静态资源配置相关删除引入heima-leadnews-app.conf文件加载 #user nobody; worker_processes 1;events {worker_connections 1024; } http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;# 引入自定义配置文件include leadnews.conf/*.conf; }④ 启动nginx ​ 在nginx安装包中使用命令提示符打开输入命令nginx启动项目 ​ 可查看进程检查nginx是否启动 ​ 重新加载配置文件nginx -s reload ⑤打开前端项目进行测试 – http://localhost:8801

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

职业培训学校seo视频教程汇总

1. 题目 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n 1 输出: [1,2,3,4,5,6,7,8,9]说明: 用返回一个整数列表来代替打印 n 为正整数来源:力扣…

个人网站 不用备案兴县做网站

文章目录 前言Job的基本概念什么是Job?Job的主要作用 Job的详细示例示例:运行批量处理任务的JobJob的定义创建Job查看Job状态查看任务执行日志任务的重试 Job的最佳实践 结论 前言 Kubernetes(K8s)作为领先的容器编排平台&#x…

河北网站seo地址东营有网站

HTML5 新标签总汇 2010-12-16 20:44 聂微东 阅读(5060) 评论(8) 编辑 收藏 HTML5新标签总汇&#xff1a; 有问题欢迎指出,有关于CSS3方面的知识点较多,下周一前整理出来. <article> 标签定义外部的内容&#xff08;外部内容如blog,news&#xff09;。     …

使用oss图片做网站企业网站开发用什么语言写

8.3string流 sstream头文件定义了三个类型来支持内存IO,这些类型可以向string写入数据,从string读取数据&#xff0c;就像string是一个IO流一样。istringstream从string读取数据&#xff0c;ostringstream向string写入数据&#xff0c;而头文件stringstream既可从string读数据…

php网站开发教材网易云网站开发

「Author&#xff1a;By Runsen」在很多时候&#xff0c;你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入&#xff0c;然后打印一些结果。我们可以使用input和print语句来完成这些功能。inputname input(your name:)gender input(you are a boy?(y/n))…

肇庆有哪家做企业网站的北京建设信息港网站

由于某些原因&#xff0c;centos系统上的teamviewer不能运行。一直没有管它&#xff08;懒&#xff09;。 但是&#xff0c;突然看不下去了。因为每次开机后都自动启动&#xff0c;需要关闭&#xff0c;否则有问题。所以&#xff0c;uninstall。 尝试了很多都失败。尝试的步骤是…

如何做自己的网站链接官方网站平台有哪些

ROS 系列学习教程(总目录) 本文目录 1. 构造函数与关闭文件2. 属性值3. 写bag文件内容4. 读bag文件内容5. 将bag文件缓存写入磁盘6. 重建 bag 文件索引7. 获取bag文件的压缩信息8. 获取bag文件的消息数量9. 获取bag文件记录的起止时间10. 获取话题信息与消息类型 rosbag 的 Pyt…

上海住房和城乡建设部网站官网学做网站可以赚钱吗

有两种Java运行环境(JRE)&#xff0c;公有JRE (public JRE)与私有JRE(private JRE)。JDK安装程序会安装私有JRE和一个可选的公有JRE。私有JRE完全包含在JDK的安装路径下&#xff0c;仅对JDK可见&#xff0c;为JDK所用。公有JRE为系统中所有的Java程序共享&#xff0c;具有独立的…

wordpress多站点配置教程佛山做网站有哪几家

前段时间在调试FT-M6678和C6678的板卡&#xff0c;结果中途来了一个T2080网络配置的更改需求&#xff0c;就临时处理了一下&#xff0c;花了一点功夫&#xff0c;记录下来&#xff0c;为大家做个参考。 这个问题完成后&#xff0c;就得继续开发FT-M6678了~ uboot下面phy配置更…

素材网站哪个最好中国制造网站上的聊天怎么做

介绍 Laf 是一个完全开源的 Serverless 框架&#xff0c;Laf 的 Node.js 运行时容器 (以下简称为 Runtime) 是 Laf 的函数执行环境&#xff0c;依托于 Express.js 框架。采用容器进程常驻的方式&#xff0c;每一个应用对应于一个或多个容器 (弹性伸缩下)&#xff0c;底层使用了…

做网站的的人收入多少钱电子商务网站开发项目

目录 1.C#的dll注册为COM&#xff0c;采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

企业设计网站公司排名重庆网络教育学院官网

建议使用 root 管理员账户操作 1、安装工具 1、apache 2、.Net Core(dotnet-sdk-2.0) 3、Supervisor(进程管理工具&#xff0c;目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站) 2、安装apache 在安装apache之前&#xff0c;要先做一件事就是&#xff0c;把当前登…

密云成都网站建设wordpress提示插件安装插件

据说2021年12月2日是一个美好日子&#xff0c;因为这是一个完全对称日&#xff01;这里认为一个美好日子是一个共8位数字的完全对称日&#xff08;例如20211202&#xff09;&#xff0c;其中年份占4位&#xff0c;月份、日份都是2位。对于给定的年份&#xff0c;请判断该年是否…

怎么做天猫内部券网站手机app制作网站

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trafilatura 是一个用于从网页上提取文本的命令行工具和 python 包: 提供网络爬虫、下载、抓取以及提取主要文本、元数据和评论等功能可帮助网站导航和从站点地图和提要中提取链接无需数据库&#xff0c;输出即可转换…

用网站做邮箱孟州网站

方法 1 首先打开控制面板 2 点击程序 3 点击程序与功能 4 点击左边启用或关闭windows功能 5 在telnet客户端打上勾 点击确定 6 winr打开运行 输入cmd 7 打开后输入telnet ip 端口号 如果出来其他窗口则说明这个端口可用。若出现超时&#xff0c;说明这个端口不可用 前提…

建设网站策划案怎么根据已有网站做新网站

下载下载器 Qt开发技巧之快速安装多版本Qt_qt安装多版本-CSDN博客 无法下载存档bug-更换镜像源 windows安装QT时出现“无法下载存档……”解决办法 - lmore - 博客园 (cnblogs.com)

网站建设下一步打算中国建筑企业

一、数据库引擎 数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务&#xff0c;从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储…

许昌建网站的公司在哪条路户外保险网站

2024有哪些好的游戏下载网站&#xff1f; 6miu盘搜是一款功能强大的网盘搜索工具,可以快速搜索并下载各种游戏。它支持多种搜索方式,包括游戏名称、游戏类型、发行商等,并且可以根据游戏大小进行精准搜索。用户可以通过6miu盘搜的高级搜索功能,找到自己需要的游戏,无论是在公共…

网站申请页面网站备案归哪里管

在科技日新月异的今天&#xff0c;企业的综合实力成为衡量其市场竞争力的重要指标。四川汇聚荣聚荣科技有限公司作为一家在行业内具有一定影响力的企业&#xff0c;其综合实力如何&#xff0c;自然成为外界关注的焦点。以下将从多个维度深入分析该公司的实力。 一、公司概况与核…

网站开发任务手机网站建设app

在Web上显示图片&#xff0c;通常都会有图片显示比例问题&#xff0c;如果不给<img />限制width和height&#xff0c;那么如果图片大了就会将整个页面挤乱&#xff0c;图片小了又会使图片失真。我的需求如下&#xff1a;1、预先定义好图片显示的标准宽度和高度。2、如果图…