Spring Boot环境搭建与简单应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Stars_Tian/article/details/88102421

简单的搭建Spring Boot 项目

搭建一个spring boot+gradle+swagger的项目,包括简单的项目结构介绍。

Spring boot+gradle 项目搭建(IntelliJ)

  1. 新建项目
    在这里插入图片描述
  2. 选择Spring Initializr
    在这里插入图片描述
  3. 给你的项目填写一点信息,Group和Artifact你随便填(填的格式不对的话,IntelliJ会提示你的),Type选Gradle Project,Packaging选War,然后点下一步;
    在这里插入图片描述
  4. 选择自己需要的依赖;
    在这里插入图片描述
  5. 点击下一步,点击完成即可;
  6. 选择位置和gradle位置及jdk;
    在这里插入图片描述

问题

  1. 开始没有右面的gradle projects选项;
    解决方法:清空缓存并重新打开
    在这里插入图片描述
  2. 刷新gradle时报错
    Error:No such property: GradleVersion for class: JetGradlePlugin
    解决方法:
    修改gradle-wrapper.properties(位于项目根目录的gradle/wrapper下)的:gradle版本,我是从gradle-5.1-all.zip降级到gradle-4.10.2(当前使用的)
    在这里插入图片描述
  3. 报log4j日志错误
    解决:修改依赖
  4. 卡在Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext处
    未解决。 使用IDEA2017.1.4版本集成spring boot 2.1.3+gradle 出现了一堆错误,决定暂时放弃,使用spring boot 2.1.3+maven 仅有6的错误;使用spring boot 1.5.19+gradle没有错误(去https://start.spring.io/选择版本创建)。
  5. Maven+spring Boot报错
    解决:https://blog.csdn.net/plei_yue/article/details/78912616

项目结构

Spring Boot的基础结构共三个文件:

src/main/java 程序开发以及主程序入口

src/main/resources 配置文件

src/test/java 测试程序
另外,spingboot建议的目录结果如下:
root package结构:com.example.myproject

com
  +- example
    +- myproject
      +- Application.java
      |
      +- domain
      |  +- Customer.java
      |  +- CustomerRepository.java
      |
      +- service
      |  +- CustomerService.java
      |
      +- controller
      |  +- CustomerController.java
      |

1、Application.java 建议放到跟目录下面,主要用于做一些框架配置

2、domain目录主要用于实体(Entity)与数据访问层(Repository)

3、service 层主要是业务类代码

4、controller 负责页面访问控制

https://blog.csdn.net/ityouknow/article/details/80490926

启动

@RestController
public class HelloWorldController {   
 
    @RequestMapping("/hello")    
    public String index() { 
        return "Hello World";
    }
}

@RestController 的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!

启动主程序,打开浏览器访问http://localhost:8080/hello,就可以看到效果。

测试

打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。

package com.example.demo4;

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.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

/**
 * Created by Administrator on 2019/3/8 0008.
 */

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class HelloWorldControllerTest {
    private MockMvc mvc;

    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloWorld()).build();
    }

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
                .andExpect(MockMvcResultMatchers.status().isOk())
                .andDo(MockMvcResultHandlers.print())
                .andReturn();
    }
}

猜你喜欢

转载自blog.csdn.net/Stars_Tian/article/details/88102421