# 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 ```