# SpringBoot-test1
**Repository Path**: qipeiabc/SpringBoot-test1
## Basic Information
- **Project Name**: SpringBoot-test1
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-03-25
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 实验报告文档一
#### 1、通过IntelliJ IDEA的Spring Initializr向导创建Spring Boot项目
#### 2、 添加两个功能模块:spring MVC、lombok;
#### 3、添加阿里云镜像仓库作为项目maven仓库
```
central
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
default
true
false
```
#### 4、解释项目pom.xml文件中主要标签的意义
- **project**:pom.xml文件中的顶层元素
- **artifactId**:指明此项目产生的主要产品的基本名称。
- **properties**:pom文件中的配置信息,可以配置全局变量
- **dependencies**:依赖配置集,里面可以添加需要的jar的依赖信息
- **packaging** :打包的类型,可以是jar(package)或war(install)、ear等等
- **plugins**:使用的插件列表
- **build**:构建项目需要的信息-
- **resources**:这个元素描述了项目相关或测试相关的所有资源路径
#### 5、配置jetty或undertow作为Spring Boot应用程序的默认Servlet容器
spring boot默认容器为Tomact,所以需要先排除Tomact容器
```
org.springframework.boot
spring-boot-starter-web
spring-boot-starter-tomact
org.springframework.boot
```
在maven中央仓库寻找需要的jetty依赖
```
org.springframework.boot
spring-boot-starter-jetty
```
#### 6、添加一个简单的Spring Mvc控制器组件
在src下的main的java目录下创建Controller包,添加一个简单的控制器组件
```
import org.springframework.web.bind.annotation.*;
@RestController
public class HelloController {
@RequestMapping("/")
public String index(){
return "你好,Spring Boot!";
}
}
```
#### 7、定义一个CommandLineRunner的Bean,用于检查Spring Boot应用程序启动完成后在Spring IoC容器中注册的所有Bean
在主类中注册一个bean
```
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx ) {
return args -> {
System.out.println("以下为Spring Boot注册的所有Bean:");
String[] beansName = ctx.getBeanDefinitionNames();
Arrays.sort(beansName);
for (String beanName : beansName){
System.out.println(beanName);
}
};
}
```
运行结果如下:
#### 8、编写一个简单的单完测试
- 在controller包里添加一个greet控制器
```
@Controller
public class GreetController {
@Autowired
ServiceGreeting serviceGreeting;
@RequestMapping("/greeting")
public @ResponseBody String greeting() {
return serviceGreeting.greet();
}
}
```
- 再添加一个service类
```
@Service
public class ServiceGreeting {
public String greet(){
return "Hello Spring Boot";
}
}
```
- 在src的test目录下测试类下编写如下代码
```
@WebMvcTest(GreetController.class) //用来测试上面编写的类
class Test1ApplicationTests {
@Autowired
private MockMvc mockMvc;
@MockBean
private ServiceGreeting service;
@Test
void contextLoads() {
when(service.greet()).thenReturn("Hello, Mock");
// this.mockMvc.perform(get("/greeting")).andDo(print()).andExpect(status().isOk())
// .andExpect(content().string(containsString("Hello, Mock")));
}
}
```
#### 9、 使用IntelliJ IDEA的HTTP Client工具测试控制器端口
#### 10、在命令行中使用spring-boot插件运行Spring Boot应用程序,并把嵌入式Servlet容器的默认端口8080改为9090
```
java -jar test1-0.0.1-SNAPSHOT.jar –server.port=9090
```
#### 11、在属性文件中配置Spring Boot应用程序以debug模式运行
在src下的main目录下的resource文件下属性文件写上如下代码
```
debug = true
```
#### 12、 在命令行中编译、打包Spring Boot应用程序
```
mvn package
```
#### 13、在命令行中使用java命令运行Spring Boot应用程序的Jar文件
```
cd target #进入target目录
java -jar test1-0.0.1-SNAPSHOT.jar #执行命令
```
#### 14、在命令行中使用java命令运行Spring Boot应用程序的Jar文件,带参数改变嵌入式Servlet容器的默认端口8080改为9090。
```
java -jar test1-0.0.1-SNAPSHOT.jar --server.port=9090
```