什么是 spring boot, Spring 框架

why spring boot? 为什么使用spring boot?

Spring Boot为开发提供一个具有最小功能的Spring应用程序,并提供了一个新的范例。使用Spring Boot将能够以更灵活的方式开发Spring应用程序,并且能够通过最小(或可能没有)配置Spring来专注于解决应用程序的功能需求。它使用全新的开发模型,通过避免一些繁琐的开发步骤和样板代码和配置,使Java开发非常容易。

Spring Boot的主要特点

创建独立的Spring应用程序 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件) 提供“初始”的POM文件内容,以简化Maven配置 尽可能时自动配置Spring 提供生产就绪的功能,如指标,健康检查和外部化配置 绝对无代码生成,也不需要XML配置

spring boot项目结构目录简介

目录位置说明
src/main/java项目java文件存放位置,初始化包含主程序入口
src/main/resources存放静态资源,图片、CSS、JavaScript、web页面模板文件等
src/main/resources/static主要用来存放css、图片、js等开发用静态文件
src/main/resources/public用来存放可以直接用于访问的html文件
src/main/resources/templates用来存放web开发模板文件
src/main/resources/application.properties项目配置文件,如端口等
src/test单元测试代码目录
.gitignoregit版本管理排除文件
pom.xmlmaven项目配置文件

application.properties 常见配置

参考文档 https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

//端口配置,默认8080
server.port=8082

what is Maven

java 的包管理工具,相当于node 的npm

打jar包,与启动jar 包

可以使用 maven 打包
//启动
java -jar file.jar
eg:
java -jar boot-01-helloworld-1.0-SNAPSHOT.jar

what is Gradle

mybatis

mybatis的全局配置文件

//通常位置
src/main/resources/mybatis-generator.xml
//包含数据库连接池信息、事务管理器信息等等。

sql映射文件

//通常位置
src/main/resources/mapping/XXXMapper.xml
//保存了每一个sql语句的映射信息,将sql语句抽取出来。

mybatis mapper

<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from seller
where id = #{id,jdbcType=INTEGER}
</select>
id: 对应dao接口类的方法名
parameterType: 对应dao接口类的参数类型,无参数可省略此属性
resultType: 对应dao接口类的返回结果类型,无返回结果可省略此属性
### 解决IDEA无Spring Initializr的问题

企业版本的idea在侧栏中会有spring initializr选项,然而社区版的idea却没有这个选项,需要我们自己去安装插件spring assistant,安装完成后重启

### 请求参数相关的注解
#### @RequestParam @PathVariable

路由 /2/get?id=100&name=jim

页面结果 //Hello 2,100,jim!

后端代码 @GetMapping("/{studentId}/get") public String hello(@PathVariable("studentId") String studentId, @RequestParam String id, @RequestParam String name) { return String.format("Hello %s!", studentId + "," + id + "," + name); }

//如果参数变量名保持一致,注解里面的参数可以省略,比如这里的 id 和 name

#### @RequestBody @RequestHeader @CookieValue

POST 路由 /create

后端代码 @PostMapping("/create") public String createStudent(@RequestBody Map<String, Object> map, @RequestHeader("Content-Type") String cType, @CookieValue("clientId") String clientId, HttpServletRequest request) {

System.out.println(map);
String output = "Content-Type = " + cType +
"clientId = " + clientId +
"token = " + request.getHeader("token");
return output;

}

header 里面的 token 等也可以用 HttpServletRequest 的 request.getHeader("token") 获得

export const _frontmatter = {"title":"什么是 spring boot, Spring 框架","metaTitle":"什么是 spring boot, Spring 框架","metaDescription":"Spring Boot可以轻松创建单独的,生产级的基于Spring的应用程序,大多数Spring Boot应用程序只需要很少的Spring配置"}