• Spring Boot 入门


    Spring Boot 入门

    创建项目

    http://start.spring.io/
    

    目录规划

    - src/main/java 程序开发以及主程序入口
    - src/main/resources 配置文件
    - src/test/java 测试程序
    

    java代码目录规划

    Spring Boot 建议的目录规划如下:

    com
      +- easy
        +- helloworld
          +- HelloworldApplication.java
          |
          +- model
          |  +- User.java
          |  +- UserRepository.java
          |
          +- service
          |  +- UserService.java
          |
          +- controller
          |  +- UserController.java
          |
    
    • 1、Application.java 建议放到根目录下面,主要用于做一些框架配置
    • 2、model 目录主要用于实体与数据访问层(Repository)
    • 3、service 层主要是业务类代码
    • 4、controller 负责页面访问控制

    引入web模块

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    也可以在创建项目的时候直接选择web依赖
    
    spring-boot-starter :核心模块,包括自动配置支持、日志和 YAML,如果引入了 spring-boot-starter-web web 模块可以去掉此配置,因为 spring-boot-starter-web 自动依赖了 spring-boot-starter。
    spring-boot-starter-test :测试模块,包括 JUnit、Hamcrest、Mockito
    

    编写代码

    Controller 内容:

     @RestController
     public class HelloWorldController {
         @RequestMapping("/hello")
         public String index() {
             return "Hello World";
         }
     }
     
     @RestController默认都只提供Rest风格接口返回值,针对不需要返回页面的Controller都采用RestController进行注解     
    

    启动主程序

    打开浏览器访问 http://localhost:8080/hello,就可以看到效果了,是不是非常简单快速!
    

    单元测试

    打开的src/test/下的测试入口,编写简单的 http 请求来测试;使用 mockmvc 进行,代码如下。

        package com.easy.helloworld;
        
        import com.easy.helloworld.controller.HelloWorldController;
        import org.junit.Before;
        import org.junit.Test;
        import org.junit.runner.RunWith;
        import org.springframework.boot.test.context.SpringBootTest;
        import org.springframework.http.MediaType;
        import org.springframework.test.context.junit4.SpringRunner;
        import org.springframework.test.web.servlet.MockMvc;
        import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
        import org.springframework.test.web.servlet.setup.MockMvcBuilders;
        
        import static org.hamcrest.Matchers.equalTo;
        import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
        import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
        
        @RunWith(SpringRunner.class)
        @SpringBootTest
        public class HelloTests {
            private MockMvc mvc;
        
            @Before
            public void setUp() throws Exception {
                mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
            }
        
            @Test
            public void getHello() throws Exception {
                mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                        .andExpect(status().isOk())
                        .andExpect(content().string(equalTo("Hello World")));
            }
        }
    

    MockMvc使用参考官网,这里不做介绍

    添加热启动支持

    <!--开发环境热部署插件-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
    

    总结

    使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。

    资料

    示例代码-github

  • 相关阅读:
    hreeJS加载Obj资源后如何实现内存释放?
    cookies,sessionStorage 和 localStorage 的区别
    解决ios手机页面overflow scroll滑动很卡的问题
    移动端计算滑动的距离
    设置滚动位置
    css实现右侧固定宽度,左侧宽度自适应
    5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系
    3.说一下你了解的弹性FLEX布局.
    一些面试题 没有答案
    嵌入式开发板和学习推荐平台——最新迅为4412开源硬件开发板
  • 原文地址:https://www.cnblogs.com/tqlin/p/10975065.html
Copyright © 2020-2023  润新知