2026/8/23 maven springboot

0.Maven配置

Maven的作用,依赖管理。

Maven的配置文件,setting.xml。

我们的java项目,可以使用maven下载我们需要的jar包。我们maven下载jar包,默认是从国外的下载,会有点慢,我们可以用setting设置把他换成国内的镜像,一般是阿里云镜像。

1.idea配置maven

maven home path是你要用的maven,一般idea默认有一个,也可以选择自己电脑上的maven。

user setting file是你的maven的setting文件,用哪个setting.xml就选哪个。

local repository是你用maven下载好的jar都放在哪个位置。

2.idea创建springboot项目

3.引入web依赖


@SpringBootApplication三个注解

springboot项目中@SpringBootApplication包含的三个注解

复制代码
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

建个数据库

可以通过加索引优化数据库

写一个controller(先写配置,再建controller包,写接口类)

等会,得先加web依赖,然后加上之后,maven刷新一下,他自动带上Tomcat服务器、springMVC(如图👇),接下来就做下面的步骤。

1.写配置 application.yml

复制代码
server:
  port: 8081

2.建controller包,写接口类

controller包要放在子包下,否则404找不到类

java 复制代码
package org.school.xdttest.controller;

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

@RestController
//@RequestMapping("/user")
public class UserController {
    @GetMapping("/hello")
    public String hello(){
        return "123";
    }
}

这次变成controller调用service

controller

java 复制代码
package org.school.xdttest.controller;

import org.school.xdttest.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
//@RequestMapping("/user")
public class UserController {
    //注入service
    @Autowired
    private UserService userService;

    @GetMapping("/hello")
    public String hello(){
        return userService.sayhello();
    }
}

接口+实现类

java 复制代码
package org.school.xdttest.service;

public interface UserService {
    String sayhello();
}
java 复制代码
package org.school.xdttest.service.impl;

import org.school.xdttest.service.UserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {
    @Override
    public String sayhello() {
        return "service返回";
    }
}

写一个统一返回结果的Result.java

一般标准的项目里肯定要统一咱们这个返回结果的,code msg data

一般写common包里,这里一般放工具、异常、 统一返回

写Result实体类,我们可以加上Lombok依赖里的@Data注解,这个注解就是专门放在实体类上面,自动帮我们生成代码比如getter setter toString equals hashcode

然后引入lombok依赖的时候,如果继承了父工程,可以省略版本号和scope

java 复制代码
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

Result要用泛型,因为返回的数据类型不确定。如果不加泛型的话,就要把data属性定义成Object。

Result加泛型<T>就是为了让data可以存放不同类型的数据,使用泛型可以在编译时做类型校验,避免Object带来的强制类型转换,减少运行时类型转换异常。

T和?的区别(泛型T与通配符?)

<T>定义泛型参数,写在类/方法上面,用来声明一个类型变量。T表示一个确定的类型,使用的时候确定是什么

一旦确定是User,整个类里面所有T全部都是User
?通配符,代表任意未知类型。一般用在方法参数,返回值,不能写在类定义上。
T定义模板,?表示不知道是什么类型

java 复制代码
package org.school.xdttest.common;

import lombok.Data;

@Data
public class Result<T> {
    private Integer code;
    private String msg;
    private T data;

    //成功
    public static <T> Result<T> success(T data){
        Result<T> r=new Result<>();
        r.setCode(200);
        r.setMsg("操作成功");
        r.setData(data);
        return r;
    }
    
    //失败
    public static <T> Result<T> fail(Integer code,String msg){
        Result<T> r=new Result<>();
        r.setCode(code);
        r.setMsg(msg);
        return r;
    }
}

写一个全局异常处理器GlobalExceptionHandler

这个一般在项目里也得有

复制代码
package org.school.xdttest.common;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice //全局异常注解
public class GlobalExceptionHandler {
    //捕获所有异常
    @ExceptionHandler(Exception.class)
    public Result<?> handleException(Exception e){
        e.printStackTrace();
        return Result.fail(500,"服务器内部异常:"+e.getMessage());
    }
}

@RestControllerAdvice:对所有Controller做增强,统一捕获异常,返回JSON

@ExceptionHandler(Exception.class)用来拦截对应类型的异常

demo

0.

在原来基础上加上依赖mybatis,sql。

复制代码
        <!-- mybatis -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!--  mysql依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>
相关推荐
SeaDhdhdhdhdh9 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
YH552698410 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站10 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
普通网友10 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
许彰午11 小时前
03-三种开发模式
java·架构
涟漪海洋11 小时前
创建最新的JDK25镜像,非root环境启动
java
Rain的Java大神之路11 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
孙克旭_12 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile
2602_9599609212 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题