使用Intellij idea创建一下java后台项目并实现第一个接口

2023-11-14

创建java后台项目

1.下载并安装Intellij idea.

2.选择Create New Project

3勾选左侧的Spring Initializr ,点击next

4.填写项目名称和包名,点击next

5.勾选左侧web  ,然后勾选中间的sping web,点击右侧的next

6.等待项目创建完成。

从零开始实现第一个接口

实现接口

实现一个获取单条用户信息的接口 getUserItem,访问地址为 http://localhost:8080/getUserItem。

  1. 在 com.example.demo 文件包下新建 entity 文件包;在此文件包下新建 User 类,在 User 类中分别定义 name 和 password 属性,内容如下
    package com.example.demo.entity;
    public class User {
        String name;
        int password;
        public String getName(){
            return  name;
        }
        public void setName(String name){
            this.name = name;
        }
        public int getPassword(){
            return  password;
        }
        public void setPassword(String password){
            this.password = password;
        }
        public String toString(){
            return "user{name='"+name+"\',"+"password="+password+"}";
        }
    }

     

  2. 在 com.example.demo 文件包下新建 service 文件包;在此文件包下新建 UserService 接口,在 UserService 接口中定义 getUserInfo 方法,内容如下:
    package com.example.demo.service;
    import com.example.demo.entity.User;
    public interface UserService {
        public User getUserInfo();
    }

    随后在 service 文件包中新建 impl 文件包,在 impl 文件包中新建 UserServiceImpl 来实现 UserService 接口,内容如下:

    package com.example.demo.service.impl;
    import com.example.demo.entity.User;
    import com.example.demo.service.UserService;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserServiceImpl implements UserService {
        public User getUserInfo(){
            User user = new User();
            user.setName("jack");
            user.setPassword(12341234);
            return user;
        }
    }

     

  3. 在 com.example.demo 文件包下新建 controller 文件包;在此文件包下新建 UserController 类,定义接口路径,返回接口数据,内容如下:
    package com.example.demo.controller;
    
    import com.example.demo.entity.User;
    import com.example.demo.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class UserController {
        @Autowired
        UserService service;
        @RequestMapping(value = "/getUserItem",method = RequestMethod.GET)
        public String getUserItem(){
            User user = service.getUserInfo();
            return user.toString();
        }
    }
    

    验证接口

  4. 执行主函数

  5. 在这里插入图片描述
  6. 在地址栏输入 http://localhost:8080/getUserItem 进行验证,结果正确。

在这里插入图片描述

 

学习总结

在实现接口的过程中,需要在项目目录下,新建三个文件包:
entity 包,也就是实体类,这里存放业务逻辑所需要的对象属性或方法。比如要获取用户信息,而用户信息包含名称和密码这两个属性,就需要在这里定义和创建,并同时定义 set 方法用于赋值,定义 get 方法用于取值。
service 包,也就是提供服务的类,有了对象,接下来就要使用对象,实现功能,定义接口。定义接口之后还需要一个实现类,来实现接口。
controller 包,提供了服务之后就要开始使用服务,也就是调用服务类所提供的方法来返回最终的数据。
 

发布jar包:

1.打开右侧的Maven,选择package打出jar包

2.打开cmd ,打开jar包所在的文件夹 

3.输入java -jar jar包名称

4.回车等待jar发布

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Intellij idea创建一下java后台项目并实现第一个接口 的相关文章

  • 按下按钮时清除编辑文本焦点并隐藏键盘

    我正在制作一个带有编辑文本和按钮的应用程序 当我在 edittext 中输入内容然后单击按钮时 我希望键盘和焦点在 edittext 上消失 但我似乎无法做到这一点 我在 XML 中插入了这两行代码 android focusable tr
  • Java 9 中可以使用提前编译吗?

    As per JEP 295 http openjdk java net jeps 295 任何 JDK 模块 类或用户代码的 AOT 编译都是实验性的 JDK 9 中不支持 要使用 AOT 化的 java base 模块 用户必须编译该模
  • 适用于 Solaris 的 Java 8 中缺少 javaws

    看起来 Oracle 从 Java 8 for Solaris 中删除了 Java Web Start javaws 在 Java 8u51 中不再可用 来自兼容性指南 http www oracle com technetwork jav
  • ASM之前看一下maxStack指令吗?

    我正在尝试使用 ASM 库将字节代码转换为不同的格式 这可以使用 MethodVisitor 来完成 就像这个简单的测试代码一样 return new MethodVisitor ASM7 Override public void visi
  • 降低 Sonar 2.1.x 中的日志级别

    我有一个 Maven 3 x 版本 它使用 Sonar 2 1 x 进行质量控制 maven sonar 插件在 Jenkins 内部使用来运行声纳检查 在 Jenkins 构建过程中 当 Sonar 启动时 它会在 INFO 级别记录很多
  • 在java.util中获取错误ArrayList不带参数[重复]

    这个问题在这里已经有答案了 我已经创建了一个类 Student 现在我尝试将我的 Student 对象存储在 ArrayList 中 但在编译 ArrayList 不接受参数时出现错误 我已经检查了我的代码很多次 但找不到问题所在 我的学生
  • 将多个视频文件合并到一个文件中

    我有多个以相同帧速率和分辨率录制的视频 我想将两个视频合并为一个视频 因此结果文件将是大视频 我正在使用 MP4 解析器 api 并使用下面的代码 Movie countVideo new MovieCreator build Channe
  • 给定一个单词列表 - 在 java 中完成单词的好的算法是什么?权衡:速度/效率/内存占用

    我正在探索潜在的免费 付费应用程序的硬件 软件要求 最终目标是移动 Java 应用程序 该应用程序将从这个简单的目标开始 给定数据库中相关单词的列表 能够对单个字符串输入进行单词补全 换句话说 我已经知道数据库的内容 但算法的内存占用 速度
  • java.lang.UnsupportedOperationException:无法解析索引 13 处的属性:TypedValue{t=0x2/d=0x7f010046 a=-1}

    我在 android attrs xml 文件中添加了一个用于不同色调的属性 在 styles xml 文件中 我为这些属性指定了颜色 因此每种样式的它们都不同 Attrs xml
  • Spring使用实体管理器实现分页

    如何在 Spring hibernate 项目中实现分页 以下是代码 我将获得 PageRequest 对象 并且我想返回项目页面 Repository public class ItemRepository PersistenceCont
  • Java中的OR运算(BitSet.class)

    如何编写一个程序 该程序需要001010101110000100100 011100010001000011000 000000000010000000000100 作为输入 位 输出将是OR其中 3 个 OR 0 0 0 0 1 1 1
  • 驱动程序信息:driver.version:未知,使用 ChromeDriver v78.0.3904.70 和 Chrome 浏览器 v78.0.3904.97

    我使用的是java 1 8和chrome浏览器版本78 0 3904 97 我正在尝试使用 chrome 驱动程序版本执行我的 selenium 脚本代码78 0 3904 70 但在执行时我面临以下问题并且 chrome 立即崩溃 Pic
  • wsdl 没有服务元素

    我必须使用 WCF Web 服务并获得 WSDL 外部的 因此无法控制 WSDL 在 WSDL 定义中 我没有找到包含服务 端口和地址元素的服务元素 WSDL 中不存在这种情况正常吗 这对于 WCF WSDL 来说很常见吗 我正在尝试使用轴
  • 我可以关闭并重新打开套接字吗?

    我学习了一个使用套接字的例子 在此示例中 客户端向服务器发送请求以打开套接字 然后服务器 侦听特定端口 打开套接字 一切都很好 套接字从双方 客户端和服务器 打开 但我仍然不清楚这个东西有多灵活 例如 客户端是否可以关闭一个打开的 从两端
  • 链表中的虚拟节点

    问 什么时候使用它们 作业问题 列表中的第一个和最后一个节点 有时用作列表中的第一个和最后一个节点 从未用作列表中的第一个和最后一个节点 维基百科说 哨兵节点是与链接一起使用的专门指定的节点 列表和树作为遍历路径终止符 哨兵节点的作用是 不
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • 如何修改生成的SOAP请求?

    我正处于创建输出拦截器并从 SOAP 消息中获取 OuputStream 的阶段 但是 如何在将 SOAP 信封发送到端点之前对其进行修改呢 我想删除一些 xml 元素 一种方法是获取文档并通过 XSLT 转换运行它 您可以通过调用来获取拦
  • 升级到 Tomcat 8 时出现 ClassNotFoundException

    我最近将 NetBeans IDE 从 v7 3 升级到 v8 突然我的应用程序在连接到数据库时在服务器启动时抛出异常 这两个版本的 IDE 之间的唯一区别是后者使用 Tomcat 8 异常日志 javax naming NamingExc
  • Java,如何管理线程读取socket(websocket)?

    我有一个 WebSocket 服务器 我的服务器创建一个新线程来处理新连接 该线程一直处于活动状态 直到 websocket 中断 我的问题 对于 1 000 000 个连接 我需要 1 000 000 个线程 我如何通过一个线程处理多个

随机推荐

  • 数据可视化:在 React 项目中使用 Vega 图表 (二)

    上一篇讲了如何在 React 项目中用 Vega Lite 绘制基本的 area chart 图表 本篇将介绍如何绘制多层图表 如何添加图例 多层图表 通过上一篇文章 我们知道了可以通过 mark encoding 等来描述我们想要的图表
  • STM32F103ZET6【HAL函开发】STM32CUBEMX------7.DAC实验

    STM32F103ZET6有2 个 DAC 转换器 每个转换器对应 1 个输出通道 对应的IO口如下 DAC OUT1 PA4 DAC OUT2 PA5 目的 DAC通道2可以输出3 3以下的任意电压 同时通过ADC1通道8采集到 打印到串
  • Vue中div contenteditable 的光标定位

    在Vue做项目时 做了一个div contenteditable true 的组件作为文本输入框 在非手动输入值后 光标会丢失 经测试以下这段代码可用 直接将光标定位到最后 function keepLastIndex obj consol
  • 刷脸支付大量的商户正在大步踏进数字化

    传统的商业零售不缺乏客源 但是弊端在于 顾客和商家建立有效接触的时间太短 可能只有结账时的短短十秒左右 很多人都有过去便利店买东西 店员安利办会员卡的经历 但是绝大多数人只想尽快买单走人 商家想做进一步精准推进和营销实在难上加难 蜻蜓是首款
  • Python3,我把新年祝福写在“雨“中,你看,雨一直下,气氛还算融洽,在同个屋檐下....

    新年愿望写在 雨 中 1 引言 2 代码实战 2 1 模块介绍 2 1 1 Pygame 介绍 2 1 2 Pygame的display介绍 2 1 3 Pygame的event介绍 2 1 4 Pygame的font介绍 2 2 代码示例
  • C++之弱引用智能指针weak_ptr的验证

    目录 shared ptr带来的问题 标准库weak ptr弱引用验证 标准库中weak ptr交叉引用的验证 shared ptr带来的问题 在交叉引用时 会造成堆上资源无法释放的问题 使用weak ptr弱引用就可以打破这个交叉引用 因
  • 如何判断一组数据是否符合正态分布呢?

    在很多模型及假设检验中都需要满足一个假设条件 数据需服从正态分布 这篇文章主要讲讲如何判断数据是否符合正态分布 主要分为两种方法 描述统计方法和统计检验方法 判断一组数据是否为正态分布的方法 描述统计方法 Q Q图 P P图 直方图 茎叶图
  • C程序argc、argv的使用

    前提 C文件编译 汇编后生成的 exe文件 就可以通过命令行来执行该exe文件 命令行执行 exe文件 用微软推出的powershell 格式是 start exe 或者 start exe 用powershell无法输入argv 总是执行
  • Spring boot 序列化规则

    Include Include ALWAYS 默认 Include NON DEFAULT 属性为默认值不序列化 Include NON EMPTY 属性为 空 或者为 NULL 都不序列化 Include NON NULL 属性为NULL
  • Window命令激活(不需要安装软件,激活180天)

    1 以管理员方式运行命令 注解 该命令为设置KMS服务器地址 slmgr skms kms micaesoft com 2 激活 注解 该命令为向KMS服务器发起请求 slmgr ato 其他 激活完毕后 若要查看许可证详细信息 可使用命令
  • 方差与分类分析

    分类数据与方差分析 1 分类数据 2 chi 2 2 统计量 这个统计量主要用于测定两个分类变量之间的相关程度 若用 f 0
  • python增加一列数据_使用Python向DataFrame中指定位置添加一列或多列的方法

    对于这个问题 相信很多人都会很困惑 本篇文章将会给大家介绍一种非常简单的方式向DataFrame中任意指定的位置添加一列 在此之前或许有不少读者已经了解了最普通的添加一列的方式 如下 import pandas as pd feature
  • 多边形区域填充算法_求取任意两个多边形的IOU

    在目标检测中 真值与预测值的交并比IoU Intersection over Union 是用来评价检测模型的一个重要指标 通俗意义上来讲 也就是检测结果与真实的结果重叠的区间所占两者面积之和的权重 一般说来 当IoU gt 0 5 我们认
  • .net 面试题(高级开发人员篇)

    1 DateTime Parse myString 这行代码有什么问题 有问题 当myString不能满足时间格式要求的时候 会引发异常 建议使用DateTime TryParse 2 PDB是什么东西 在调试中它应该放在哪里 PDB是用于
  • python opencv打开摄像头失败报错,尝试使用网络摄像头python opencv捕获视频时gstreamer严重错误...

    i m trying to take a video with webcam using opencv and python with a simple code import numpy as np import cv2 cap cv2
  • C++字符串常量跨平台编译问题

    C 字符串常量跨平台编译问题 与字符串编码相关 有需要的朋友可以参考下 问题 在C 代码中 给一个string类型的变量赋值一个中文字符串常量 例如 string s 中文字符串 变量s中保存的字节内容是什么 如果源文件的编码格式转换了 比
  • Python实现快乐的数字

    题目要求 编写一个算法来确定一个数字是否 快乐 快乐的数字按照如下方式确定 从一个正整数开始 用其每位数的平方之和取代该数 并重复这个过程 直到最后数字要么收敛等于1且一直等于1 要么将无休止地循环下去且最终不会收敛等于1 能够最终收敛等于
  • 浅谈 Spring Cloud Alibaba

    Spring Cloud Alibaba 一 什么是 Spring Cloud Alibaba 二 它能做什么 三 它的组件包括什么 四 如何使用 一 什么是 Spring Cloud Alibaba Spring Cloud Alibab
  • 【猿人学WEB题目专解】专栏通知

    据说 看我文章时 关注 点赞 收藏 的 帅哥美女们 心情都会不自觉的好起来 前言 作者简介 大家好我是 user from future 意思是 来自未来的用户 寓意着未来的自己一定很棒 个人主页 点我直达 在这里肯定能找到你想要的 专栏介
  • 使用Intellij idea创建一下java后台项目并实现第一个接口

    创建java后台项目 1 下载并安装Intellij idea 2 选择Create New Project 3勾选左侧的Spring Initializr 点击next 4 填写项目名称和包名 点击next 5 勾选左侧web 然后勾选中