项目学习第一天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 关注 私信相关文章推荐
- 分布式架构springmvc+springboot+springcloud+redis
- 分布式架构springmvc+springboot+springcloud+redis
- 分布式微服务架构springmvc+springboot+springcloud+redis
- 分布式架构springcloud+redis+springmvc+springboot
- 基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统项目学习《第一天》
- 分布式架构springmvc+springboot+springcloud+redis
- 学习SpringCloud第一章——搭建SpringBoot项目
- spring-cloud-build-项目pom结构1.3.4(Dalston.SR3)-boot(1.5.6) 学习笔记
- Spring Boot和Spring Cloud架构学习(一)--Spring介绍
- spring cloud + spring boot + springmvc+mybatis分布式微服务云架构
- Spring Boot和Spring Cloud微服务架构学习(五)-Docker总结
- Spring Cloud Spring Boot mybatis分布式微服务云架构(十八)使用Spring-data-jpa(2)
- spring-boot学习笔记(二)spring-data-jpa的简介以及项目集成
- Spring Cloud Spring Boot mybatis分布式微服务云架构(十七)使用Spring-data-jpa(1)
- Spring Cloud + spring boot + springmvc + mybatis分布式微服务云架构
- spring cloud + spring boot + springmvc+mybatis分布式微服务云架构
- Spring Boot和Spring Cloud微服务架构学习(四)-Spring Cloud总结
- 新手学习微服务SpringCloud项目架构搭建方法
- 基于Spring cloud boot 的基础功能架构项目介绍文档
- J2EE项目系列(三)--Spring Data JPA+Spring+SpringMVC+Maven快速开发(1)项目架构