1. starter
⼀个
starter
就是⼀个开发场景的⽀持( 依赖 +
配置)
SpringBoot
为我们提供了简化企业级开发绝⼤多数场景的⽀持(提供了多个
starter
),我们在进⾏项⽬开发 的过程中只需引⼊对应的starter
(创建
SpringBoot
应⽤时可选择),相关的依赖和配置就会被内置到项⽬中 (消除⼈⼯配置)。
对于Spring官方Starter,只需在pom.xml配置文件中增加对于Starter的依赖,这个Starter就能够通过代码配置上下文发现并将所需要jar包进行关联,在自动配置类中可以通过@ConditionalOnClass来决定是否实例化(ConditionalOnClass是指在classpath发现需要的依赖的类时实例化)。
1.1starter依赖
⼀个
starter
依赖表示的不是⼀个依赖,⽽是某种开发环境所需的⼀组依赖
Spring Web --- spring-boot-starter-web
MyBatis Framework --- mybatis-spring-boot-starter
1.2 starter配置
⼀个
starter
不仅包含所需依赖,还包含了其所需的对应的配置
MyBatis Framework --- mybatis-spring-boot-starter
依赖:
![](https://i-blog.csdnimg.cn/blog_migrate/48c5ef30e27a5d8843e479a8859dedf1.png)
配置:
1.3 一个案例(引入redis开发场景)
添加starter依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency
在service中可以直接注⼊redis客户端
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserDAO userDAO;
@Resource
private StringRedisTemplate stringRedisTemplate;
}
2. SpringBoot应用的pom文件
2.1基于Spring官⽅服务器创建的SpringBoot应⽤
继承spring-boot-starter-parent.pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-
4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- SpringBoot应⽤中的pom 继承了spring-boot-starter-parent.pom -->
<!-- spring-boot-starter-parent.pom⼜继承了spring-boot-dependencies.pom-->
<!-- 在spring-boot-dependencies.pom已经对主流的框架的版本进⾏了声明 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/>
</parent>
</project>
引⼊了maven对springboot应⽤⽀持的插件 spring-boot
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.qfedu.springboot.demo.SpringbootDemo1Application</mainClass>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
2.2基于ali服务器创建的SpringBoot应⽤
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qfedu</groupId>
<artifactId>springboot-demo2</artifactId>
<version>1.0.0</version>
<name>springboot-demo2</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--SpringBoot引⽤的pom没有继承spring-boot-starter-parent.pom,因此版本需要在当前pom中进⾏定义 -->
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
<build>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<mainClass>com.qfedu.springboot.demo2.SpringbootDemo2Application</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
3. java的配置方式
如果我们需要在
SpringBoot
应⽤中整合⼀种新的开发场景,只需在
pom.xml
引⼊对应的
starter
即可
⼀个
starter
不仅包含依赖,还包含相应的配置,
starter
中包含的配置都是通过
Java
类实现的
——Java
配置⽅式
3.1 Spring版本发展(随着Spring版本的迭代,配置⽅式也在发⽣变化)
3.2 xml配置
<!--applicationContext.xml-->
<bean id="stu" class="com.qfedu.beans.Student"></bean>
<bean id="date" class="java.util.Date"></bean>
3.3 注解配置
@Component
public class Student{
}
3.4 java配置方式
创建类配置
@Configuration
public class SpringConfig{
@Bean
public Date getDate(){
return new Date();
}
}
4. SpringBoot⾃动配置
我们都知道 自动配置是SpringBoot框架最为核心也是最精髓的一点 当你开始创建整个springboot项目的主启动类 并启动它的时候 它就自动的将所有你需要配置的给自动配置了,也导入了相应的组件进入IOC容器,省去了我们之前手动去xml文件里各种繁琐的配置,大大的提高了我们项目环境搭建的效率,并且如果你不满意框架给你的配置,你可以通过它的全局配置文件yml或者propertise来进行修改它的默认配置。
5. 全局配置文件
SpringBoot针对不同的开发场景提供默认的属性配置,如果默认的配置不能满⾜开发的需要,我们需要对属 性配置进⾏修改
SpringBoot
应⽤提供了⼀个全局配置⽂件
application.properties
⽤于进⾏⾃定义配置
全局配置⽂件⽀持
2中语法配置: properties
键值对配置
yaml
语法的配置
5.1 基于properties配置
# 配置数据源 (key必须按照SpringBoot的要求)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=admin123
# 配置映射⽂件路径及实体类的包名
mybatis.mapper-locations=classpath:mappers/*Mapper.xml
mybatis.type-aliases-package=com.qfedu.springboot.demo.entity
5.2 基于yaml配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
driver-class-name: com.mysql.jdbc.Driver
username: root
password: admin123
mybatis:
mapper-locations: classpath:mappers/*Mapper.xml
type-aliases-package: com.qfedu.springboot.demo.entity
5.3 常用全局配置
server:
port: 9999
servlet:
context-path: /demo1
6. ⾃定义Banner
在
SpringBoot
应⽤启动的时候是有⼀个默认启动图案的
这个默认图案⽀持⾃定义配置
在
resources
⽬录创建⼀个
banner.txt
在
banner.txt
⽂件中定义图案
http://patorjk.com/software/taag/
佛祖保佑
// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// . ' \\| |// `.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '< `.___\_<|>_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
//
// .............................................
// 佛祖保佑 永无BUG
// 佛曰:
// 写字楼里写字间,写字间里程序员;
// 程序人员写程序,又拿程序换酒钱。
// 酒醒只在网上坐,酒醉还来网下眠;
// 酒醉酒醒日复日,网上网下年复年。
// 但愿老死电脑间,不愿鞠躬老板前;
// 奔驰宝马贵者趣,公交自行程序员。
// 别人笑我忒疯癫,我笑自己命太贱;
// 不见满街漂亮妹,哪个归得程序员?