前言
距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下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
添加各层关系
- com.item.controller控制层
- com.item.dao数据接口层
- com.item.model模型层
- com.item.service业务逻辑接口层
- com.item.serviceimpl业务逻辑实现层
- com.item.swagger接口文档swagger配置
- com.item放置Action启动类
- 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")
@SpringBootApplication
public 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
@CrossOrigin
public class ObjectController {
}
dao层ObjectMapper类
package com.item.dao;
import org.springframework.stereotype.Repository;
@Repository
public 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;
@Service
public 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
@EnableSwagger2
public 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
至此,项目基础框架配置完毕,后续只需要对应的修改或增添代码即可。
项目下载地址
版权归原作者 红目香薰 所有, 如有侵权,请联系我们删除。