SpingBoot知识总结
SpingBoot知识总结
微服务阶段
spring的核心就是自动装配
什么是springboot
什么是微服务
......
springboot应用程序
原理初深
pom.xml
spring-boot-dependencies:核心依赖在父工程中
我们在引入依赖的时候,不用指定版本,因为有这些版本的仓库
启动器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
启动器说白了就是springboot的启动场景
比如:spring-boot-starter-web,他就会帮我们导入所有的web环境所有依赖
springboot会将所有的功能场景,都变成一个个启动器
主程序:
......
yaml语法讲解:
基本语法:key:(空格)值,中间有空格
#可以注入到我们配置类中
#key value的形式
#name: zmd
#对象形式
#端口号配置
server:
port: 18021
#行内写法
#server: { port: 18021}
yaml:可以直接给实体类赋值
配置文件:
#可以注入到我们配置类中
#key value的形式
#name: zmd
#对象形式
#端口号配置
server:
port: 18021
#行内写法
#server: { port: 18021}
people:
name: ***
age: 18
happy: true
maps: {k1: v1,k2: v2}
实体类:
占位符表达式
JSR303校验:
可以对输入的值进行校验
@Validated
file指的是项目的根目录
在这些位置都可以写配置文件,springboot都可以读取得到
多环境配置:
第一种,多个配置文件,在我们主配置文件中通过配置spring.profiles.active来选择配合文件
第二种,在一个文件中,通过---将其模块化,进行配置
spring整合mybatis
1、配置文件application.yml
server:
port: 18021
# 数据源
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
password: root
username: root
# 整合mybatis
mybatis:
type-aliases-package: com.zmd.pojo
mapper-locations: classpath:mapper/*.xml
2、配置文件dao\mapper
@Mapper
public interface StudentDao {
public List<Student> select();
}
其他正常书写
mvc配置原理
Swagger
前后端分离
Vue + SpringBoot(比较火)
后端:后端是控制层,服务层,数据访问层
前段: 前段控制层,视图层
前后端是通过API进行交互
产生一个问题:前后端集成联调,前段人员无法做到及时协商,尽早解决
解决方案:首先指定一个schema【计划的提纲】,实时更新最新API
以前基本都是word计划文档,但是不适用人多的情况
Swagger号称世界上最流行的Api框架
RestFul Api文档在线自动生成工具,api文档和api定义同步更新
可以直接运行,在线测试api接口
项目中使用swagger
需要springfox:swagger2、ui
springBoot集成swagger
1、导入相关依赖:
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
2、配置swagger===》config
@Configuration
@EnableSwagger2 // 开启swagger
public class SwaggerConfig {
}
3、测试
http://localhost:18026/swagger-ui.html
配置swagger
Swagger的bean实例:Docker
1、配置基本信息
上面是配置基本信息
2、自定义扫描接口swagger
3、配置是否启动swagger
4、配置swagger分组
如何配置多个分组:用多个Docker来控制
swagger最厉害的还是在线测试
正式发布的时候关闭swagger
springBoot整合redis
spring的配置类:
可以看到所有redis的配置
整合测试:
1、导入依赖
2、配置
# 配置redis
redis:
host: localhost
port: 6379
3、测试redisTemplate
@ApiOperation("获取老师s")// 给api接口加注释
@RequestMapping(value = "getTeacherRedisTemplate",method = RequestMethod.POST)
@ResponseBody
public List<Teacher> getTeacherRedisTemplate(){
List<Teacher> teachers = null;
ListOperations<String, Teacher> s = redisTemplate.opsForList();
String key = "zmd-teacher";
if (redisTemplate.hasKey(key)) {
return s.range(key,0,-1);
} else {
teachers = teacherService.getTeacher();
for (int i = 0; i < teachers.size();i++)
s.leftPush(key,teachers.get(i));
return s.range(key,0,-1);
}
}
zookeeper:
安装:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
本地解压:
执行bin下的server,启动
dubbo:
下载地址:https://github.com/apache/dubbo-admin/tree/master 或 https://github.com/apache/dubbo
解压到本地,修改配置文件zookeeper的地址
在项目下面打包: mvn clean package -Dmaven.test.skip=true
启动target下的jar
spring整合dubbo
引入jar包
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.curator/curator-recipes -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.6.3</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
配置文件编写:
1、注册的名字
2、zookeeper的地址
3、扫描的服务包
4、注册的dubbo端口号
new Contact("", "", "")