复习的版本为SpringBoot2的版本
在pom文件中导入SpringBoot的依赖同时引入web开发的启动器
<!--声明springboot父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<!--web场景启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
package com.dzu.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 主程序类
* @Author ChenRuXu
* @Date 2023/12/30 16:22
* @Version 1.0
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
package com.dzu.boot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @Author ChenRuXu
* @Date 2023/12/30 16:28
* @Version 1.0
*/
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String helloworld(){
return "Hello world SpringBoot2";
}
}
http://localhost:8080/hello(测试返回结果)
在resource下面新建application.properties全局配置文件
配置文件的修改可以参考官网文档
<!--打包插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
父项目中对版本号进行声明,因此不需要写版本号
称为SpringBoot的版本仲裁机制
在springboot中要使用指定的版本,需要使用就近原则(方式1)
在当前的项目中配置了
<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
引入时使用就近修饰使用5.1.43在当期的pom文件中
1、见到很多 spring-boot-starter-* : *就某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter
4、见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。
5、所有场景启动器最底层的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
通过分析依赖树确定对应的关系
因此非官方的版本需要自己进行声明更改
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
编写程序返回指定的容器名字
package com.dzu.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
/**
* 主程序类
* @Author ChenRuXu
* @Date 2023/12/30 16:22
* @Version 1.0
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
//返回所有容器的名字
String[] beanDefinitionNames = run.getBeanDefinitionNames();
//遍历输出
for (String name:beanDefinitionNames){
System.out.println(name);
}
}
}
图中的容器在ioc容器中存在需要进说明让其生效
scanBasePackages放大扫描的路径和范围
或者直接使用@ComponentScan注解
映入对应的场景之后自动配置类之后将不再进行标红(从pom文件中引入对应的启动器)