日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【project】十次方-01

發(fā)布時(shí)間:2023/12/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【project】十次方-01 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

項(xiàng)目介紹

系統(tǒng)分為3大部分:微服務(wù)、網(wǎng)站前臺(tái)、網(wǎng)站管理后臺(tái);功能模塊分為:問(wèn)答、招聘、交友中心等

該項(xiàng)目融合了Docker容器化部署、第三方登陸、SpringBoot、SpringCloud、SpringData、RabbitMQ等,該項(xiàng)目采用完全的前后端分離,根據(jù)API文檔開(kāi)發(fā)

技術(shù)架構(gòu)

后端架構(gòu):SpringBoot+SpringCloud+SpringData+StringMVC

前端架構(gòu):Node.js+Vue.js+ElementUI+NUXT

【注】:SpringBoot是Spring的純注解版,SpringCloud是一個(gè)整合第三方技術(shù)的架構(gòu),采用SpringBoot方式(零配置文件)封裝到Spring框架

SpringData是持久層的框架,用來(lái)替代Mybatis,更強(qiáng)大的是不僅支持關(guān)系型數(shù)據(jù)庫(kù),也支持非關(guān)系型數(shù)據(jù)庫(kù)的增刪改查

前后端分離

整體架構(gòu)

SpringData JPA

?SpringData JPA詳解

系統(tǒng)設(shè)計(jì)與工程搭建

模塊劃分

RESTful

Restful一種軟件架構(gòu)風(fēng)格,提供了一種設(shè)計(jì)原則和約束條件,基于http協(xié)議,適用于客戶端和服務(wù)器端交互。目的是降低應(yīng)用之間的耦合度,方便框架分布式處理程序

例如:用戶請(qǐng)求的url使用同一個(gè)URL,用不同的請(qǐng)求方式get/post/delete/put等對(duì)請(qǐng)求的處理方法進(jìn)行區(qū)分,在前后臺(tái)分離開(kāi)發(fā)中,不會(huì)對(duì)請(qǐng)求的資源地址產(chǎn)生混淆

SpringMVC對(duì)RESTtful提供了支持

1.?利用@RequestMapping 指定待處理請(qǐng)求的url模板和http請(qǐng)求的動(dòng)作類型

2.?利用@PathVariable將url請(qǐng)求模板中的變量映射到處理方法參數(shù)上

3. 前臺(tái)利用AJAX,在客戶端發(fā)出put、delete動(dòng)作的請(qǐng)求

一般請(qǐng)求格式如下:

@RequestMapping(value="/{id}",method=RequestMethod.GET)

@RequestMapping(value="/{id}",method=RequestMethod.POST)

@RequestMapping(value="/{id}",method=RequestMethod.DELETE)

@RequestMapping(value="/{id}",method=RequestMethod.PUT)

安全冪等性

安全:沒(méi)有發(fā)生臟讀、幻讀、不可重復(fù)讀等;冪等:在操作成功條件下,對(duì)數(shù)據(jù)沒(méi)有產(chǎn)生不好的影響

1.GET安全且冪等,向服務(wù)端發(fā)索取數(shù)據(jù)的請(qǐng)求,類似select操作

2.POST不安全且不冪等,向服務(wù)器端發(fā)送數(shù)據(jù),但是該請(qǐng)求會(huì)改變數(shù)據(jù)的種類等資源,類似insert操作

3.PUT不安全但冪等,向服務(wù)器端發(fā)送數(shù)據(jù),類似update操作

4.DELETE不安全但冪等,刪除某一個(gè)資源,類似delete操作

Docker創(chuàng)建MySQL服務(wù)

0. Linux上已經(jīng)裝過(guò)Docker和各種鏡像

1. 在宿主機(jī)上啟動(dòng)docker,執(zhí)行命令: systemctl start docker

2. 查看鏡像,執(zhí)行命令:docker images

3. 下載鏡像,執(zhí)行命令:docker search xxx ,然后執(zhí)行 docker pull xxxx

4. 制作容器:docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=private centos/mysql-57-centos7

5. 查看正在運(yùn)行的容器:docker ps -a

6. 關(guān)閉容器:docker?stop CONTAINER ID

7. 開(kāi)啟容器:docker?start CONTAINER ID

8. 刪除容器:docker?rm CONTAINER ID

9. 通過(guò)Navicat連接MySQL微服務(wù)

?

tensquare_common模塊開(kāi)發(fā)

1.?新建entity包,創(chuàng)建類Result,用于控制器類返回結(jié)果,這是由于前端需要接收J(rèn)SON對(duì)象,可以通過(guò)@ResponseBody,直接將Bean轉(zhuǎn)為JSON對(duì)象

2.?創(chuàng)建類PageResult ,用于返回分頁(yè)結(jié)果

3. 返回碼定義類StatusCode

4.?分布式ID生成器,由于數(shù)據(jù)庫(kù)要分片部署(MyCat),所以不能使用數(shù)據(jù)庫(kù)本身的自增功能來(lái)產(chǎn)生主鍵值,只能由程序來(lái)生成唯一的主鍵值,util包下的IdWorker.java

tensquare_base模塊開(kāi)發(fā)

1. pom.xml文件引入依賴

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>tensquare_parent</artifactId><groupId>com.tensquare</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>tensquare_base</artifactId><dependencies><!--SpringBoot整合JPA--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!--依賴的common模塊--><dependency><groupId>com.tensquare</groupId><artifactId>tensquare_common</artifactId><version>1.0-SNAPSHOT</version></dependency><!--數(shù)據(jù)庫(kù)鏈接--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies></project> View Code

2.創(chuàng)建啟動(dòng)類

package com.tensquare.base;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import util.IdWorker;/*** @author Oxygen* @create 2018-11-30 - 18:49*/ @SpringBootApplication public class BaseApp {public static void main(String[] args) {SpringApplication.run(BaseApp.class);}@Bean //只有當(dāng)某個(gè)類用到時(shí),通過(guò)@Bean注入到容器public IdWorker idWorker() {return new IdWorker();} } View Code

3.?在resources下創(chuàng)建數(shù)據(jù)庫(kù)配置文件application.yml

server:port: 9001 #base微服務(wù)端口號(hào) spring:application:name: tensquare-base #模塊名字,必須寫-datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://X.X.X.X:3306/tensquare_base?characterEncoding=utf-8 username: Xpassword: Xjpa:database: mysqlshow-sql: true View Code

4. CURD

5. 公共異常處理

package com.tensquare.base.controller;import entity.Result; import entity.StatusCode; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;/*** 統(tǒng)一異常處理** @author Oxygen* @create 2018-12-01 - 19:26*/ @RestControllerAdvice //如果全部異常處理返回json,那么可以使用 @RestControllerAdvice 代替 @ControllerAdvice , // 這樣在方法上就可以不需要添加 @ResponseBody。 public class BaseExcepitonHandler {@ExceptionHandler(value = Exception.class)public Result exception(Exception e) {e.printStackTrace();return new Result(false, StatusCode.ERROR, e.getMessage());} } View Code

轉(zhuǎn)載于:https://www.cnblogs.com/oxygenG/p/10046778.html

總結(jié)

以上是生活随笔為你收集整理的【project】十次方-01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。