spring Boot快速入门

快速入门为主主要届介绍java web接口API的编写

在这里插入图片描述
java编辑器首选IntelliJ IDEA

官方链接:https://www.jetbrains.com/idea/

IEDA
在这里插入图片描述

前言

实例项目主要是web端API接口的使用,项目使用mysql数据库,把从数据库中的数据的查询出来后通过接口json数据返回

项目创建

选中 文件–>新建–>项目
在这里插入图片描述
选择Spring Initializr --> 配置依赖源服务器 URL地址、项目名称及位置、组名称、选择所需的java SDK,java环境
、打包的方式
在这里插入图片描述

选择要引入的依赖:mysql的驱动(Mysql Driver)、Spring web、JDBC API、Mybatis
在这里插入图片描述
完成后等待IDEA下载环境依赖

创建后常见问题

出现pom文件找不到插件 ‘org.springframework.boot:spring-boot-maven-plugin:‘问题,

可能是因为版本没有绑定好,去一级父类依赖找对应的插件版本,在pom文件中加上。
在这里插入图片描述
把父类的version加到pom中
在这里插入图片描述

出现解决 java: 错误: 不支持发行版本 21

在这里插入图片描述
在这里插入图片描述

Maven包无法加载

问题
使用中国移动的宽带会出现网络污染,不能够正确的下载Maven库中的maven包,导致Spring项目在加载是会出现报错。

解决方法
思路:
网络污染无非 是不能够对于外网的Maven包拿不过来,但是在国内阿里云的镜像也是会随时更新的。可以配置使用国内阿里云的镜像Maven。(不只是Maven,其他诸如树莓派的也可以)

方式一: 全局配置

可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点:

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

注:< mirrorOf>可以设置为哪个中央仓库做镜像,为名为“central”的中央仓库做镜像,写作< mirrorOf>central< /mirrorOf>;为所有中央仓库做镜像,写作< mirrorOf>< /mirrorOf>。Maven默认中央仓库的id 为 central。id是唯一的。除非你有把握,否则不建议使用< mirrorOf>< /mirrorOf>的方式。

在配置maven的setting.xml中如图所示,加入上述代码的这个内容,具体setting.xml依照各自的配置所在路径。
在这里插入图片描述
如果使用idea的话,可以依据此方式进行配置setting.xml
在这里插入图片描述

方式二: 单项目配置

单项目配置时,需要修改pom文件。pom文件中,没有mirror元素。在pom文件中,通过覆盖默认的中央仓库的配置,实现中央仓库地址的变更。
修改项目的pom文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test</groupId>
    <artifactId>conifg</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>

    <repositories>
        <repository>
            <id>central</id>
            <name>aliyun maven</name>
            <!-- 更改地址使用aliyun加载 -->
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <layout>default</layout>
            <!-- 是否开启发布版构件下载 -->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!-- 是否开启快照版构件下载 -->
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

</project>

注:Maven默认中央仓库的id 为 central。id是唯一的。因此使用< id>central< /id>覆盖了默认的中央仓库。

启动项目

可以在IDEA中配置启动
在这里插入图片描述
以上是没有配置数据库的url所导致的,把resources目录下的application.properties文件后缀改成yml文件进行配置
配置的内容如下:

server:
  port: 8081
spring:
#  数据库相关配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/javaboot?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: javaboot
    password: javaboot
#mybatis的相关配置
mybatis:
  #mybatis配置文件
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.example.demo.entity

Spring boot 简单步骤

文件目录如下:

controller 做展示的,只跟前端交互

entity 只做数据库映射

mapper 跟数据库交互的

service是业务逻辑(操作、计算)

在这里插入图片描述

1.建立实体类,跟数据库表字段保持一致

实体类中定义的的字段要与数据库表的字段保持一致
实体类中要实现构造方法和每个值得get()方法、set()方法

package com.example.demo.entity;
//实体类
//    实体类中定义的的字段要与数据库表的字段保持一致
//    里面要实现构造方法和每个值得get()方法、set()方法
public class User {
    private int id;
    private String name;
    private int age;
    private String email;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public User(int id, String name, int age, String email) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.email = email;
    }
}

2.建立mapper接口,定义要操作数据库的动作

@Mapper是实例化Usermapper 对象

package com.example.demo.mapper;

import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
@Mapper
public interface Usermapper {
    List<User> findAll();
}

3.建立mapper的xml文件,写具体的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.example.demo.mapper.Usermapper">

    <select id="findAll" resultType="com.example.demo.entity.User">
        SELECT * FROM user
    </select>

</mapper>

4.建立service类,处理业务逻辑

@Service -----实例化对象
@Autowired 从容器中拿出来用

package com.example.demo.service;

import com.example.demo.entity.User;
import com.example.demo.mapper.Usermapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class UserService {
    @Autowired
    private Usermapper usermapper;

    public List<User> fandAll(){
        return usermapper.findAll();
    }
}

5.在controller类中展示处理的结果

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.RestController;

import java.util.List;

@RestController
public class Usercontrller {
    @Autowired
    private UserService userservice;

    @RequestMapping("/user")
    public List<User> getUser(){
        return userservice.fandAll();
    }
}

6、启动服务,访问链接

最后访问 http://127.0.0.1:8081/user

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机考研】408系统学习法

计算机专业课基本上都是数据结构&#xff0c;计算机组成原理&#xff0c;计算机网络和操作系统中的内容 如果你考的学校是自命题&#xff0c;那么考察的专业课一般比较少&#xff0c;只有1-3门&#xff0c;比较顶尖的学校自命题考的比408还要难。如果考的是408&#xff0c;那么…

脚本项目一

第一题 1、判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查一次磁盘剩余空间。 第一步安装邮件服务 [rootserver ~]# yum install mailx -y [rootserver ~]# vim /etc/mail.rc set from2282475145qq.com se…

管理类联考--复试--简历

文章目录 整体细节个人信息报考信息教育背景校园经历/实践经历/工作经历校园经历实践经历工作经历 个人特长/奖项证书个人特长奖项证书 自我评价 整体 第一&#xff1a;肯定是个人信息&#xff0c;要让面试官第一时间了解你的基础信息&#xff1b; 第二&#xff1a;报考信息&a…

I/O复用 (包含select 和 poll详解)

目录 1&#xff1a;i/O复用技术的作用2: 什么情况下需要此技术select 系统调用select系统调用原型如下&#xff1a;fd_set结构体定义如下&#xff1a;可以使用如下宏访问fd_set 结构体中的位&#xff1a;timeout结构体如下&#xff1a;文件描述符就绪条件什么情况下 socket可读…

openai DALL-E 3 论文 提升图像生成的关键:更好的图像描述

摘要 我们展示了通过训练高度描述性的生成图像标题&#xff0c;可以显着改善文本到图像模型的提示跟随能力。 现有的文本到图像模型在跟随详细的图像描述方面存在困难&#xff0c;经常忽略单词或混淆提示的含义。 我们假设这个问题源于训练数据集中存在嘈杂和不准确的图像标…

shapely 笔记:基本方法

1 线性方法 1.1 object.interpolate(distance[, normalizedFalse]) print(LineString([(0, 0), (0, 1), (1, 1)]).interpolate(1.5)) #POINT (0.5 1)print(LineString([(0, 0), (0, 1), (1, 1)]).interpolate(0.75, normalizedTrue)) #POINT (0.5 1) LineString([(0, 0), (0…

URL、DNS过滤,AV---防火墙综合实验

拓扑图 该实验之前的配置请看我的上一篇博客&#xff0c;这里仅配置URL、DNS过滤&#xff0c;AV 需求 8&#xff0c;分公司内部的客户端可以通过域名访问到内部的服务器 这次的拓扑图在外网多增加了一个DNS服务器和HTTP服务器 DNS服务器IP&#xff1a;40.0.0.30 HTTP服务器…

SqlServer 用游标方式 获取总计累计到某个值/数字 的结果集

数据表准备&#xff1a; 情况1&#xff1a;GroupName1 获取累计 未超过 100 的记录 SQL 和 结果 图 如下&#xff1a; 情况2&#xff1a;GroupName2 获取累计 未超过 100 的记录 SQL 和 结果 图 如下&#xff1a; 附录&#xff1a; SQL 文本 ---------------- 自定义 Star…

MySQL数据库基础(七):DDL数据表操作

文章目录 DDL数据表操作 一、数据表的基本操作 1、数据表的创建 2、查询已创建数据表 3、修改数据表信息 ① 数据表字段添加 ② 修改字段名称或字段类型 ③ 删除某个字段 ④ 修改数据表名称 4、删除数据表 二、字段类型详解 1、整数类型 2、浮点类型 3、日期类型…

提升网络质量:UDPspeeder 实现网络优化与提速

提升网络质量&#xff1a;UDPspeeder 实现网络优化与提速 背景与意义原理与功能使用方法未来展望相关链接服务 在当今高度互联的网络环境下&#xff0c;网络质量的优化和提速对于用户体验至关重要。针对高延迟和丢包率较高的网络链路&#xff0c;UDPspeeder 提供了一种前向纠错…

说一下 JVM 运行时数据区 ?

目录 一、程序计数器&#xff08;Program Counter Register&#xff09; 二、Java 虚拟机栈&#xff08;Java Virtual Machine Stacks&#xff09; 三、本地方法栈&#xff08;Native Method Stack&#xff09; 四、Java 堆&#xff08;Java Heap&#xff09; 五、方法区&…

Docker Compose详解

Docker Compose详解 1.概述2.安装3.基本使用4.命令说明5.Compose 模板文件6.使用Docker快速安装wordpress 1.概述 Compose 项目是 Docker 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排 使用一个 Dockerfile 模板文件&#xff0c;可以让用户很方便的定义一…

新版AI系统ChatGPT源码支持GPT-4/支持AI绘画去授权

源码获取方式 搜一搜&#xff1a;万能工具箱合集 点击资源库直接进去获取源码即可 如果没看到就是待更新&#xff0c;会陆续更新上 新版AI系统ChatGPT网站源码支持GPT-4/支持AI绘画/Prompt应用/MJ绘画源码/PCH5端/免授权&#xff0c;支持关联上下文&#xff0c;意间绘画模型…

Linux环境安装Git(详细图文)

说明 此文档Linux环境为&#xff1a;Ubuntu 22.04&#xff0c;本文档介绍两种安装方式&#xff0c;一种是服务器能联网的情况通过yum或apt命令下载&#xff0c;第二种采用源码方式安装。 一、yum/apt方式安装 1.yum方式安装Git 如果你的服务器环境是centos/redhot&#xff…

天府锋巢直播产业基地:打造成都直播基地产教融合及人才培训服务新模式

2023年6月&#xff0c;国家发展改革委、教育部等八部门联合印发了《职业教育产教融合赋能提升行动实施方案&#xff08;2023—2025年&#xff09;》&#xff0c;旨在加强国家产教融合试点城市和产教融合型企业的遴选等工作&#xff0c;推进职业教育产教融合赋能提升。 与此同时…

LeetCode.106. 从中序与后序遍历序列构造二叉树

题目 106. 从中序与后序遍历序列构造二叉树 分析 前面讲过根据前序和中序构建二叉树&#xff1a;博客链接 这道题是告诉我们一颗二叉树的后序和中序&#xff0c;让我们根据后序和中序构造出整颗二叉树。 拿到这道题&#xff0c;我们首先要知道中序的后序又怎样的性质&#…

CentOS和Ubuntu之间的区别和联系

CentOS&#xff08;Community ENTerprise Operating System&#xff09;和Ubuntu是两种流行的Linux发行版&#xff0c;它们在企业和个人用户中都有广泛的应用。尽管它们都是基于Linux内核&#xff0c;但它们在设计理念、更新策略、包管理系统等方面存在一些关键的区别和联系。下…

[Angular 基础] - 自定义指令,深入学习 directive

[Angular 基础] - 自定义指令&#xff0c;深入学习 directive 这篇笔记的前置笔记为 [Angular 基础] - 数据绑定(databinding)&#xff0c;对 Angular 的 directives 不是很了解的可以先过一下这篇笔记 后面也会拓展一下项目&#xff0c;所以感兴趣的也可以补一下文后对应的项…

钉钉小程序 访问ip不在白名单之中

钉钉小程序 访问ip不在白名单之中 problem 钉钉官方自带免登陆小程序 后端接口报错 {"errcode":60020,"errmsg":"访问ip不在白名单之中&#xff0c;请参考FAQ&#xff1a;https://open.dingtalk.com/document/org-faq/app-faq,request ip175.2.2.52…

软件测试工程师经典面试题

软件测试工程师&#xff0c;和开发工程师相比起来&#xff0c;虽然前期可能不会太深&#xff0c;但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位&#xff0c;问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件…