来写一个HelloWorld
1、可以在Spring Initializr上添加或者手动在pom.xml添加代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Pom.xml中有个默认模块,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
其中,<scope>test</scope>表示依赖的组件仅参与测试工作,包括测试的编译和执行,但是不会包含在打包文件中。spring-boot-starter-test内置了多种测试工具,便于做单元测试、集成测试。
2、编写Controller内容
创建HelloController:
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello world";
}
}
@ RestController是指controller中的方法都以json格式输出,不需要其他配置了;如果配置@Controller,代表内容输出到页面。@RequestMapping("/hello")提供路由信息,HTTPRequest中“/hello”路径都会映射到hello()方法上。
3、启动主程序
右键单击项目中的 HelloApplication | run 命令,就可以启动项目了。SpringBoot还提供了另外两种启动方式:
在项目路径下,使用命令行 mvn spring-boot:run 来启动;
或者将项目打包,打包后以 Jar 包的形式来启动:
# 进行项目根目录
cd ../hello
# 执行打包命令
mvn clean package
# 以 Jar 包的形式启动
java -jar target/hello-0.0.1-SNAPSHOT.jar
4、传入参数的请求
请求传参一般分为url传参和表单传参两种方式。Spring提供了很多参数接收方式,这里看下url传参。只要后端处理请求方法中包含参数键相同名称的属性,Spring会自动复制到属性中,使用到方法上。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(String name) {
return "hello world, " +name;
}
}
通过浏览器网址http://localhost:8080/hello?name=liudc,即可。
热部署
热启动需要引入另一个组件: spring-boot-devtools。该组件中包含了我们需要的热部署功能。添加依赖到pom.xml中,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-Devtools</artifactId>
<optional>true</optional>
</dependency>
在plugin中配置另一个属性fork为true即可,
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
注:使用IDEA开发的话因为idea默认不会自动编译,则还需要配置选择 File | Settings | Compiler 命令,然后勾选 Build project automatically 复选框,低版本的 IDEA 请勾选 make project automatically 复选框。
单元测试
如果我们只想运行helloworld,只需要添加@Test注解就可以了。
public class HelloTest {
@Test
public void hello(){
System.out.println("hello world");
}
}
如果测试web层的请求,SpringBoot给出了支持,使用MockMVC进行Web测试,可以模拟post、get请求。
@SpringBootTest
public class HelloTest {
private MockMvc mockMvc;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void getHello() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.post("/hello?name=小明")
.accept(MediaType.APPLICATION_JSON_UTF8)).andDo(print());
}
}
其中,@Before在测试启动时会优先执行,一般作为资源优化使用。.accept(MediaType.APPLICATION_JSON_UTF8))用于设置编码,避免中文乱码。
对比使用前后
1、使用前
配置web.xml,加载Spring和SpringMVC;
配置数据库连接、配置事务;
配置加载配置文件的读取,开启注解
…………..
配置完成后tomcat调试。
2、使用后
页面配置导入到开发工具中
进行代码编写
运行
由上述对比可知,SpringBoot在开发阶段做了大量优化,很容易构建项目。