目录

前言:

一、新建springboot项目 -demogradle 

二、添加springboot web 部分

三、新建测试controller 

四、启动项目

五、添加日志logback

六、添加数据库连接

1、新建表和插入几条数据

2、 添加mysql和mybatis依赖

3、bo

4、mapper.xml

5、dao层

6、service

7、controller

8、启动类添加dao注入

七、打包到服务器


前言:

         Gradle与Maven的核心区别在于构建模型、配置方式、性能表现和灵活性‌。Gradle基于Groovy/Kotlin DSL的任务驱动模型,支持增量构建,性能显著优于Maven;Maven则采用XML配置的预定义生命周期,强调标准化但灵活性较低

核心差异对比

  1. 配置语言与构建模型‌。

    • Maven‌:使用XML(pom.xml)定义项目结构和生命周期,遵循严格的阶段(清理、编译、测试等),强调约定优于配置。‌‌

    • Gradle‌:采用Groovy或Kotlin DSL(build.gradle),通过任务有向无环图(DAG)动态定义构建流程,支持灵活定制。‌‌

  2. 性能表现‌。

    • 构建速度‌:Gradle的增量构建和缓存机制使其在大多数场景下比Maven快2-10倍,尤其是多模块项目中差异更为显著。例如:‌‌

      1. 中型项目(100模块)增量构建速度提升40倍。‌‌

      2. 大型单体应用(5万文件)纯净构建快3倍。‌‌

  3. 依赖管理与扩展性‌。

    • Maven‌:依赖解析简单,但范围有限;扩展需依赖插件,定制能力较弱。‌‌

    • Gradle‌:支持多仓库(如Maven Central、JCenter),依赖声明更简洁,且允许自定义依赖解析策略。‌‌

  4. 适用场景选择‌。‌‌

    • 优先选Maven‌:项目结构标准化、依赖简单或需兼容传统Maven生态(如Spring早期版本)。

    • 优先选Gradle‌:需要动态构建逻辑(如Android项目)、多模块复杂依赖或追求高性能构建。

废话少说,直接开干

一、新建springboot项目 -demogradle 

这里有时候会遇到问题,download的时候会无法下载,那我们可以直接去spring 官网下载

二、添加springboot web 部分

implementation 'org.springframework.boot:spring-boot-starter-web'

三、新建测试controller 

四、启动项目

application.yml 配置我喜欢加上项目名 

server:
  port: 8081
  servlet:
    context-path: /demogradle

启动查看

这就完美了,是不是看起来很简单,当然这里面也会遇到问题,idea版本问题,新建的项目很多都是默认springboot  版本是3.2以上,那么需要的jdk就是11以上,然而我们往往使用的都是jdk8,这时候就会报错,所以我们就需要修改一下配置

build.gradle

plugins {
   id 'java'
   id 'org.springframework.boot' version '2.7.5'
   id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

五、添加日志logback

随便springboot 自带logback,但是还是要添加依赖

implementation('org.springframework.boot:spring-boot-starter-web') {
   exclude group: 'org.springframework.boot', module: 'spring-boot-starter-log4j2'
}

// Lombok 核心依赖
compileOnly 'org.projectlombok:lombok:1.18.32'
annotationProcessor 'org.projectlombok:lombok:1.18.32' // 关键:启用注解处理器
// SLF4J API(Spring Boot 默认包含,但显式声明更安全)
implementation 'org.slf4j:slf4j-api'

我们采用注解的方式打印日志

logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_PATH" value="logs"/>
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>

    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- 系统日志输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>3GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration> 

 controller 直接加注解

@Slf4j
@RestController
@RequestMapping("/helloController")
public class HelloController {

    @GetMapping("/hello")
    public  String hello(){
        log.info("hello gradle Springboot!");
        return "hello gradle Springboot!";
    }
}

 启动一下,可以看到

六、添加数据库连接

1、新建表和插入几条数据

CREATE TABLE `student`(
   `stuId` INT(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
   `name` VARCHAR(20) COMMENT '姓名',
   `age` INT(2)  COMMENT '年龄',
   `sex` VARCHAR(4) COMMENT '性别',
   `stuClass` INT(11) COMMENT '班级',
   PRIMARY KEY (`stuId`)
 )ENGINE=MYISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8  ;

INSERT INTO student VALUES(1001,'张三',10,'男',202201),(1002,'李四',10,'男',202201),
(1003,'王五',11,'男',202202),(1004,'小红',10,'女',202201);

2、 添加mysql和mybatis依赖

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4'
// Spring Boot Starter JDBC (用于事务管理)
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
// MySQL 5.6 兼容的 JDBC 驱动版本
implementation 'mysql:mysql-connector-java:5.1.49'
// MyBatis 核心库
implementation 'org.mybatis:mybatis:3.5.7'
implementation 'com.zaxxer:HikariCP:3.4.5'

application.yml

spring:
  datasource:
    typ: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://XXXXXXXXXXXXXXXX/demotest?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&failOverReadOnly=false
    username: XXXXXXXXXXXX
    password: XXXXXXXX

mybatis:
  mapper-locations: classpath:/mapper/*.xml
  configuration:
    map-underscore-to-camel-case: false

3、bo

@Data
public class StudentBo {
    private int stuId;
    private String name;
    private int age;
    private String sex;
    private int stuClass;
}

4、mapper.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.demogradle.dao.StudentinfoDao">
    <select id="selectStudentdbrich" resultType="com.example.demogradle.bo.StudentBo">
        SELECT * FROM studentinfo
    </select>

</mapper>

5、dao层

public interface StudentinfoDao {

    List<StudentBo> selectStudentdbrich();
}

6、service

@Service
public class StudentService {

    @Resource
    private StudentinfoDao studentinfoDao;

    public List<StudentBo> selectStudentdbrich() {

        return  studentinfoDao.selectStudentdbrich();
    }


}

7、controller

@RestController
@RequestMapping("/studentinfoController")
public class StudentinfoController {
    private static Logger log = LoggerFactory.getLogger(StudentinfoController.class);

    @Autowired
    private StudentService studentService ;

    @RequestMapping("/selectStudent")
    public List<StudentBo> selectStudent(){
        List<StudentBo> list=studentService.selectStudentdbrich();
        log.info("查询条数={}",list.size());
        return list;
    }

}

8、启动类添加dao注入

@MapperScan(basePackages = {"com.example.demogradle.**.dao"})

启动项目,localhost:8081/demogradle/studentinfoController/selectStudent

七、打包到服务器


bootJar {
	enabled = true
	archiveBaseName.set('demogradle')
	archiveClassifier.set('')
	archiveVersion.set('')

	// 排除配置文件
	exclude('application*.yml')
	exclude('logback-spring.xml')
	// 设置主类
	manifest {
		attributes(
				'Main-Class': 'org.springframework.boot.loader.JarLauncher',
				'Start-Class': 'com.example.demogradle.DemogradleApplication',
				'Class-Path': 'resources/'// 显式声明外部配置目录
		)
	}

}


// 设置默认构建任务
build.dependsOn bootJar

直接去服务器查询

到这里就完美了!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐