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>
相关推荐
落魄大学生之流水线上谋生计2 小时前
Java并发核心机制详解:线程池、CAS、AQS、锁升级
java·开发语言·数据库
aosky2 小时前
Linux 写内容到文件的几种方式
java·linux·服务器
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之邮件验证码发送(SMTP与API方式)
java·数据库·spring
砚底藏山河4 小时前
容错重试与指数退避:网络抖动手抖不再丢数据(魔码量化实战 #04)
java·数据库·python·金融
梨涡泥窝4 小时前
JavaWeb——基于 Spring Boot + Vue 的图书管理系统的设计与实现
vue.js·spring boot·后端
2501_930472444 小时前
云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检
java·腾讯云
letisgo55 小时前
JAVA 高级进阶05篇《Spring容器机制:Bean生命周期与三级缓存全解》
java·spring·面试·ioc·源码分析
岁月如歌77865 小时前
分布式锁完全指南:从数据库到 Redisson 的演进
java·后端·架构
AI深栈5 小时前
第 8 章 · Tool Calling 与 Tool Search
java·人工智能
写后端的胖头鱼5 小时前
【高频面试题】spring事物失效场景(带原理 + 代码示例)
java·后端·spring·事务·事物失效