SpringBoot
- 简化Spring开发的框架
优点
- 可以快速独立的创建Spring及主流框架集成的项目。
- 使用了嵌入式的Servlet容器,无需生成WAR包
- 我们在使用SpringBoot进行开发时可以使用Starts启动依赖,而SpringBoot会自动地把所需要的其他相关技术jar包导入.
- .大量的自动配置,极大地简化了我们的开发。
- 无需XML文件的大量编写,也不会生成代码,底层是利用SpringBoot写好的API来调用实现,开箱即用
- SpringBoot也有运维监控项目的功能
- SpringBoot与云计算的集成
具体实现
- 相关依赖
1 2 3 4 5 6 7 8 9 10 11
| <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
|
- 命令行启动需要依赖maven插件支持
1 2 3 4 5 6 7 8
| <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
|
- 程序启动,会提供主程序启动类
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package com.itheima;
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication public class Springboot06ConfigFileApplication {
public static void main(String[] args) { SpringApplication.run(Springboot06ConfigFileApplication.class, args); }
}
|
- 其他注意的点
- SpringBoot在创建项目的时候,采用jar的打包方式
- 引导类就是项目入口,运行main方法就可以启动项目
- 引导类起到配置类的作用,它会将它及其所在的子包全部扫描一遍
配置文件
-
核心配置文件名为application
-
配置文件加载顺序
application.properties>application.yml>application.yaml
- yaml
- 大小写敏感
- 属性层级关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
- 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔
- #表示注释
- 核心规则:数据前面要加空格与冒号隔开
- 如何使用
-
设置属性值
1 2 3 4 5 6 7 8 9 10 11
| @Component
@ConfigurationProperties(prefix = "enterprise") public class Enterprise { private String name; private Integer age; private String tel; private String[] subject; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| lesson: SpringBoot
server: port: 80
enterprise: name: itcast age: 16 tel: 4006184000 subject: - Java - 前端 - 大数据
|
-
还可以通过vauel注入的形式
1 2 3 4 5 6 7
| @Value("${lesson}") private String lesson; @Value("${server.port}") private Integer port; @Value("${enterprise.subject[0]}") private String subject_00;
|
- 多环境配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| spring: profiles: active: dev
---
spring: config: activate: on-profile: dev server: port: 80 ---
spring: profiles: pro server: port: 81 ---
spring: profiles: test server: port: 82 ---
|
Spring和Maven多环境兼容
- Maven设置中设置多环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <profiles> <profile> <id>dev</id> <properties> <profile.active>dev</profile.active> </properties> </profile> <profile> <id>pro</id> <properties> <profile.active>pro</profile.active> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>test</id> <properties> <profile.active>test</profile.active> </properties> </profile> </profiles>
|
- SpringBoot中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| spring: profiles: active: ${profile.active}
---
spring: profiles: dev server: port: 80 ---
spring: profiles: pro server: port: 81 ---
spring: profiles: test server: port: 82 ---
|
SpringBoot整合SSM
整合JUnit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| package com.itheima.service;
import com.itheima.domain.Book; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List;
@SpringBootTest public class BookServiceTest {
@Autowired private BookService bookService;
@Test public void testGetById(){ Book book = bookService.getById(2); System.out.println(book); }
@Test public void testGetAll(){ List<Book> all = bookService.getAll(); System.out.println(all); }
}
|
整合Mybatis
- 配置数据库连接
1 2 3 4 5 6 7
| spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/ssm_db username: root password: root
|
- @Mapper代替Mybatis扫包的动作