北京网站建设seo优化,做网站公司有哪些,什么能建我的网站呢,销售管理系统实验报告Spring Boot的基础使用和 artifactIdspring-boot-maven-plugin/ artifactId爆红的处理
Spring Boot概述
微服务概述
微服务Microservices是一种软件架构风格#xff0c;他是以专注于单一责任与功能的小型功能区块Small Building Blocks 为基础#xff0c;…Spring Boot的基础使用和 artifactIdspring-boot-maven-plugin/ artifactId爆红的处理
Spring Boot概述
微服务概述
微服务Microservices是一种软件架构风格他是以专注于单一责任与功能的小型功能区块Small Building Blocks 为基础利用模块化的方式组合出复杂的大型应用程序各个功能区块使用与语言无关Language-Independet/Language agnostic 的API集相互通信2014年Mation Fowle 与 James Lewis 共同提出了服务的概念定义了微服务是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中并经常从采用HTTP资源API这样轻量级的机制来相互通信。这些服务围绕业务功能进行构建并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写并且可以使用不同的数据存储技术。对这些微服务我们仅作最低限度的集中管理。
单体应用
单体应用一个单块应用系统是以一个单个单元的方式来构建的。企业应用系统经常包含三个主要部分客户端用户界面、数据库和服务端应用系统这里的服务端应用系统就是一个单体的应用系统中任意逻辑发生变化都会导致重新构建部署一个新版本的服务端应用系统。针对单体应用当访问量变大时通常采用负载均衡横向扩展的方式将多个单体应用部署到多个服务器上访问
单体应用的缺点软件变更受到很多的限制应用系统的一个很小的部分得到一处变更也需要将整个单块应用系统进行重新构建和部署。不能根据用户需求部署应用系统中的功能模块只能扩展部署整个应用系统。
单体应用和微服务对比
下面是借鉴的图示可以看出彼此的优劣 微服务应用搭建 要搭建一个微服务运维和部署都变得非常复杂spring提供了一套解决方案
spring Boot:快速构建单个服务
spring Cloud:是一系列有序框架的集合其主要的设施有服务发现与注册配置中心消息总线负载均衡断路器数据监控等通过Spring Boot的方式可以实现一键启动和部署。
Spring cloud data flow:为基于微服务的分布式流出处理和批处理数据通道提供了一系列模型和最佳实践。 Spring Boot简述
Spring-Boot是由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程。个人理解来说Spring-Boot其实不是什么新的框架它默认配置了很多框架的使用方式就像maven整合了所有的jar包Spring-Boot整合了其他相关框架。
Spring Boot的优势
快速构建项目对主流开发框架无配置集成项目可独立运行无序外部依赖Servlet容器提供运行时的应用监控极大的提高了开发、部署效率与云计算的天然集成Spring Boot的核心功能介绍
Spring Boot的核心功能介绍
独立的运行Spring项目Spring Boot 可以jar包形式独立运行运行一个Spring Boot项目只需要通过java -jar xx.jar来运行
内嵌servlet容器Spring Boot 可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。
提供starter简化Maven配置spring提供了一系列的start pom来简化Maven的依赖加载列如当你使用了spring-boot-starter-web会自动加入依赖包。
自动装配SpringSpring Boot会根据在类路径中的jar包类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然Spring Boot只考虑大多数的开发场景并不是所有的场景若在实际开发中我们需要配置Bean,而Spring Boot也有提供支持则可以自定义自动配置。
准生产的应用监控Spring Boot提供基于http ssh telnet 对运行时的项目进行监控
无代码生产和xml配置
Spring Boot 不是借助与代码生成来实现的而是通过条件注解来实现的这是Spring4.x提供的新特性。
Spring Boot入门
注意新建Model时选择Spring Initializr方式新建注意name,language,type,group,package name 点击下一步注意需要注意Web中的SpringWeb的勾选以及SpringBoot选择真确否则下载maven时会出现 artifactIdspring-boot-maven-plugin/ artifactId爆红的情况
然后点击next创建 如果爆红请在如下图加上SpringBoot那里一样的版本号 pom.xml示例在pom.xml中添加lombok的依赖插件该工具使用注解的方式可以减少实体类中对get,set、以及构造器等一系列的替换
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.11/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.etime/groupIdartifactIdday14/artifactIdversion0.0.1-SNAPSHOT/versionnameday14/namedescriptionday14/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.16/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion2.7.11/version/plugin/plugins/build/project
注意创建的格式需要如图所示不然会出现测试报错 创建模拟对象实体类User.java使用注解的方式创建get\set\以及构造函数
package com.etime.day14.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;AllArgsConstructor
NoArgsConstructor
Data
public class User {private int id;private String name;private String password;
}
创建UserController.java
package com.etime.day14.controller;import com.etime.day14.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;Controller
RequestMapping(/user)
public class UserController {RequestMapping(t01)ResponseBodypublic User test(){return new User(1,mary,1234);}
}
找到主函数Day14Application.java根据项目的名不同自动创建的主函数名也不一样运行
使用Apifox接口测试工具进行测试该工具同Postman接口测试工具一样只是Apifox是中文版的测试工具有需要的可以去https://blog.csdn.net/m0_56245143/article/details/130270652?spm1001.2014.3001.5501这个篇博客文章下进行下载和使用 下面我们将使用Apifox工具进行数据模拟实现增删改查
RestController相当于ControllerResponseBody;注册控制器该控制器中所有方法返回数据都会自动转换为json格式除了字符串以外
根据用户id获取用户对象
UserController.java
package com.etime.day14.controller;import com.etime.day14.pojo.User;
import org.springframework.web.bind.annotation.*;RestController
public class UserController {//根据id查询用户信息GetMapping(/user/{uid})public User getUserByUid(PathVariable(uid) int uid){return new User(uid,mary,1234);}
}
Apifox模拟测试 查询所有用户信息 //查询所有用户信息GetMapping(/user)public ListUser getAllUser(){User user1 new User(1,mary,1234);User user2 new User(2,tom,123);User user3 new User(3,lucy,112);ListUser list new ArrayList();list.add(user1);list.add(user2);list.add(user3);return list;}Apifox测试 新增用户
//新增用户PostMapping(/user)public boolean addUser(User user){System.out.println(user);return true;}Apifox测试 更新用户信息 //更新用户信息PutMapping(/user)public boolean updateUser(User user){System.out.println(修改用户信息user);return false;}Apifox测试 根据用户编号删除用户信息
//根据用户id删除用户信息DeleteMapping(/user/{uid})public boolean deleteUser(PathVariable(uid) int uid){System.out.println(删除uid);return true;}Apifox测试