文章目录
- 1,课程回顾
- 2,本章重点
- 3,具体内容
- 3.1 什么是springboot
- 3.2 特点
- 3.3 Springboot hello world实例
- 3.4 Springboot restful实例
- 3.5 springboot项目启动的本质以及springboot自动装配的核心原理, @Import解析,@EnableAutoConfiguration,手写Starts
- 3.6 springboot整合mybatis
- 3.7 yaml的简介与配置
1,课程回顾
2,本章重点
什么是springboot
springboot的特点
主要注解的解释
SpringApplication.run方法的执行
springboot整合mybatis 增删改查
3,具体内容
3.1 什么是springboot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
(官网)
Spring Boot使您可以轻松地创建独立的、生产级的、基于Spring的应用程序,您可以“只是运行”。
我们对Spring平台和第三方库有一个独到的见解,这样您就可以从最少的麻烦开始了。大多数Spring引导应用程序只需要很少的Spring配置。
3.2 特点
1, 创建独立的Spring应用程序
2,直接嵌入Tomcat、Jetty或Undertow(不需要部署WAR文件)
3,提供独特的“starter”依赖项以简化构建配置(简化pom配置)
4,尽可能自动配置Spring和第三方库
5,提供生产就绪功能,如度量、运行状况检查和外部化配置
6,完全没有代码生成,也不需要XML配置
3.3 Springboot hello world实例
参考项目:springboot_helloworld_demo_20220330_1
1,在线创建项目,下载,解压
3,在Terminal终端 使用mvnw springboot:run 相当于maven命令运行项目
或者直接点启动类,右键 运行
4,测试
http://localhost:8080/hello http://localhost:8080/hello?name=qy148
3.4 Springboot restful实例
参考项目:springboot_restful_demo_20211213
1,使用idea工具创建项目(参考官网)
2,编写代码
3,启动测试
http://localhost:8080/greeting http://localhost:8080/greeting?name=qy148打jar包运行:
3.5 springboot项目启动的本质以及springboot自动装配的核心原理, @Import解析,@EnableAutoConfiguration,手写Starts
看我另一篇文章
3.6 springboot整合mybatis
1)添加依赖(最新spring-boot2.5.2+mybatis-spring-boot-starter 2.2.0)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!--oracle驱动包-->
<dependency>
<groupId>oracle</groupId>
<artifactId>oracle-jdbc</artifactId>
<version>12.1.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.10</version>
</dependency>
2)添加 application.properties
#数据源配置
# 链接数据库四要素
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db_aiops03?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
#mybatis实体别名配置
mybatis.typeAliasesPackage=com.aaa.springboot.entity
#mapper文件扫描
mybatis.mapper-locations=classpath\:mapper/*.xml
#工程名
server.servlet.context-path=/test
#端口号
server.port=8080
#tomcat编码
server.tomcat.uri-encoding=UTF-8
3),编写dao及mapper
4),编写service及实现类
5),编写controller
6),编写页面
7),@MapperScan(“com.aaa.sb.dao”)
启动测试
3.7 yaml的简介与配置
简介:
YAML是一个可读性高,用来表达数据序列化的格式。YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲。
格式:
数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。
house:
family:
name: Doe
parents:
- John
- Jane
children:
- Paul
- Mark
- Simone
address:
number: 34
street: Main Street
city: Nowheretown
zipcode: 12345
字串不一定要用双引号标识;
在缩排中空白字符的数目并不是非常重要,只要相同阶层的元素左侧对齐就可以了(不过不能使用TAB字符);
允许在文件中加入选择性的空行,以增加可读性;
在一个档案中,可同时包含多个文件,并用“——”分隔;
选择性的符号“…”可以用来表示档案结尾
在springboot中使用:
# yml 和properties 同时存在时 yml 优先加载
#配置本项目的启动(访问)端口号
server:
port: 8081
servlet:
context-path: /sbm
mybatis:
mapper-locations:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_aiops03?useUnicode=true&characterEncoding=utf-8
username: root
password: root
RequestBody 不支持的问题,解决:
1,pom.xml添加包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
2,创建配置类config.HttpConverterConfig 复制下面内容:
package com.aaa.sbm.config;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
/**
* fileName:HttpConverterConfig
* description:
* author:zz
* createTime:2019/11/25 17:24
* version:1.0.0
*/
@Configuration
public class HttpConverterConfig {
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1.定义一个converters转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
// 2.添加fastjson的配置信息,比如: 是否需要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
// 3.在converter中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
// 4.将converter赋值给HttpMessageConverter
HttpMessageConverter<?> converter = fastConverter;
// 5.返回HttpMessageConverters对象
return new HttpMessageConverters(converter);
}
}
3,测试成功