Springboot项目

《《《《《《《《《《《------     项目建立    ------》》》》》》》》》》》》
1.新建项目,选择Spring Initializer(新版本选择Spring boot)
 我的项目是JDK1.8的,所以在项目SDK就选择了1.8版本的,选择启动服务URL地址为默认
2.Spring Initializer项目设置,项目组就是打开后项目一层层的包名,正常情况下就默认就可以了,但是,类型得选择为Maven类型,然后下一步
3.进入依赖界面,选择Web下的Spring Web,右上角Spring Boot根据自己的情况选择,我选的版本比较低3.3.4版本的SpringBoot ,然后下一步
4.项目命名 demo(根据自己的需求去写项目名),然后点击完成

《《《《《《《《《《《------     项目目录文件说明    ------》》》》》》》》》》》》
1.先把.mvn文件夹删了(包含其下所有东西),再删除mvnw文件和mvnw.cmd文件
2.配置pom.xml文件,系统运行时,首先加载运行的就是它,里面存放着的依赖根据需求配置
①需要修改springboot版本的和java版本的找两个模块,并直接修改版本号,在IDEA中会自动下载更新配置,如果修改后没更新,请关了IDEA重新打开就可以了
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
<!--        springboot版本3.3.4-->
        <version>2.7.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>


    <properties>
        <java.version>8</java.version>
    </properties>


②添加依赖
<!--        加入mybits依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>2.2.2</version>
            <scope>test</scope>
        </dependency>

<!--        mysql驱动包   -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
<!--        AOP的包       -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!-- FastJson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version>
        </dependency>

③然后打开src源码路径下的包 com.dx.wlmq
    在该包下创建
        controller(控制层)、
        domain(Dao层  存放实体类)、
        mapper(Dao层  存放接口,接口下是要实现的抽象方法)
        service(业务层 存放业务实现的接口和实现类) 在其下有一个impl的包
        DemoApplication是Springboot的启动类,必须存放于其他所有类上层包

        
④在resources包下创建一个名为mapper的包,用于存放.xml文件(例如RolesMapper.xml),改文件写的都是Dao层的sql语句,查询的话别忘了属性映射,也别忘了修改命名空间的接口位置包名
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--命名空间,接口位置-->
<mapper namespace="com.dx.wlmq.mapper.SuppliersMapper">
 <resultMap id="suplist" type="com.dx.wlmq.domain.Supplier">
        <id property="supplierId" column="supplier_id"></id>
        <id property="supplierName" column="supplier_name"></id>
        <id property="supplierPerson" column="supplier_person"></id>
        <id property="supplierPhone" column="supplier_phone"></id>
        <id property="supplierAddress" column="supplier_address"></id>
        <id property="supplierUserId" column="supplier_user_id"></id>
        <id property="supplierBank" column="supplier_bank"></id>
        <id property="supplierBanknum" column="supplier_banknum"></id>
        <id property="supplierBankperson" column="supplier_bankperson"></id>
        <id property="supplierRemark" column="supplier_remark"></id>
        <id property="supplierVersion" column="supplier_version"></id>
        <id property="createTime" column="create_time"></id>
        <id property="updateTime" column="update_time"></id>
    </resultMap>
<select id="Supplierlist" resultMap="suplist">
        SELECT *
        FROM `or_supplier`;
    </select>
</mapper>

⑤配置resource下的application.properties文件,里面规定本地访问的端口修改,源数据配置(一定要确定表在哪个数据库),实体对象映射,mapper的加载文件映射,以及驼峰命名规则是否启用

《《《《《《《《《《《------     实现步骤    ------》》》》》》》》》》》》

1.先写domain里面的实体类
遇见Date类型的属性时要加上以下两个注释,确保经过JSON输出后,反序列化为时间格式》每出现一个Date就需要重新写一个
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
 都写好后生成Get和Set方法,toString方法,全部参数构造方法和无参构造方法

2.书写mapper里面的接口,并在接口中写出要实现的方法
每个mapper接口上一定要添加@Mapper(作用:”不知道“)

3.书写Service层
在service包下创建名为 XXXsService 接口,并将其方法mapper下的方法复写一边
在service包下创建impl包,并在该包下创建 XXXsService 接口的实例
实例中,加上注释@Service("XXXsService")作为服务层,双引号里面写的是实现接口的名字,但是首字母小写;例如:@Service("addresssService")
并在下方创建一个@Resource(name="addresssImpl"),addresssImpl是Dao层的接口名字,首字母小写并创建一个  private AddresssImpl addresssImpl;来调用Dao层,方法中返回实例addresssImpl的方法:return addresssImpl.Addressadd(address);

4.书写Controller层
在controller包下添加XXXsController类,
先添加@Controller声明其为控制层
在添加一个@RequestMapping("/roles") 表示第一层路径

在类中要调用服务层 增添注解 @Resource(name = "rolesService") ,以此调用服务层rolesService是服务层接口的名字,首字母小写,
并声明一个RolesService rolesService;来调用服务层


服务层的方法在书写前先声明路径,请求方法,以及文本类型
注解如下:
@RequestMapping(value = "/list", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")
然后再添加注解:
@ResponseBody
最后书写方法,定义响应包内容,并return 返回一个json类型的数据体
    public Object index12(HttpServletResponse response,@RequestBody Role role) {
        response.setContentType("text/html;charset=UTF-8");
        return JSON.toJSONString(rolesService.Roleadd(role));
    }
当参数中有实体类的时候,要添加注解@RequestBody

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/453524.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速了解Python流程控制语句基本使用

&#x1f600;前言 在编程中&#xff0c;流程控制语句是用于控制程序执行顺序的关键部分。通过条件判断和循环机制&#xff0c;程序能够根据不同的情况选择执行特定的代码块&#xff0c;或重复执行某段代码。本文将详细介绍 Python 中常见的流程控制语句&#xff0c;包括 if、i…

JS事件和DOM

1. DOM 1.1 基本概念 DOM&#xff0c;全称 Document Object Model&#xff0c;即文档对象模型。它是 Web 上最常用的 API 之一&#xff0c;是加载在浏览器中的文档模型&#xff0c;可以将文档表示为节点树&#xff08;或称 DOM 树&#xff09;&#xff0c;其中每个节点代表文…

缓存常见问题:缓存穿透、雪崩、击穿及解决方案分析

1. 什么是缓存穿透&#xff0c;怎么解决&#xff1f; 缓存穿透是指用户请求的数据在缓存中不存在即没有命中&#xff0c;同时在数据库中也不存在&#xff0c;导致用户每次请求该数据都要去数据库中查询一遍。如果有恶意攻击者不断请求系统中不存在的数据&#xff0c;会导致短时…

Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数

感谢uu们的观看&#xff0c;话不多说开始~ 对于这个问题&#xff0c;我们需要先来了解一下~ 海量数据都可以用bitmap来存储&#xff0c;因为占得内存小&#xff0c;速度也很快 我大概计算了一下~ 完全够&#xff1a;String类型512M 1byte 8个bit位 8个状态 512M1024byt…

计算机组成原理(笔记7高速缓冲存储器Cache,计算机组成原理的重难点全、直接、组相连)

为什么要设立高速缓冲存储器 &#xff08;Cache&#xff09;&#xff1f; Cache是介于CPU和主存之间的小容量存储器&#xff0c;存取速度比主存快。它能高速地向CPU提供指令和数据&#xff0c;加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。…

01 一篇读懂25机械考研复试超全流程讲解|考研面试经验和面试真题快来背诵!

复试面试流程及经验汇总篇 千万不要小瞧出成绩前的准备以及最常见面试问题你提前熟记于心&#xff0c;面试再遇到&#xff0c;能够有逻辑有条理的回答出不是空洞的话&#xff0c;给导师的印象分就肯定高。 考研复试面试最全最完整的实用攻略&#xff0c;从出考研初试成绩前到…

《深度学习》模型的部署、web框架 服务端及客户端案例

目录 一、模型的部署 1、模型部署的定义与目的 1&#xff09;定义 2&#xff09;目的 2、模型部署的步骤 1&#xff09;导出模型 2&#xff09; 部署模型 3&#xff09;测试模型 4&#xff09;监控模型 3、模型部署的方式 1&#xff09;云端部署 2&#xff09;嵌入…

RHCE--at,crontab例行性工作

一&#xff1a;安装at &#xff08;1&#xff09;配置yum仓库&#xff1a;以配置网络源举例&#xff1a; 先在/etc/yum.repos.d/ 目录下创建一个以.repo结尾的文件 vim /etc/yum.repos.d/aliyun.repo 写入可以在阿里云镜像站查找appstream和baseos的地址阿里巴巴开源镜像站…

内核调度hh

的国际化的比较好 11 其他

英语语法学习框架(考研)

一、简单句 英语都是由简单句构成&#xff0c;简单句共有五种基本句型&#xff1a;①主谓&#xff1b;②主谓宾&#xff1b;③主谓宾宾补&#xff1b;④主谓宾间宾&#xff08;间接宾语&#xff09;&#xff1b;⑤主系表&#xff1b; 其中谓语是句子最重要的部分&#xff0c;谓…

别再用老旧架构了!单元化构建超强弹性和容错系统!

0 关键收获 单元化架构提高了微服务的弹性和容错性。可观察性对于开发和运营单元化架构至关重要。单元路由器是单元基础架构的关键组件&#xff0c;它需要快速响应单元可用性和健康变化。要成功采用单元化架构&#xff0c;需要全面和综合的方法来实现可观察性。单元化架构利用…

改变函数调用上下文:apply与call方法详解及实例

目录 改变函数调用上下文&#xff1a;apply与call方法详解及实例 一、什么是 apply 方法&#xff1f; 1、apply 语法 2、apply 示例 二、什么是 call 方法&#xff1f; 1、call 语法 2、call 示例 三、apply 和 call 的共同与差异 1、apply 和 call 的共同点 2、apply…

centos7-网络模式选择NAT连接时遇到的问题

今天花了我一上午的时间&#xff0c;必须要记录一下。 新创建的虚拟机&#xff0c;选择的centos7-NAT的网路连接模式。 科普一下: 我选择的NAT模式&#xff0c; 然后改了 vi /etc/sysconfig/network-scripts/ifcfg-ens33文件的 source ~/.bashrc和reboot之后 执行service n…

nginx 快速入门

配置文件 nginx.conf 每个 http 块可以包括多个 server 块&#xff0c;而每个 server 块就相当于一个虚拟主机 #这一行表示这个server块监听的端口是80&#xff0c;只要有请求访问了80端口&#xff0c;此server块就处理请求listen 80;# 表示这个server块代表的虚拟主机的名字…

优雅的入参校验,Valid常用校验

更好的阅读体验&#xff1a;优雅的入参校验&#xff0c;Valid常用校验 对于前端传递的参数&#xff0c;正常情况下后端是要进行一些必要的校验&#xff0c;最简单的做法是用 if 效果是可以&#xff0c;但不优雅。使用 Validator 代替 if&#xff0c;就会优雅很多 ps&#xff…

重学SpringBoot3-Spring Data JPA简介

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ 重学SpringBoot3-Spring Data JPA简介 1. 什么是 Spring Data JPA&#xff1f;2. Spring Data JPA 的核心概念2.1. 实体&#xff08;Entity&#xff09;2.2. Repository&…

SpringBoot整合mybatisPlus实现批量插入并获取ID

背景&#xff1a;需要实现批量插入并且得到插入后的ID。 使用for循环进行insert这里就不说了&#xff0c;在海量数据下其性能是最慢的。数据量小的情况下&#xff0c;没什么区别。 【1】saveBatch(一万条数据总耗时&#xff1a;2478ms) mybatisplus扩展包提供的&#xff1a;…

吴恩达深度学习(9)

经典的神经网络&#xff1a; 残差网络&#xff08;ResNet&#xff09; 太深的神经网络容易出现梯度消失与梯度爆炸等问题。 跳跃连接&#xff0c;能从一层中得到激活并将其传递给下一层&#xff0c;甚至更深的网络层。利用这个可以训练网络层很深很深的残差网络&#xff08;R…

Go 1.19.4 命令调用、日志、包管理、反射-Day 17

1. 系统命令调用 所谓的命令调用&#xff0c;就是通过os&#xff0c;找到系统中编译好的可执行文件&#xff0c;然后加载到内存中&#xff0c;变成进程。 1.1 exec.LookPath&#xff08;寻找命令&#xff09; 作用&#xff1a; exec.LookPath 函数用于在系统的环境变量中搜索可…

海思hi3536c配置内核支持USB摄像头

linux内核版本&#xff1a;linux-3.18.20 配置步骤 进入Device Drivers 选择Multimedia support&#xff0c;并进入 选择Media USB Adapters&#xff0c;并进入 如下图&#xff0c;选择这几项&#xff1a; 保存退出&#xff0c;重新编译内核下载 内核更新后&#xff0c…