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

2024-05-13 1155阅读

前言

距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下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的,毕竟这个是稳定版本,各种运行都不会出现版本异常的问题。

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

修改maven配置

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

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

更换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

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

添加各层关系

  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,后面用起来直接改名字就行,也方便。 

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

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】的根目录下。

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

配置代码

注意提换【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

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]