【框架搭建】spring boot入门

spring boot demo 搭建

项目搭建

  1. 创建pom.xml
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  1. 创建入口类
@SpringBootApplication
@RestController
public 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)
@SpringBootTest
public 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 表示在改方法详情页面之中出现的提示;
可视化界面:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值