构建微服务系列01:Spring boot 入门篇
title: 构建微服务:Spring boot 入门篇
什么是spring boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
1. maven构建项目
1.1. 访问http://start.spring.io/
1.2. 选择构建工具Maven Project、Spring Boot版本2.0.0.BUILD-SNAPSHOT以及一些工程基本信息.
输入项目信息 :
Group : com.alanzh.portal
Artifact : wish-platform
1.3. 输入dependencies : 在Search for dependencies 选择 web
1.4. 最后点击 Generate Project
1.5. 解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh.
注: 因为网络环境 Spring Boot依赖下载困难, 可以更改本地 maven setting.xml 添加 阿里的镜像.
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
2.项目结构介绍 Spring Boot的基础结构共三个文件:
src/main/java 程序开发以及主程序入口
src/main/resources 配置文件
src/test/java 测试程序
注:springboot建议的目录结果如下:
package结构:com.example.myproject
com
+- example
+- myproject
+- myprojectApplication.java
|
+- domain
| +- Customer.java
| +- CustomerRepository.java
|
+- service
| +- CustomerService.java
|
+- controller
| +- CustomerController.java
|
2.1、Application.java 建议放到跟目录下面,主要用于做一些框架配置
2.2、domain目录主要用于实体(Entity)与数据访问层(Repository)
2.3、service 层主要是业务类代码
2.4、controller 负责页面访问控制
采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改
最后,启动Application main方法,至此一个java项目搭建好了!
3.引入web模块
3.1、pom.xml中添加支持web的模块:(PS: 已经在生成项目的时候选择WEB添加了)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
pom.xml文件中默认有两个模块:
spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;
spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。
3.2 编写controller内容
@RestController
public class WishEntryAction {
@RequestMapping("/")
public String index() {
return "Hello World!";
}
}
@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!
3.3 启动主程序(在myprojectApplication.java run Spring Boot APP),打开浏览器访问http://localhost:8080.
4.如何做单元测试
打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。
@RunWith(SpringJUnit4ClassRunner.class)
public class WishEntryActionTest {
private MockMvc mockMvc;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(new WishEntryAction()).build();
}
@Test
public void testIndex() throws Exception {
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = MockMvcRequestBuilders.get("/");
mockHttpServletRequestBuilder= mockHttpServletRequestBuilder.accept(MediaType.APPLICATION_JSON);
ResultActions resultActions = mockMvc.perform(mockHttpServletRequestBuilder);
resultActions = resultActions.andExpect(MockMvcResultMatchers.status().isOk());
resultActions = resultActions.andDo(MockMvcResultHandlers.print());
resultActions.andReturn();
}
}
执行 mvn test 可以查看结果
评论已关闭