【框架搭建】spring boot入门

来源:互联网 发布:minitab软件 编辑:程序博客网 时间:2024/06/06 02:11

spring boot demo 搭建

项目搭建

  1. 创建pom.xml
  <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>  </dependency>
  1. 创建入口类
@SpringBootApplication@RestControllerpublic class Application {    public static void main(String[] args){        SpringApplication.run(Application.class, args);    }    @RequestMapping("/")    @ResponseBody    public String hello(){        return "hello world";    }}
建立Application.java类,Sprin Boot推荐这个类是放在项目代码根目录下的。
Application.java类是一个有main方法的java类,通过运行这个类就可以启动我们的项目了(spring boot的spring-boot-start-web模块内嵌了tomcat容器)。
解释:
入口类之中出现的4个注解名词 :
@SpringBootApplication
这个注解是为了方便我们启动spring-boot应用 spring-boot再次封装的注解,里面包含了其他的注解在一起(@SpringBootApplication注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration
和@ComponentScan),详细可以参考如下文章: http://www.jianshu.com/p/ed141c5f906d
@RestController
这里使用RestController对这个controller类进行注解,RestController是一个混合注解,混合了@Controller和@ResponseBody,因此整个类会被认为是一个控制器类,并且会直接将对应方法的内容返回给页面。
@RequestMapping("/")
使用@RequestMapping来进行url和方法的绑定。其中value指定了要绑定的URL。这里value的值填写为“/”说明对整个网站的根路径“/”进行绑定。
@ResponseBody
表示返回的是字符串内容渲染在页面之中

单元测试

  1. 创建一个UserController
@Api(value = "用户相关接口")@RestController@RequestMapping(value = "/users")public class UserController {    static Map<Long ,User> users = Collections.synchronizedMap(new HashMap<Long ,User>());    @ApiOperation(value = "获取用户列表", notes = "")    @RequestMapping(value = "/", method = RequestMethod.GET)    public List<User> getUserList(){        List<User> r = new ArrayList<User>(users.values());        return r;    }    @ApiOperation(value = "创建用户", notes = "根据user对象创建用户")    @PostMapping(value = "/")    public String postUser(@ModelAttribute User user){        users.put(user.getAge(), user);        return "success";    }    @ApiOperation(value = "获取用户详细信息", notes = "根据的id来获取用户详细信息")    @GetMapping(value = "/{id}")    public User getUser(@PathVariable long id){        return users.get(id);    }    @ApiOperation(value = "更新用户详细信息", notes = "根据的id来指定更新对象,并根据传过来的user信息来更新用户详细信息")    @PutMapping(value = "/{id}")    public String putUser(@PathVariable long id, @ModelAttribute User user){        User u = users.get(id);        u.setAge(user.getAge());        u.setName(user.getName());        users.put(id, u);        return "success";    }}
这个里面出现了@GetMapping @PutMapping和@PostMapping 是为了@RequestMapping里面的对应method方法的简写
在pom中加入test的依赖包
<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-test</artifactId>    <scope>test</scope></dependency>
创建测试类
@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(classes = MockServletContext.class)@SpringBootTestpublic class ApplicationTest {    private MockMvc mvc;    @Before    public void setUp() throws Exception{        mvc = MockMvcBuilders.standaloneSetup(new UserController()).build();    }    @Test    public void getHello() throws Exception{        mvc.perform(MockMvcRequestBuilders.post("/users/")                .param("age","12")                .param("name", "zhang")                .accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk()).andExpect(content().string(equalTo("success")));    }}

swagger2

  1. pom依赖
        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger2</artifactId>            <version>2.7.0</version>        </dependency>        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger-ui</artifactId>            <version>2.7.0</version>        </dependency>
  1. 新建配置类
@configuration 表示这个是配置类
@EnableSwagger2表示开启这个类
可以把这个配置类和Application放在一起
  1. 在controller中注解对应的api
    @ApiOperation(value = "创建用户", notes = "根据user对象创建用户")    @PostMapping(value = "/")    public String postUser(@ModelAttribute User user){        users.put(user.getAge(), user);        return "success";    }
value 表示在ui界面中出现的title文字
Notes 表示在改方法详情页面之中出现的提示;
可视化界面:
http://localhost:8080/swagger-ui.html#/
原创粉丝点击