spring boot 开发入门示例
09 Apr 2017准备开发环境
使用 sdk man 安装 gradle
curl -s "https://get.sdkman.io" | bash
sdk install gradle
安装结束后,gradle 的安装路径在
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
使用阿里的 maven 仓库
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
用 start.spring.io 创建一个初始项目
访问 http://start.spring.io 按照提示创建初始项目模板,下载后解压开。
参考Building Application with spring boot 来创建一个 hello world web程序。
记得配置 spring-boot-start-web 依赖
更多的spring boot 文档可以参考下面:
尝试使用 spring-boot-devtools 模块
为了方便开发,可以添加一个模块
compile('org.springframework.boot:spring-boot-devtools')
这样修改程序后 spring boot 就会自动重启web 容器,达到快速预览的目的。
做单元测试
先要引入依赖模块
testCompile('org.springframework.boot:spring-boot-starter-test')
然后编写单元测试类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class HelloControllerTest {
@Autowired MockMvc mockMvc;
@Test
public void test() throws Exception{
// 1. 构建一个 mock mvc request build
MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON_UTF8);
// 2. 用 mock mvc 执行请求
mockMvc.perform(request).andExpect(status().isOk())
.andExpect(content().string(equalTo("你好,欢迎使用 Spring Boot Web!")));
}
}
做集成测试
导入的包是
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
public class HelloControllerIT {
@LocalServerPort
private int port;
private URI base;
@Autowired
private TestRestTemplate template;
@Before
public void before() throws Exception{
this.base = new URI("http://localhost:" + this.port);
}
@Test
public void testHello() {
ResponseEntity<String> response = template.getForEntity(this.base, String.class);
assertThat(response.getBody(), equalTo("你好,欢迎使用 Spring Boot Web!"));
}
}
开发一个 spring cloud 服务
用 start.spring.io 生成初始项目
选择 web, jpa, h2, devtool 模块
记得将生成的项目 build.gradle 中的 maven 首选仓库改为 阿里云 maven 仓库。
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
jpa 的文档参考这里:
https://spring.io/guides/gs/accessing-data-jpa/