SpringBootWebProject学习——通用项目搭建(后面的项目均采用此项目进行添加内容)
前言
距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下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。
4.0.0
org.example
SrpingBootWebDemo1
war
1.0-SNAPSHOT
APIDemos Maven Webapp
http://maven.apache.org
org.springframework.boot
spring-boot-starter-parent
2.3.4.RELEASE
junit
junit
3.8.1
test
org.springframework.boot
spring-boot-starter-tomcat
com.squareup.okhttp3
okhttp
4.9.3
com.alibaba
fastjson
1.1.15
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
org.apache.commons
commons-lang3
3.12.0
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-devtools
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-jdbc
mysql
mysql-connector-java
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.2
junit
junit
test
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
com.vaadin.external.google
android-json
0.0.20131108.vaadin1
compile
APIDemos
更新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文件基本代码
注:所有必须的注释内容都我放在对应的代码中了,无需额外配置,让你肯定能运行得起来。
配置文件
配置文件放在【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






