您的位置:首页 > 编程语言 > Java开发

项目学习第一天SpringBoot+SpringCloud+SpringMVC+SpringData架构

2020-05-10 04:20 1541 查看

项目学习第一天SpringBoot+SpringCloud+SpringMVC+SpringData架构

正文开始前有话要说

  各位大佬们好,因为之前有过很多的学习都没能一一记录下来,非常的可惜,所以打算从今天开始在这里记录我找工作前的一些学习过程,希望大家能够多多批评与指正,谢谢大家啦。

系统设计和工程搭建

  1.了解项目的需求分析;
  2 .理解项目的系统设计以及RESTful ;
  3. 配置JDK 与 本地仓库 ;
  4.完成项目父模块与公共模块的搭建 。
后端架构为:
  SpringBoot+SpringCloud+SpringMVC+SpringData
  采用的分库分表设计,每个业务模块为1个独立的数据库
前后端约定的返回码列表:

状态描述 返回码
成功 20000
失败 20001
用户名密码错误 20002
权限不足 20003
远程调用失败 20004
重复操作 20005

在项目中用到了GET/POST/PUT/DELETE四种方法,学习到了一些状态码的概念:

get 安全且幂等
200(OK) 表示已在响应中发出
404 (not found) 资源不存在
500 (internal server error) 通用错误响应

开发环境要求

  JDK1.8
  数据库mysql 5.7
  开发工具 idea 2017.1.2
  maven版本3.3.9 docker 新版本
  centos7
  VMware Workstation Pro 12

MYSQL建库建表(容器)

  mysql使用的是docker环境
(1)下载镜像

docker pull centos/mysql‐57‐centos7

(2)创建容器

docker run ‐di ‐‐name=tensquare_mysql ‐p 3306:3306 ‐e  MYSQL_ROOT_PASSWORD=123456  centos/mysql‐57‐centos7

(3)Navicat连接MYSQL

搭建父工程

1.构建maven项目
2.pom.xml 添加配置

<packaging>pom</packaging>

<name>tensquare_parent</name>
<description>十次方项目-黑马程序员</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/>
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

搭建子模块,分布式ID生成

snowflake (雪花)算法,编写工具类IdWorker.java

基础微服务搭建

pom.xml引入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐data‐jpa</artifactId> </dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql‐connector‐java</artifactId> </dependency>
<dependency>
<groupId>com.tensquare</groupId>     <artifactId>tensquare_common</artifactId>
<version>1.0‐SNAPSHOT</version>
</dependency>

创建启动类

package com.tensquare.base;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import util.IdWorker;

@SpringBootApplication
@EnableEurekaClient
public class BaseApplication {
public static void main(String[] args) {
SpringApplication.run(BaseApplication.class,args);
}
@Bean
public IdWorker idWorker(){
return new IdWorker(1,1);
}
}

创建application.yml

server:
port: 9001
spring:
application:
name: tensquare-base
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.66.128:3306/tensquare_base?characterEncoding=utf-8&useSSL=false
username: root
password: root
jpa:
database: mysql
show-sql: true
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:6868/eureka/
instance:
prefer-ip-address: true

使用postman进行测试,测试成功

3号深海鱼,强势悍跳预言家 原创文章 7获赞 4访问量 1468 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: