一、前言
有时候久了没开新项目了,重新开发一个新项目,搭建springboot的过程都有点淡忘了,所有温故知新。
二、搭建步骤
从0开始搭建springboot
1.创建work空间。步骤FileàNewàJava Working Set。
2.选择Java Working Set。
3.自定义Working set name 名称。
点击Finish 完成工作空间创建。左侧出现文件夹:
4.新建Spring Starter Project
5.一个springboot的基本信息。
6.点击Next,选择依赖组件
7.点击Finish,完成创建。
三、依赖pom样例
版本选择
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<base.version>1.0-SNAPSHOT</base.version>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.1</spring-cloud.version>
<spring-boot.version>2.6.2</spring-boot.version>
<mysql.version>8.0.17</mysql.version>
<druid.version>1.1.13</druid.version>
<mybatisplus.version>3.4.3.4</mybatisplus.version>
<mybatis-spring.version>2.2.0</mybatis-spring.version>
<apollo.version>1.8.0</apollo.version>
<dameng.version>7.6.0.142</dameng.version>
<fastjson.version>1.2.83</fastjson.version>
<swagger2.version>2.9.2</swagger2.version>
<hutool.version>5.7.7</hutool.version>
<poi.version>4.1.2</poi.version>
<commons-lang3.version>3.8.1</commons-lang3.version>
<xstream.version>1.4.18</xstream.version>
<log4j-to-slf4j.version>2.15.0</log4j-to-slf4j.version>
<java-jwt.version>3.8.2</java-jwt.version>
<zxing.version>3.3.0</zxing.version>
<barcode4j.version>2.1</barcode4j.version>
<bcprov-jdk15to18.version>1.66</bcprov-jdk15to18.version>
<rocketmq.version>4.7.1</rocketmq.version>
<mq-http-sdk.version>1.0.3.2</mq-http-sdk.version>
<aliyun-sdk-oss.version>3.13.2</aliyun-sdk-oss.version>
<cos_api.version>5.6.89</cos_api.version>
<sharding-sphere.version>4.0.0-RC2</sharding-sphere.version>
<shardingsphere.version>5.0.0-beta</shardingsphere.version>
</properties>
pom依赖
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>xxx-member-plat</artifactId>
<groupId>cn.xxx</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>member-business</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>cn.ctg</groupId>
<artifactId>base-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.ctg</groupId>
<artifactId>base-interceptor</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<!-- apollo -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>${apollo.version}</version>
</dependency>
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-core</artifactId>
<version>${apollo.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger2.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<exclusions>
<exclusion>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>${xstream.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--oss -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun-sdk-oss.version}</version>
</dependency>
<!--cos -->
<dependency>
<groupId>com.qcloud</groupId>
<artifactId>cos_api</artifactId>
<version>${cos_api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>${rocketmq.version}</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-acl</artifactId>
<version>${rocketmq.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.mq</groupId>
<artifactId>mq-http-sdk</artifactId>
<!--以下版本号请替换为Java SDK的最新版本号-->
<version>${mq-http-sdk.version}</version>
<classifier>jar-with-dependencies</classifier>
</dependency>
<!-- 分库分表 -->
<!--
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>${sharding-sphere.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-namespace</artifactId>
<version>${sharding-sphere.version}</version>
</dependency>
-->
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<configuration>
<target>
<copy todir="../deploy" overwrite="true">
<fileset dir="${project.build.directory}">
<include name="${project.artifactId}.jar" />
</fileset>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
四、springboot简介
SpringBoot是一个基于Spring框架的开源JavaWeb开发框架,它简化了Spring应用的初始搭建以及开发过程。通过使用特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot的主要优点包括:
- 创建独立的Spring应用程序:SpringBoot可以轻松地创建可以“运行”的独立的、生产级别的基于Spring的应用程序,无需外部特定的部署环境。
- 嵌入式Web服务器:SpringBoot内嵌了Tomcat、Jetty等Servlet容器,无需以war包形式部署。
- 自动配置:SpringBoot根据添加的jar依赖自动配置您的Spring应用程序。例如,如果H2数据库在您的classpath上,并且您没有手动配置任何数据库连接beans,那么SpringBoot将自动配置一个内存型数据库。
- 提供生产就绪型功能:如指标、健康检查和外部化配置。
- 无代码生成和XML配置:SpringBoot不是一个全新的框架,它默认配置了很多框架的使用方式,就像Maven整合了所有的jar包一样,SpringBoot整合了所有的框架的使用方式,就像Maven整合了所有的jar包,Spring Boot中使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
总之,SpringBoot是一个简化Spring应用开发过程的框架,通过自动配置、嵌入式Web服务器等功能,使得开发者能够更加高效地进行JavaWeb应用的开发。
五、springboot的优点
SpringBoot的优点主要体现在以下几个方面:
- 快速搭建项目:SpringBoot提供了丰富的默认配置和代码生成工具,使得开发人员可以快速构建项目,大大缩短了开发周期。这些默认配置和代码生成工具可以帮助开发人员快速启动项目,减少了很多繁琐的配置和编码工作。
- 简化配置:SpringBoot通过约定优于配置的方式,极大地简化了配置文件的编写。开发人员只需按照约定的方式编写代码和配置文件,就可以实现快速的应用开发和部署。此外,SpringBoot还支持通过注解和配置文件进行自定义配置,使得配置过程更加灵活和方便。
- 内嵌服务器:SpringBoot内置了多种常用的服务器,如Tomcat、Jetty等,使得应用可以打包成一个可执行的JAR文件,无需额外部署服务器。这大大简化了应用程序的部署过程,提高了部署效率。
- 易于维护:SpringBoot的项目结构清晰,代码规范,易于维护和扩展。通过合理的项目结构和代码规范,SpringBoot使得开发人员可以更加高效地进行代码维护和升级工作。
- 良好的生态系统和社区支持:SpringBoot作为Spring Framework的衍生项目,拥有庞大的社区支持和活跃的开发者社区。这意味着开发人员可以获取到大量的文档、教程和解决方案,遇到问题时可以快速找到答案并得到帮助。