SpringBootWebProject学习——通用项目搭建(后面的项目均采用此项目进行添加内容)

举报
红目香薰 发表于 2024/06/30 21:57:00 2024/06/30
【摘要】 ​ 前言距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下SpringBoot的完整操作,为了更加直接体现完整的过程我会使用层叠法来完成这个系列文章,会从最新版本idea社区版本的下载开始,直至我们代码开发的整个阶段,可以将接口完全搞出来,跨域后让前端的项目可以解析,完成整个开发的闭环操作,准备工作的孩子们可以持续的跟着看看,应该会给你提供比较大的帮助。声明:由于刚...

 前言

距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下SpringBoot的完整操作,为了更加直接体现完整的过程我会使用层叠法来完成这个系列文章,会从最新版本idea社区版本的下载开始,直至我们代码开发的整个阶段,可以将接口完全搞出来,跨域后让前端的项目可以解析,完成整个开发的闭环操作,准备工作的孩子们可以持续的跟着看看,应该会给你提供比较大的帮助。

声明:由于刚毕业的还比不可能上来就上大的微服务架构,所以这里不提供springcloud内容,当然我会在下一个系列中将本次学到的整个springboot融入到springcloud中。

系统与开发环境

系统:Windows 11 家庭中文版

idea:官网2024年1月最新社区版本:ideaIC-2024.1

数据库:阿里云RDS for MySQL 5.7

基础idea环境搭建

 SpringBootWebProject学习1、环境搭建-CSDN博客

通过以上链接即可查看idea免费社区版本的安装完整流程。

基础maven配置(外部独立maven)

SpringBootWebProject学习2、maven配置-CSDN博客

通过以上链接即可查看idea的外部maven项目配置。 

基础maven默认配置(默认maven)

SpringBootWebProject学习2、默认maven使用-CSDN博客

通过以上链接即可查看idea的默认maven项目配置。 


SpringBootWebProject学习——正文

我这里还是使用英文的版本了,这个用的多,更方便大家熟悉。

项目创建

创建的是maven项目,maven配置在上面的链接中可以看到,使用默认的和外部引入的都可以。

另外这里使用的JDK是1.8的,毕竟这个是稳定版本,各种运行都不会出现版本异常的问题。

​编辑

修改maven配置

我这里用的是外部的maven配置,镜像用的还是阿里的。

​编辑

更换pom.xml配置

这里我给了完整的pom.xml配置,里面包含了mybatis、swagger、json、junit等内容,后面用这就方便了,更换完毕后一定刷新maven。

<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>org.example</groupId>

<artifactId>SrpingBootWebDemo1</artifactId>

<packaging>war</packaging>

<version>1.0-SNAPSHOT</version>

<name>APIDemos Maven Webapp</name>

<url>http://maven.apache.org</url>

<!-- 引入2.3.4的spring-boot -->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.3.4.RELEASE</version>

</parent>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>


<!-- 阻断器·打包的是否排除内置的tomcat -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</dependency>


<!--okhttp3 依赖-->

<dependency>

<groupId>com.squareup.okhttp3</groupId>

<artifactId>okhttp</artifactId>

<version>4.9.3</version>

</dependency>

<!-- 原项目 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.1.15</version>

</dependency>

<!-- swagger包这里2.9.2 -->

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger2</artifactId>

<version>2.9.2</version>

</dependency>

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger-ui</artifactId>

<version>2.9.2</version>

</dependency>

<!-- 用作字符串非空判断 -->

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.12.0</version>

</dependency>



<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

</dependency>

<!-- 热部署 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

</dependency>

<!-- Web支持 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<!-- JDBC -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<!-- MySQL驱动 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

<!-- 集成MyBatis -->

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>2.1.2</version>

</dependency>

<!-- junit -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<scope>test</scope>

</dependency>

<!-- 测试 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

<exclusions>

<exclusion>

<groupId>org.junit.vintage</groupId>

<artifactId>junit-vintage-engine</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>com.vaadin.external.google</groupId>

<artifactId>android-json</artifactId>

<version>0.0.20131108.vaadin1</version>

<scope>compile</scope>

</dependency>

</dependencies>

<build>

<finalName>APIDemos</finalName>

</build></project>

更新maven

​编辑

添加各层关系

1. com.item.controller控制层

2. com.item.dao数据接口层

3. com.item.model模型层

4. com.item.service业务逻辑接口层

5. com.item.serviceimpl业务逻辑实现层

6. com.item.swagger接口文档swagger配置

7. com.item放置Action启动类

8. resources.mapper数据xml实现层

我这里都先放置了一个类文件,写的名字都是Object,后面用起来直接改名字就行,也方便。 

​编辑

com.item下启动文件Action代码

package com.item;

import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@MapperScan("com.item.dao")@SpringBootApplicationpublic class Action extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(Action.class);

}


public static void main(String[] args) {

//一定是被@SpringBootApplication标记的类

SpringApplication.run(Action.class, args);

}

}

controller层ObjectController类

package com.item.controller;

import io.swagger.annotations.Api;import org.springframework.web.bind.annotation.CrossOrigin;import org.springframework.web.bind.annotation.RestController;

@Api("接口声明")@RestController@CrossOriginpublic class ObjectController {

}

dao层ObjectMapper类

package com.item.dao;

import org.springframework.stereotype.Repository;

@Repositorypublic interface ObjectMapper {

}

model层Object类

package com.item.model;

public class Object {

}

service层ObjectService类

package com.item.service;


public interface ObjectService {

}

serviceimpl层ObjectServiceImpl类

package com.item.serviceimpl;import com.item.service.ObjectService;import org.springframework.stereotype.Service;

@Servicepublic class ObjectServiceImpl implements ObjectService {

}

swagger层SwaggerConfig类

package com.item.swagger;

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration@EnableSwagger2public class SwaggerConfig {

private static Logger log = LoggerFactory.getLogger(SwaggerConfig.class);

@Bean

public Docket createRestApi() {

log.info("进入到swagger的配置中");

return new Docket(DocumentationType.SWAGGER_2)

// 指定构建api文档的详细信息的方法:apiInfo()

.apiInfo(apiInfo())

.groupName("红目香薰·为毕业答辩孩子准备的Java项目")

.select()

// 指定要生成api接口的包路径,这里把controller作为包路径,生成controller中的所有接口

.apis(RequestHandlerSelectors.basePackage("com.item.controller"))

.paths(PathSelectors.any())

.build();

}


/**

* 构建api文档的详细信息

* @return

*/

private ApiInfo apiInfo() {

return new ApiInfoBuilder()

// 设置页面标题

.title("Spring Boot集成Swagger2接口总览")

// 设置接口描述

.description("Swagger接口")

// 设置联系方式

.contact(new Contact("测试swagger","https://laoshifu.blog.csdn.net/",""))

// 设置版本

.version("1.0")

// 构建

.build();

}


}

dao实现层mapper文件基本代码

<?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"><!-- 适当更改dao层对应的文件名称 --><mapper namespace="com.com.item.dao.ObjectMapper"></mapper>

注:所有必须的注释内容都我放在对应的代码中了,无需额外配置,让你肯定能运行得起来。

配置文件

配置文件放在【resources】的根目录下。

​编辑

配置代码

注意提换【your info】,最后一个server.servlet.context-path是服务器的路径,访问的时候会用到例如:【http://127.0.0.1:8088/MyAPI/ 】这是基础服务路径,后面加上对应的controller路径即可。

# driver

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# database

spring.datasource.url=jdbc:mysql://【your database url】:3306/test?characterEncoding=utf8

# userName

spring.datasource.username=your userName

# pwd

spring.datasource.password=your pwd

# xml_url

mybatis.mapper-locations=classpath:mapper/*.xml

# model

mybatis.typeAliasesPackage=com.item.model

# port

server.port=8088

# projectPath

server.servlet.context-path=/MyAPI

至此,项目基础框架配置完毕,后续只需要对应的修改或增添代码即可。 

项目下载地址

https://download.csdn.net/download/feng8403000/89241946

​编辑


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。