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

项目学习第一天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进行测试,测试成功

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值