前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IntelliJ IDEA 创建 Java Web 项目

IntelliJ IDEA 创建 Java Web 项目

作者头像
Jimmy_is_jimmy
发布2023-05-27 10:51:11
3450
发布2023-05-27 10:51:11
举报
文章被收录于专栏:call_me_Rcall_me_R

在之前的文章 Mac 中 VSCode 上编写 Java 中,我们使用了 IDE - VSCode 进行 Java 的知识点学习。

本文,我们用更加专业的 IDE - IntelliJ IDEA 来加速我们的项目开发。我们将基于 Spring Boot 创建 Java Web 项目。

安装

本人的开发环境如下:

  • mac m1
  • java 版本 V11.0.12
  • javac 版本 V11.0.12

笔者通过 idea version 下载了版本 2021.2.2 的开发工具 - 「IntelliJ IDEA Ultimate」2021.2.2 - macOS Apple Silicon(dmg)。为什么下载旧版本,还不是因为不用付费,读者感兴趣可以看文末参考

新建 Java Web 项目

File -> New -> Project...

之后选择 Spring Initialzr,为了保持一致,Project SDK 选择了版本 11Java 版本选择了 11,如下图:

点击 next 进行下一步的选择:

我们选择 Spring Boot 的版本是 2.7.2,然后勾选 Web -> Spring Web,点击 Finish 按钮完成创建项目。

Spring Boot 的版本读者根据情况进行选择。

编写案例

我们根据上面的步骤,创建了一个名为 chapter1-1 的项目。创建后,项目结构如下:

  • main 文件夹下项目的开发资料
  • test 文件夹下编写测试

我们在 main/java/conm.example.chapter11 下添加个 HelloContrller.java 文件(跟 Chapter11Application.java 同级)。添加代码如下:

代码语言:javascript
复制
package com.example.chapter11;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/jimmy")
public class HelloController {
    @RequestMapping("")
    public String index() {
        return "Jimmy";
    }

    @RequestMapping("/hello")
    public String hello() {
        return "Hello World";
    }
}

控制台告诉了我们 - Tomcat initialized with port(s): 8080 (http)。此时,浏览器打开 http://localhost:8080/jimmy,会出现内容:

浏览器打开 http://localhost:8080/jimmy/hello,就会出现其对应的返回内容:

疑问:那么我们要更改端口号路径前缀呢?

我们可以在文件 main/java/resources/application.properties 中配置:

代码语言:javascript
复制
# port
server.port = 9000
# path prefix, default /
server.servlet.context-path = /demo

重新启动项目之后,我们可以通过 http://localhost:8080/demo/jimmyhttp://localhost:8080/demo/jimmy/hello 访问上面的两个内容。

测试

我们在 test/java/com.example.chapter11/Chapter11ApplicationTests.java 编写测试文件如下:

代码语言:javascript
复制
package com.example.chapter11;

import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
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;


@SpringBootTest
public class Chapter11ApplicationTests {

    private MockMvc mvc;

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

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/jimmy/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }

}

上面代码中,我们只是对 /jimmy/hello 做了测试,检测其返回的状态和返回值是否都是预期。然后我们运行该文件,测试通过。

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 新建 Java Web 项目
  • 编写案例
  • 测试
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档