SpringBoot概述
Spring缺点
SpringBoot功能
功能:
- 快速启动:内置了各种应用服务器,默认使用tomcat
- 自动配置:控制Springboot内部的程序那些生效
- 依赖管理:自动管理JAR的版本
- 统一监控:监控服务的运行状态
小节
SpringBoot快速入门
- pom.xml:
- web依赖集成了spring+springmvc
引导类:
- 访问页面:
- 快速构建SpringBoot工程:
- 编写controller:
- 访问页面:
- 原理:start.spring.io
SpringBoot起步依赖原理分析
- spring-boot-starter-parent
- spring-boot-starter-web
SpringBoot配置
配置文件分类
- 三个配置文件全部打开
- 优先级:
properties>yml>yaml
优先级高的会覆盖优先级低配置的内容
yaml
- @Value
- Environment:程序启动时配置的环境变量,使用此方式获取
- @ConfigurationProperties(prefix = “person”) 把一组属性注入到一个对象中
profile
- 激活配置文件
- yml多文档方式
- 虚拟机参数
内部配置加载顺序
外部配置加载顺序
- 通过官网查看外部属性加载顺序: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
注意:以上17个顺序代表优先加载顺序
- 举例
命令行方式:先打包,找到jar包所在目录,运行shell窗口,输入命令运行
- 配置外部配置文件
- 外部配置和内部配置是互补的,项目打包后可通过外部文件修改少量配置
SpringBoot整合其他框架
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootTestApplication.class)
public class UserServiceTest {
@Autowired
private UserService userService;
@Test
public void testAdd() {
userService.add();
}
}
启动类:
package com.itheima.springbootjunit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootJunitApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootJunitApplication.class, args);
}
}
依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--<scope>runtime</scope>-->
</dependency>
配置:
# mybatis
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml # mapper映射文件路径
type-aliases-package: com.itheima.springbootmybatis.domain
如需修改配置文件:
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置:
spring:
redis:
host: 127.0.0.1 # redis的主机ip
port: 6379
测试类:
package com.itheima.springbootredis;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.BoundValueOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootRedisApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testSet() {
//存入数据
redisTemplate.boundValueOps("name").set("zhangsan");
}
@Test
public void testGet() {
//获取数据
Object name = redisTemplate.boundValueOps("name").get();
System.out.println(name);
}
}