首页 > 编程语言 > 详细

第98天学习打卡(SpringBoot 如何构建微服务 第一个springBoot 程序)

时间:2021-04-17 11:05:54      阅读:23      评论:0      收藏:0      [点我收藏+]

程序需要高内聚,低耦合

如何构建微服务

一个大型系统的微服务架构,就像一个复杂交织的神经网络,每一个神经元就是一个功能元素,它们各自完成自己的功能,然后通过http互相请求调用,都被微化了,它们作为一个个服务器共同创建了一个庞大的系统。如果修改其中的一个功能,只需要更新升级其中一个功能服务单元即可。

但是这种庞大的系统架构给部署和运维带来很大的难度。于是,spring为我们带来了构建大型分布式微服务的全套、全程产品:

  • 构建一个个功能独立的微服务应用单元,可以使用springboot,可以帮我们快速构建一个应用;

  • 大型分布式网络服务的调用,这部分由spring cloud来完成,实现分布式;

  • 在分布式中间,进行流式数据计算、批处理,我们有spring cloud data flow.

  • spring 为我们想清楚了整个从开始构建应用到大型分布式应用全流程方案。

第一个SpringBoot程序

环境

  • jdk1.8

  • maven 3.6.1

  • springboot: 最新版

  • IDEA

官方:提供了一个快速生成的网站!https://start.spring.io/

IDEA集成了这个网站

我选的版本是8 如果出错的化调回11

技术分享图片

运行出错 调回版本11

运行时出现的的错误:java: 警告: 源发行版 11 需要目标发行版 11

解决办法:

技术分享图片

技术分享图片

 

技术分享图片

最后重启IDEA 我觉得只要这几个版本是一致的就应该都可以运行

  • 可以在官网直接下载后,导入idea开发

技术分享图片

  • 直接使用idea创建一个springboot项目(一般开发直接在IDEA中创建)

技术分享图片

 

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 <!-- 有一个父项目 spring-boot-starter-parent-->
  <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.4.5</version>
  <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.kuang</groupId>
  <artifactId>helloworld1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>helloworld1</name>
  <description>Demo project for Spring Boot</description>
  <properties>
  <java.version>11</java.version>
  </properties>
  <dependencies>
 <!-- web依赖:集成tomcat dispatcherServlet, xml ...-->
  <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
 <!-- spring-boot-starter 所有的springboot依赖都使用这个开头的-->
 <!--单元测试-->
  <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
  </dependency>
  </dependencies>
 ?
  <build>
 <!-- 打jar包插件 -->
  <plugins>
  <plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  </plugin>
  </plugins>
  </build>
 ?
 </project>
 ?

 

如上所示,主要有四个部分:

  • 项目元数据信息:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupId、artifactld、version、name、description等

  • parent: 继承spring-boot-starter-parent的依赖管理,控制版本与打包内容

  • dependencies"项目具体依赖,这里包含了spring-boot-starter=web用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用spring mvc 构建web(包括RESTful)应用程序的入门者,使用Tomcat作为默认嵌入式容器:spring-boot-starter-test用于编写单元测试的依赖包。

  • build:构建配置部分,默认使用spring-boot-maven-plugin,配合spring-boot-starter-parent 就可以把Spring Boot应用打包成JAR来直接运行。

1.在同级目录下建包,否则识别不到:

技术分享图片

2.在包中新建一个Controller类:

HelloController

 package com.kuang.helloworld1.controller;
 ?
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 //springboot的核心原理是自动装配
 @RestController
 public class HelloController {
 // 接口 : http://localhost:8080/hello
     @RequestMapping("/hello")
     public String hello(){
 ?
         //调用业务,接受前端的参数
         return "hello, World";
    }
 }
 ?

 

出现的错误:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project helloworld1: Fatal error compiling

解决办法

在pom.xml中添加以下代码:

 <plugins>
  <plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  </plugin>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.4.3</version>
  </plugin>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
  <configuration>
  <source>1.8</source>
  <target>1.8</target>
  </configuration>
  </plugin>
 ?
  </plugins>
 ?

打包成功会有一个jar包:

技术分享图片

在此页面点击shift + 鼠标右键显示在此打开powershell窗口。

技术分享图片

输入的命令:java -jar.\helloworld1-0.0.1-SNAPSHOT.jar

技术分享图片

 

出现的错误:Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings. Error message: Cannot download ‘https://start.spring.io‘: connect timed out

解决办法:1

技术分享图片

解决方法2:更换为阿里云的 https://start.aliyun.com/

技术分享图片

 

要使springboot运行完不结束 要在pom.xml中导入依赖:

 <dependency>
   <!--start启动器-->          <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         
         </dependency>

 

springboot运行时出的错:Web server failed to start. Port 8080 was already in use.

解决办法

把不用的那些idea 文件 或者与此项目无关的IDEA文件关掉 并且在maven 那里进行clean。就可以运行出来。

 

第98天学习打卡(SpringBoot 如何构建微服务 第一个springBoot 程序)

原文:https://www.cnblogs.com/doudoutj/p/14668999.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!