前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBootWebProject学习——通用项目搭建(后面的项目均采用此项目进行添加内容)

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

作者头像
红目香薰
发布2024-04-30 08:05:31
860
发布2024-04-30 08:05:31
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode

前言

距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下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。

代码语言:javascript
复制
<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代码
代码语言:javascript
复制
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类
代码语言:javascript
复制
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类
代码语言:javascript
复制
package com.item.dao;

import org.springframework.stereotype.Repository;

@Repository
public interface ObjectMapper {
}
model层Object类
代码语言:javascript
复制
package com.item.model;
 
public class Object {
}

service层ObjectService类

代码语言:javascript
复制
package com.item.service;


public interface ObjectService {
}
serviceimpl层ObjectServiceImpl类
代码语言:javascript
复制
package com.item.serviceimpl;
import com.item.service.ObjectService;
import org.springframework.stereotype.Service;

@Service
public class ObjectServiceImpl implements ObjectService {
}
swagger层SwaggerConfig类
代码语言:javascript
复制
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文件基本代码
代码语言:javascript
复制
<?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路径即可。

代码语言:javascript
复制
# 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 系统与开发环境
  • 基础idea环境搭建
  • 基础maven配置(外部独立maven)
  • 基础maven默认配置(默认maven)
  • SpringBootWebProject学习——正文
    • 项目创建
      • 修改maven配置
        • 更换pom.xml配置
          • 添加各层关系
            • com.item下启动文件Action代码
              • controller层ObjectController类
                • dao层ObjectMapper类
                  • model层Object类
                    • serviceimpl层ObjectServiceImpl类
                      • swagger层SwaggerConfig类
                        • dao实现层mapper文件基本代码
                        • 配置文件
                          • 配置代码
                          • 项目下载地址
                          相关产品与服务
                          云数据库 MySQL
                          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档