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节点下面添加子节点:

xml 复制代码
<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文件:

xml 复制代码
<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文件进行配置

配置的内容如下:

yaml 复制代码
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 简单步骤

文件目录如下:

bash 复制代码
controller 做展示的,只跟前端交互

entity 只做数据库映射

mapper 跟数据库交互的

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

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

实体类中定义的的字段要与数据库表的字段保持一致

实体类中要实现构造方法和每个值得get()方法、set()方法

java 复制代码
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 对象

java 复制代码
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 复制代码
<?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 从容器中拿出来用

java 复制代码
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类中展示处理的结果

java 复制代码
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

相关推荐
LiuYaoheng12 小时前
【Android】View 的基础知识
android·java·笔记·学习
勇往直前plus12 小时前
Sentinel微服务保护
java·spring boot·微服务·sentinel
星辰大海的精灵12 小时前
SpringBoot与Quartz整合,实现订单自动取消功能
java·后端·算法
小鸡脚来咯12 小时前
一个Java的main方法在JVM中的执行流程
java·开发语言·jvm
江团1io012 小时前
深入解析三色标记算法
java·开发语言·jvm
天天摸鱼的java工程师13 小时前
RestTemplate 如何优化连接池?—— 八年 Java 开发的踩坑与优化指南
java·后端
一乐小哥13 小时前
一口气同步10年豆瓣记录———豆瓣书影音同步 Notion分享 🚀
后端·python
LSTM9713 小时前
如何使用C#实现Excel和CSV互转:基于Spire.XLS for .NET的专业指南
后端
你我约定有三13 小时前
java--泛型
java·开发语言·windows
三十_13 小时前
【NestJS】构建可复用的数据存储模块 - 动态模块
前端·后端·nestjs