济南集团网站建设流程,代理网站是什么,百度云域名购买,佛山网站建设玲念建站文章目录 Springboot是什么Springboot2.x依赖环境和版本新特性说明为什么学习Springboot从springboot优点来看从未来发展的趋势来看 开发环境Spring Boot开发环境搭建和项目启动jdk 的配置Spring Boot 工程的构建maven配置IDEA 快速构建maven 创建工程常用注解 完整代码 Spring… 文章目录 Springboot是什么Springboot2.x依赖环境和版本新特性说明为什么学习Springboot从springboot优点来看从未来发展的趋势来看 开发环境Spring Boot开发环境搭建和项目启动jdk 的配置Spring Boot 工程的构建maven配置IDEA 快速构建maven 创建工程常用注解 完整代码 Springboot是什么
Spring Boot是一个用于开发Java应用程序的开源框架。它基于Spring框架简化了Spring应用程序的配置和部署过程。Spring Boot通过自动配置来减少开发者的工作量提供了一种快速构建应用程序的方式。
Springboot2.x依赖环境和版本新特性说明
讲解新版本依赖环境和Springboot2新特性概念
依赖版本jdk8以上Springboot2.x用JKD8因为底层是Spring framework5安装maven最新版本maven3.2以上版本新特性翻译工具https//translate.google.cn/springbootGitHub地址http//github.com/spring-projects/spring-bootSpringboot官方文档http//spring.io/guides/gs/spring-boot
为什么学习Springboot
从springboot优点来看
简化配置Spring Boot提供了自动配置的功能可以根据项目的依赖和环境自动配置应用程序。开发者无需手动配置大量的XML文件或注解可以快速搭建整个项目的基础框架。快速开发Spring Boot提供了许多开箱即用的功能和扩展库可以大大减少开发时间和工作量。开发人员可以通过使用这些功能和库快速搭建应用程序而无需重复编写常见的代码。独立性Spring Boot应用程序可以作为独立的可执行文件运行无需外部的Web服务器。它内置了嵌入式Web服务器如Tomcat、Jetty等可以直接运行应用程序。这样可以减少部署和运维的复杂性易于测试Spring Boot提供了一系列的测试工具和框架可以方便地进行单元测试、集成测试和端到端测试。开发者可以使用这些工具来保证应用程序的质量和稳定性。生态系统Spring Boot是在Spring框架之上构建的可以充分利用Spring框架丰富的生态系统。开发者可以方便地集成其他Spring组件和第三方库提供更灵活和可扩展的解决方案。
从未来发展的趋势来看
Spring Boot未来发展的趋势是更加注重微服务架构、云原生应用、响应式编程、安全性增强以及更好的集成和开发体验。这些趋势将有助于Spring Boot在未来持续地发展和壮大并进一步提升在开发者中的地位和影响力。
开发环境
开发工具
JDK版本Spring Boot版本Maven版本3.5.2
涉及到的插件
FastJsonSwagger2ThymeleafMyBatisRedisActiveMQShiroLucenceYAML
Spring Boot开发环境搭建和项目启动
jdk 的配置
使用 IDEA 进行开发在IDEA 中配置 jdk 的方式很简单打开文件-项目结构如下图所
选择 SDKs在 JDK home path 中选择本地 jdk 的安装目录在 Name 中为 jdk 自定义名字
Spring Boot 工程的构建
maven配置
创建了 Spring Boot 项目之后需要进行 maven 配置。打开文件-设置搜索 maven配置一下本地的 maven 信息。如下
IDEA 快速构建
在IDEA 中可以通过文件-新建-项目来快速构建 Spring Boot 工程。如下选择 Spring Initializr在 Project SDK 中选择刚刚我们导入的 jdk点击 Next到了项目的配置信息。 组填企业域名本课程使用com.itcodai 工件填项目名称本课程中每一课的工程名以course课号命令这里使用 course01 依赖项可以添加我们项目中所需要的依赖信息根据实际情况来添加本课程只需要选择 Web 即可。
maven 创建工程
Springboot是建立在maven上的我们只需要创建一个maven工程导入SpringBoot依赖即可 不需要选择原型 输入项目名称点击完成即可
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.7/version
/parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency
/dependenciesimport org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;//这是一个复合注解通常情况下我们会把启动类放到项目的顶级目录
//注意SpringBootApplication中的ComponentScan会默认扫描本类所在包一下的子包
SpringBootApplication
public class DemoAplication {public static void main(String[] args) {SpringApplication.run(DemoAplication.class,args);}
}import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class HelloController {RequestMapping(/)public String hello(){return hello;}
}重新运行 main 方法启动项目在浏览器中输入 localhost:8080如果看到“hello”那么恭喜你项目启动成功Spring Boot 就是这么简单方便端口号默认是8080如果想要修改可以在 application.properties 文件中使用 server.port 来人为指定端口如811端口
server.port811常用注解
启动类的注解 SpringBootApplication是一个复合注解。SpringBootApplicationSpringBootConfigurationEnableAutoConfigurationComponentScan SpringBootConfigurationSpringBootConfiguration标注在类上相当与把该类作为Spring的xml配置文件中的beans 作用为配置Spring容器应用上下文 EnableAutoConfiguration开启自动配置。MATA-INF下的Spring.facotries的一些自动配置类 ComponentScan扫描注解。如果不配置basepackage默认扫描ComponentScan注解类的同级类和子目录下的所有类。所以要把启动类放到顶级目录。 控制层的注解 RestController and RequestMapping是SpringMvc的注解不是SpringBoot的特有的 RestController ControllerResponseBody
完整代码
//bean类
import com.fasterxml.jackson.annotation.*;
import lombok.Data;import java.io.Serializable;
import java.util.Date;Data
public class Person implements Serializable {private String userid;JsonIgnore//字段不返回private int age;JsonFormat(pattern yyyy-MM-dd)//指定时间格式private Date time;JsonProperty(dizi)//指定别名 注意使用别名后请求中key也要使用别名private String address;JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回private String mailbox;}Controller类
import com.demo.bean.Person;
import org.springframework.web.bind.annotation.*;RestController
public class HelloController {RequestMapping(/)public String hello(){return hello;}/*** 功能描述restful协议。从路径中获取参数* 1.接口中的参数定义建议使用下划线隔开不在使用驼峰* 2.path/{cityid}/{userid}标识路径中那些参数* 3.methodRequestMethod.GET只处理get请求* 4.PathVariable(cityid)从路径中取出参数值* return*/RequestMapping(value /{cityid}/{userid},method RequestMethod.GET )public Object test(PathVariable(cityid)String cityid,PathVariable(userid)String userid){return cityid---userid;}/***参数的默认值设置* 添加RequestParam 默认此参数是必填的* return*/RequestMapping(/test02)public Object test02(RequestParam(required false,defaultValue 2) Integer pageNo){return pageNo;}/*** 测试RequestBody。要从请求体中获取数据* 有如下要求* 1.数据要在请求体中* 2.数据的格式为content-type 是值是application/json* return*/RequestMapping(/test03)public Object test03(RequestBody Person person){return person;}/*** 从请求头获取数据* 一般情况下请求头中放置认证信息例如access_token* param access_token* return*/RequestMapping(/test04)public Object test04(RequestHeader String access_token){return access_token;}/*** 获取实体类的参数* JsonIgnore//字段不返回* JsonFormat(pattern yyyy-MM-dd)//指定时间格式* JsonProperty()//指定别名 注意使用别名后请求中key也要使用别名* JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回* return*/RequestMapping(/test05)public Object test05(RequestBody Person person){return person;}
}//pom.xml
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.5/version/parentdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.5.1/version/dependency/dependencies