系统要求
ssdss不同版本之间的差异可以如下观看:
ssdss①、寻找相应的版本,比如目前最新版本是2.5.6,所以我们要看相应版本的要求。
ssdss②、点击 “ Getting Started ” 查看相关的系统要求
ssdss③、我们发现系统需要Maven需要3.5版本以上,并且jdk8以上兼容jdk17。
ssdssMaven的相关配置:(在maven所在文件下的config 下的settings.xml进行配置)
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
HelloWorld
ssdss需求:浏览发送/hello请求,响应 Hello,World! 。
创建Maven工程
pom 文件中引入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
创建主程序
编写逻辑业务
测试
ssdss运行主程序,结果如下:
我们可以看到Tomcat已经在8080端口运行了在浏览器端访问: http://localhost:8080/hello
官方地址:https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.first-application.pom
简化配置
简化配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.6</version>
</plugin>
</plugins>
</build>
ssdss执行maven的package命令把项目打成jar包,直接在目标服务器执行即可。cmd执行打包好的程序:(如果是用 tomcat,则要专门打包成 war包)
java -jar boot-01-helloworld-1.0-SNAPSHOT.jar
ssdss【注】:有的时候cmd命令启动不了springboot项目,可能是因为在属性中开启了【快速编辑模式】,取消方法:右击cmd控制台的窗口上方标题区域打开【选项】取消勾选【快速编辑模式】
自动配置讲解
依赖管理
ssdss ● 父项目做依赖管理
<parent> 依赖管理
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
</parent>
上面的父项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.5.6</version>
</parent>
几乎声明了所有开发中常用的依赖的版本号==>自动版本仲裁机制
ssdss ●开发导入 starter 场景启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.5.6</version>
<scope>compile</scope>
</dependency>
ssdss1. 见到很多 spring-boot-starter-* : * 指的是某种场景。
ssdss2. 只要引入starter,这个场景的所有常规需要的依赖我们都自动引入。
ssdss3. SpringBoot所有支持的场景
ssdss4. 见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。
ssdss5. 所有场景启动器最底层的依赖。
ssdss6. 也可以创建自己的 starter。
无需关注版本号,自动版本仲裁
ssdss1. 引入依赖默认都可以不写版本
ssdss2. 引入 非 版本仲裁的jar,要写版本号。
可以修改默认版本号
ssdss1. 查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
ssdss2. 在当前项目里面重写 key 的配置 - 就近优先原则
1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
2、在当前项目里面重写 key 的配置
<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
查看自动配置的组件
ssdss在主程序类查看配置了哪些组件:
/**
* 主程序类
* @SpringBootApplication:加在主程序上,这是一个SpringBoot应用
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
// 查看自动配置的组件
// 1.返回IoC容器
ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
// 2.查看容器里面的组件
String[] names = run.getBeanDefinitionNames();
for (String name:names ) {
System.out.println(name);
}
}
}
自动配置分析
ssdss自动配好Tomcat: • 引入Tomcat依赖。• 配置Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.5.6</version>
</dependency>
ssdss自动配好SpringMVC
sdssdss• 引入SpringMVC全套组件
ssddsss• 自动配好SpringMVC常用组件(功能)
ssdss自动配好Web常见功能,如:字符编码问题 • SpringBoot帮我们配置好了所有web开发的常见场景
ssdss改变扫描路径: @SpringBootApplication(scanBasePackages=“com.atguigu”) 或者@ComponentScan 指定扫描路径
@SpringBootApplication = @SpringBootConfiguration ➕@EnableAutoConfiguration➕ @ComponentScan("com.atguigu.boot")
ssdss各种配置都有默认值
sdssdssssdss• 默认配置最终都是映射到MulyipartProperties
sdssdssssdss• 配置文件的值最终会绑定到每个类上,这个类会在容器中创建对象
ssdss按需加载所有自动配置
sdssdssssdss• 非常多的starter
sdssdssssdss• 引入那些场景,这个场景的自动配置才会开启
sdssdssssdss• SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面