什么是 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 | 单元测试代码目录 |
.gitignore | git版本管理排除文件 |
pom.xml | maven项目配置文件 |
application.properties 常见配置
参考文档 https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html
//端口配置,默认8080server.port=8082
what is Maven
java 的包管理工具,相当于node 的npm
打jar包,与启动jar 包
可以使用 maven 打包//启动java -jar file.jareg: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 sellerwhere 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配置"}