iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring Boot:Idea从零开始初始化后台项目的教程
  • 473
分享到

Spring Boot:Idea从零开始初始化后台项目的教程

2024-04-02 19:04:59 473人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1 创建项目1.1 填写项目基本信息1.2 选择项目集成功能2 项目基础配置2.1 gradle文件配置2.2 环境文件配置2.2.1 Logback配置文件2.2.2 myba

官方提供了SpringBoot初始化工具可直接在线生成项目文件,然后下载并导入开发工具中 。这里记录通过Mac版 IntelliJ idea 2019.3.3 (Ultimate Edition)创建springboot后台项目的过程,当前Springboot稳定版本为2.2.6。

下面的步骤可看做是创建Springboot后台项目模板,也可以当做个是个Helloworld,主要实现以下功能:

  • 集成mysql,通过SpringData JPA和MyBatis两种方式操作数据库
  • 集成Redis内存数据库
  • 配置Logback
  • 开启项目健康监测

如需集成其他功能,可在此基础上添加。上诉Mysql和Redis使用的是《Docker案例:搭建MySQL数据库服务》和《Docker案例:搭建Redis服务》创建的docker容器

1 创建项目

1.1 填写项目基本信息

打开Idea创建项目,如下图:

新建项目

选择官方初始化器

填写项目信息

1.2 选择项目集成功能

完成基本信息配置,在WEB,SQL,NoSQL,Ops选项中,选择对应的模块依赖,最终选择如图以下几项:

  • Spring Web 用于提供web相关功能
  • Spring Data JPA用于提供数据库相关操作
  • MyBatis Framework用于通过MyBatis操作数据库
  • Spring Data Redis 用于提供Redis相关功能
  • Spring Boot Actuator 用于提供应用的健康监测功能

设置完成后,点击下一步,Idea开始初始化项目文件。

集成功能

2 项目基础配置

通过上面步骤,已生成项目结构文件,等待开发环境自动构建好依赖库后可继续后续的工作。

2.1 gradle文件配置

当前项目使用gradle管理项目依赖,默认情况下,使用官方的依赖库,国内访问较慢,可替换为阿里云仓库。在build.gradle文件的repositories节点下添加阿里云仓库访问地址,设置完成后如下


repositories {
    //使用阿里云仓库,提高国内依赖库下载速度
    Maven { url "Http://maven.aliyun.com/nexus/content/groups/public" }
    mavenCentral()
}

另外,添加其它常用依赖库,最终依赖包如下


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.2'
    implementation 'com.alibaba:fastJSON:1.2.68'
    implementation 'org.apache.commons:commons-lang3:3.10'
    //数据库配置的日志类com.mysql.cj.log.Slf4JLogger在这个包中
    runtime('mysql:mysql-connector-java')
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

2.2 环境文件配置

官方初始化器默认会在resources资源文件夹下生成一个application.properties文件,这里调整一下配置文件结构。在resources资源文件夹下创建config文件夹,移动application.properties文件到config文件夹下,同时在config文件夹下创建application-dev.properties文件和application-prod.properties文件,分别对应开发环境和线上环境的配置,可根据需要增加其它环境配置文件,文件格式为application-环境名称.properties。

最终application.properties文件内容如下


#默认启动dev环境
spring.profiles.active=dev
#调整web后台服务端口为9080,不设置默认为8080
server.port=9080
#mybatis配置文件地址
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#mybatis mapper文件地址
mybatis.mapper-locations=classpath:mybatis/mapper
    private int status;
    private String description;
    private Object data;
    public HResponse() {
    }
    public HResponse(int status, String description, Object data) {
        this.status = status;
        this.description = description;
        this.data = data;
    }
    public static HResponse success() {
        return new HResponse(200, "操作成功", null);
    }
    public static HResponse success(String description) {
        return new HResponse(200, description, null);
    }
    public static HResponse success(Object data) {
        return new HResponse(200, "success", data);
    }
    public static HResponse success(String description, Object data) {
        return new HResponse(200, description, data);
    }
    public static HResponse error(String description) {
        return new HResponse(400, description, null);
    }
    public static HResponse error(String description, Object data) {
        return new HResponse(400, description, data);
    }
    public int getStatus() {
        return status;
    }
    public void setStatus(int status) {
        this.status = status;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

3.1 Redis案例

使用StringRedisTemplate对Redis进行基本操作,这里简单提供查询Redis的key值和设置Redis的key值两个操作,在CommonController中添加代码如下


	private final StringRedisTemplate redisTemplate;
    private final SqlSession sqlSession;
    public CommonController(StringRedisTemplate redisTemplate) {
        this.redisTemplate = redisTemplate;
    }
    @PostMapping("/getRedisValue")
    public HResponse getRedisValue(String key) {
        this.logger.info("请求获取redis key为:{} 的值", key);
        return HResponse.success(new jsONObject().fluentPut("key", key).fluentPut("value", this.redisTemplate.opsForValue().get(key)));
    }
    @PostMapping("/setRedisValue")
    public HResponse getRedisValue(String key, String value) {
        if (StringUtils.isBlank(key)) {
            return HResponse.error("键 不能为空");
        }
        if (StringUtils.isBlank(value)) {
            return HResponse.error("值 不能为空");
        }
        this.logger.info("请求设置redis key为:{} 的值为 {}", key, value);
        this.redisTemplate.opsForValue().set(key.trim(), value.trim());
        return HResponse.success();
    }

启动redis的docker容器并运行当前案例,使用Postman发送请求设置和查询redis中对应的key值,请求响应如下图

设置Redis中key值

在这里插入图片描述

3.2 MySQL案例

简单介绍两种从MySQL查询数据的案例,JPA方式和MyBatis方式。先启动好MySQL的docker容器,然后创建表h_company并插入一条数据,最终数据表结果如下图:

在这里插入图片描述

在这里插入图片描述

3.2.1 JPA方式

构造HCompany数据库映射类和对应的数据库表访问接口CompanyRepository,内容如下:


@Entity
@Table(name = "h_company")
@Where(clause = "id > 0")
public class HCompany {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private String shortName;
    private String address;
    private String tel;
    private String remark;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getShortName() {
        return shortName;
    }
    public void setShortName(String shortName) {
        this.shortName = shortName;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

@Repository
@Where(clause = "id > 0")
public interface CompanyRepository extends PagingAndSortingRepository<HCompany, Integer>, JpaRepository<HCompany, Integer> {
}

在控制器CommonController中添加使用CompanyRepository查询数据库的方法:


    @PostMapping("/getAllCompany")
    public HResponse getAllCompany() {
        return HResponse.success(this.companyRepository.findAll());
    }

使用Postman调用查询,响应如下

在这里插入图片描述

3.2.2 MyBatis方式

使用SqlSession接口访问数据库,创建company.xmlmapper文件,内容如下


<?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="company">
    <select id="getAll" resultType="java.util.Map">
        select * from h_company
    </select>
</mapper>

控制器CommonController中添加通过MyBatis获取数据的方法,如下


    @PostMapping("/getAllCompanyByMybatis")
    public HResponse getAllCompanyByMybatis() {
        return HResponse.success(this.sqlSession.selectList("company.getAll"));
    }

重新启动项目,然后通过Postman访问,响应如下:

在这里插入图片描述

3.3 控制器完整代码

完成以上步骤后,控制器CommonController完整内容如下:


@RestController
@RequestMapping("/common")
public class CommonController {
    private Logger logger = LoggerFactory.getLogger(this.getClass());
    private final StringRedisTemplate redisTemplate;
    private final CompanyRepository companyRepository;
    private final SqlSession sqlSession;
    public CommonController(StringRedisTemplate redisTemplate, CompanyRepository companyRepository, SqlSession sqlSession) {
        this.redisTemplate = redisTemplate;
        this.companyRepository = companyRepository;
        this.sqlSession = sqlSession;
    }
    @PostMapping("/getRedisValue")
    public HResponse getRedisValue(String key) {
        this.logger.info("请求获取redis key为:{} 的值", key);
        return HResponse.success(new JSONObject().fluentPut("key", key).fluentPut("value", this.redisTemplate.opsForValue().get(key)));
    }
    @PostMapping("/setRedisValue")
    public HResponse getRedisValue(String key, String value) {
        if (StringUtils.isBlank(key)) {
            return HResponse.error("键 不能为空");
        }
        if (StringUtils.isBlank(value)) {
            return HResponse.error("值 不能为空");
        }
        this.logger.info("请求设置redis key为:{} 的值为 {}", key, value);
        this.redisTemplate.opsForValue().set(key.trim(), value.trim());
        return HResponse.success();
    }
    @PostMapping("/getAllCompany")
    public HResponse getAllCompany() {
        return HResponse.success(this.companyRepository.findAll());
    }
    @PostMapping("/getAllCompanyByMybatis")
    public HResponse getAllCompanyByMybatis() {
        return HResponse.success(this.sqlSession.selectList("company.getAll"));
    }
}

4 健康监测

案例启用了完整的项目监测,可通过http://localhost:9080/actuator查看,每个监测项都对应相应的查看链接,如下图。

在这里插入图片描述

5 项目结构

完成以上配置及案例后,项目结构如下图:

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Spring Boot:Idea从零开始初始化后台项目的教程

本文链接: https://www.lsjlt.com/news/160470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring Boot:Idea从零开始初始化后台项目的教程
    目录1 创建项目1.1 填写项目基本信息1.2 选择项目集成功能2 项目基础配置2.1 gradle文件配置2.2 环境文件配置2.2.1 Logback配置文件2.2.2 MyBa...
    99+
    2024-04-02
  • Spring Boot中Idea如何从零开始初始化后台项目
    这篇文章主要为大家展示了“Spring Boot中Idea如何从零开始初始化后台项目”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring Boot中Idea如何从零开始...
    99+
    2023-06-22
  • Python区块链项目实战教程:从零开始到项目落地
    一、准备工作 首先,我们需要安装必要的开发工具和库。Python是本文推荐的编程语言,因为它具有简洁、易读的语法,并且拥有丰富的库和第三方包。 安装Python pip install python 安装必要的库 pip ins...
    99+
    2024-02-23
    Python 区块链 项目实战 区块链编程 区块链开发
  • 从零开始:Go语言项目开发的经验教训
    从零开始:Go语言项目开发的经验教训前言在软件开发领域,选择一门适合的编程语言对项目的成功与否至关重要。Go语言作为一门新的、简洁而高效的编程语言,受到越来越多开发者的青睐。但是,在实际项目开发过程中,我也总结出了一些经验教训,希望能对大家...
    99+
    2023-11-02
    Go语言开发 项目开发 经验教训
  • Django项目从零开始的大概脉络
    创建虚拟环境,隔离项目python环境:mkvirtualenv -p /usr/bin/python3.6 envname 安装Django:pip install django 要在创建的虚拟环境下安装,workon envn...
    99+
    2023-01-31
    脉络 从零开始 项目
  • 手把手教你从零开始react+antd搭建项目
    之前的文章都是自己的学习日志,主要是防止自己遗忘之前遇到的坑。这次将从最基础的项目搭建开始讲起,做一个基于react和antd的后台管理系统。我会一步步进行下去,所以看完本文你哪怕不...
    99+
    2024-04-02
  • 从零开始学Python的方法教程
    本篇内容主要讲解“从零开始学Python的方法教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“从零开始学Python的方法教程”吧!课题今天的课题是用Python实现一个猜数字游戏,所谓的猜数...
    99+
    2023-06-15
  • 从零开始让你的Spring Boot项目跑在Linux服务器
    目录1 搭建Linux服务器1.1 购买阿里云服务器或安装虚拟机1.2 安装JDK1.8(CentOS 8为例)1.3 安装MySQL1.4 安装Maven(非必要)2 项目部署运行...
    99+
    2024-04-02
  • 从零开始的Go语言项目开发经验
    从零开始的Go语言项目开发经验随着互联网的快速发展,各种编程语言也应运而生。其中,Go语言作为一种开发效率高、性能强劲的编程语言,受到了越来越多开发者的关注和喜爱。那么如何从零开始进行Go语言项目的开发呢?我在最近的项目中获得了一些经验和教...
    99+
    2023-11-02
    经验 Go语言 项目开发
  • 从零开始学习编程:Go、JavaScript和Spring教程对比
    编程已经成为了当今世界最为流行的技能之一。在这个数字化时代,学习编程已经成为了必须要掌握的技能。不仅仅是程序员,从事IT行业的人员也必须要学习编程。本文将会对比三种编程语言,包括Go、JavaScript和Spring,从而帮助初学者了解...
    99+
    2023-10-02
    javascript spring 教程
  • Tomcat上的Web项目部署指南:从零开始
    从零开始,如何在Tomcat上成功部署Web项目Tomcat是一个广泛使用的开源Web服务器,用于部署和运行Java Web应用程序。本文将引导您从头开始,学习如何在Tomcat上成功部署Web项目。准备工作:在开始之前,您需要完成以下准备...
    99+
    2023-12-29
    tomcat 部署 Web项目
  • 初始化vue项目的过程 是什么
    本篇内容主要讲解“初始化vue项目的过程 是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“初始化vue项目的过程 是什么”吧!在命令行执行命令“vue init webpack vue-pr...
    99+
    2023-07-05
  • Unix和Java的实时教程:从零开始学习!
    Unix和Java都是非常流行的编程语言,它们各自拥有独特的特性和优点。本文将介绍Unix和Java的实时教程,从零开始学习Unix和Java编程。 Unix实时教程 Unix是一种非常流行的操作系统,它可以运行在各种设备上,包括个人电脑、...
    99+
    2023-08-30
    unix 教程 实时
  • Nikto:从零开始到专业版的完整教程
    文章目录 @[TOC](文章目录) 介绍一、什么是Nikto?二、Nikto工具中的功能Nikto工具中的命令有如何使用Nikto工具?1.安装Nikto2.标准扫描3.对目标SSl或TLS扫描4.扫描特定/多个端口5....
    99+
    2023-08-19
    服务器 运维
  • 从零开始搭建你的第一个Python区块链项目
    1. 区块链概述 区块链是一种分布式数据库,用于以安全、透明和防篡改的方式记录交易。它由一个链状结构组成,其中每个区块都包含一定数量的交易信息、前一个区块的哈希值和其他元数据。区块链的技术核心是分布式账本和共识机制,实质上是一种去中心化...
    99+
    2024-02-23
    区块链 Python 加密 分布式账本 数字货币
  • 从零开始的Go语言项目开发指南与经验分享
    近年来,Go语言在开发领域逐渐崭露头角。它以其简洁、高效的特性,受到了越来越多开发者的青睐。作为一门静态类型、编译型的语言,Go语言具备卓越的性能和并发处理能力,适用于各种规模的项目开发。本文将从零开始,分享一些关于Go语言项目开发的指南和...
    99+
    2023-11-02
    Go语言 经验分享 项目开发指南
  • PHP学习者必看:从零开始的LeetCode算法教程
    PHP作为一门非常流行的后端编程语言,越来越受到开发者们的青睐。而LeetCode是一种非常受欢迎的算法学习平台,它可以帮助PHP初学者深入了解算法和数据结构,提高他们的编程技能。在本篇文章中,我们将从零开始为PHP学习者介绍LeetCod...
    99+
    2023-11-02
    leetcode 教程 load
  • Python 文件操作的简易教程:从零开始掌握
    ...
    99+
    2024-04-02
  • 从零开始:VUE 过渡状态的详细入门教程
    VUE 过渡状态概述 VUE 过渡状态是一种用于处理组件元素动态变化的工具,它可以帮助您在组件元素之间平滑地过渡,从而增强用户体验。VUE 过渡状态可以通过 CSS 动画或 JavaScript 动画来实现。 VUE 过渡状态的用法 1...
    99+
    2024-02-11
    VUE 过渡状态 动画 淡入淡出 缩放 旋转
  • 从零开始的CSS开发项目经验:从布局到样式的完美呈现
    作为现代Web开发的基本技能之一,CSS的设计和开发能力在许多前端工作中都扮演着关键的角色。然而,随着技术的不断发展,CSS也变得更加复杂和灵活,如何从零开始进行CSS开发成为了许多初学者的难题。在这篇文章中,我们将分享一些从零开始的CSS...
    99+
    2023-11-02
    布局 样式 CSS开发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作