博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 从入门到精通(一)HelloWorld(构建项目,热部署,测试)
阅读量:3780 次
发布时间:2019-05-22

本文共 3380 字,大约阅读时间需要 11 分钟。

文章目录

一、使用idea构建项目

1、选择 File -> New —> Project… 弹出新建项目的框

2、选择 Spring Initializr,Next 也会出现上述类似的配置界面,Idea 帮我们做了集成
3、填写相关内容后,点击 Next 选择依赖的包再点击 Next,最后确定信息无误点击 Finish。

在这里插入图片描述在下面这个界面可以点选某些依赖dependency,这样就不用在pom里面手动写依赖啦

在这里插入图片描述

二、项目结构

在这里插入图片描述

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

  • src/main/resources 配置文件

  • src/test/java 测试程序

springboot推荐使用如下的目录结构:

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 负责页面访问控制

三、编写第一个程序Hello World

1、引入web依赖

如果在创建项目的时候,已经点选了web模块dependency,这里就不用处理,打开pom.xml文件,发现有如下代码

org.springframework.boot
spring-boot-starter-web
  • web模块主要负责网络连接等当面的功能

  • pom.xml 文件中默认有两个模块:

    spring-boot-starter:
    核心模块,包括自动配置支持、日志和 YAML;
    spring-boot-starter-test:
    测试模块,包括 JUnit、Hamcrest、Mockito。

2、编写controller

在src/java/myproject目录下建立一个文件夹,controller,在controller文件夹下建立一个class文件,内容如下

@RestControllerpublic class HelloWorldController {
@RequestMapping("/hello") public String hello() {
return "Hello World"; }}
  • @RestController 的意思就是 controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了
  • RequestMapping 的意思是网络请求的映射,当url是:localhost:8080/hello的时候,请求会自动定位到hello这个方法

3、启动主程序,打开浏览器访问 ,就可以看到效果了

四、配置项目的热部署

1、添加 依赖

在pom.xml文件中dependecies标签下添加

org.springframework.boot
spring-boot-devtools
runtime
true

在pom.xml文件的plugins标签添加

org.springframework.boot
spring-boot-maven-plugin
true

2、修改idea的设置

因为热部署依靠的是项目的自动编译,但是idea是默认是不能自动编译的,所以还需要修改一下idea的设置
file->settings->compiler
然后勾选 Build project automatically 复选框
在这里插入图片描述使⽤快捷键 Ctrl + Shift + A,在输⼊框中输⼊ Registry,勾选 compile.automake.allow.when.app.running 复
选框
这是已经点选的状态全部配置完成后, IDEA 就⽀持热部署了,但是这个时候,你修改完成之后,还需要使用ctrl+f9进行自动编译。因为类文件修改之后,需要重新编译之后才能进行热启动,上面的配置才会起作用。⼤家可以试着去改动⼀下代码就会发现 Spring Boot 会⾃动重新加载,不需要在重启项目。

五、单元测试

由于springboot是部署在服务端,很多功能测试如果从网页测试很不方便,所以springboot提供了单元测试模块

以往我们在测试 Web 请求的时候,需要⼿动输⼊相关参数在⻚⾯测试查看效果,或者⾃⼰写 post 请求。在Spring Boot 体系中, Spring 给出了⼀个简单的解决⽅案,使⽤ MockMVC 进⾏ Web 测试, MockMVC 内置了很多⼯具类和⽅法,可以模拟 post、 get 请求,并且判断返回的结果是否正确等,也可以利⽤ print() 打印

执⾏结果。

在test/java/下创建helloControllerTest测试类,代码如下

@RunWith(SpringRunner.class)@SpringBootTestpublic class helloTest {
private MockMvc mvc; @Before public void setup() throws Exception {
mvc = MockMvcBuilders. standaloneSetup(new helloController()). build(); } @Test public void helloControllerTest() throws Exception {
mvc.perform(MockMvcRequestBuilders .post("/xsj?name=xsj") .accept(MediaType.APPLICATION_JSON_UTF8)) .andDo(print()); }}

@Before 注解的⽅法表示在测试启动的时候优先执⾏,⼀般⽤作资源初始化。

.accept(MediaType.APPLICATION_JSON_UTF8)) 这句是设置 JSON 返回编码,避免出现中⽂乱码的问题

运行结果如下:

MockHttpServletResponse:           Status = 200    Error message = null          Headers = [Content-Type:"application/json;charset=UTF-8", Content-Length:"24"]     Content type = application/json;charset=UTF-8             Body = this is myself  1234!xsj    Forwarded URL = null   Redirected URL = null          Cookies = []

转载地址:http://islvn.baihongyu.com/

你可能感兴趣的文章
算法训练 区间k大数查询
查看>>
算法训练 K好数
查看>>
2021北京交通大学计算机专硕初试经验分享
查看>>
2021北京交通大学计算机专硕复试经验分享
查看>>
简单实现一个数组、链表
查看>>
关于从其他程序切回word文档时卡顿问题的解决办法
查看>>
Linux安装Java环境
查看>>
Java集合 ArrayList原理
查看>>
Git的基本操作
查看>>
简述128陷阱
查看>>
在spring boot项目中修改包名要注意的一些问题
查看>>
编写类实现从后台向前台返回所要求的数据
查看>>
spring boot的学习(1.创建一个初始的spring boot项目)
查看>>
Python的入门学习
查看>>
⑤mpvue 小程序框架 :初始化项目 分析项目结构
查看>>
⑦mpvue Flyio实现前后台交互
查看>>
操作系统:Java模拟CPU调度算法(非抢占短进程优先、可抢占优先权调度、多级反馈队列调度)
查看>>
【前端】在页面中还原英雄联盟客户端?
查看>>
【前端】Vue 纯干货 基础知识分享!
查看>>
3.1servlet入门和MVC模型
查看>>