项目搭建工具及版本:
eclipse / jdk1.8 / springboot2.5.0
1.使用eclipse新建一个maven项目:
2.创建一个快速生成的简约的maven项目:
3.输入项目的名称和包名称,也就是Group Id和Artifact Id
其实就是pom.xml中的这一段内容,后面完了可以修改 (以bbnet-api为例)
<!-- 本项目配置参数 -->
<groupId>com.bbnet</groupId>
<artifactId>bbnet-api</artifactId>
文章末尾将项目的整个pom.xml贴出来,后续的教程会使用到
4.新建两个配置文件,这里使用application.properties
application.properties控制配置文件环境的切换
#环境切换dev,test,prod
spring.profiles.active=dev
applicaltion-dev.proerties控制多个常量配置
#开发环境配置文件
#项目端口号和发布路径
server.port=8888
server.servlet.context-path=/bbnet
都放在/src/main/resources/下
5. 新建一个启动类
/**
* @Description 项目启动类
* <pre>
*
* </pre>
*
*
* @author sgc
* @date 2021-08-25
*/
@SpringBootApplication
public class BbnetApplication {
public static void main(String[] args) throws UnknownHostException {
SpringApplication.run(BbnetApplication.class);
}
}
至此一个雏形搭建完成,右键这个启动类springboot内嵌tomcat即可运行成功,浏览器即可访问。
6.项目启动类优化
实际使用过程中,我们可能会有一些比较装B的操作,在启动类里面加上一些比如swagger、druid、项目请求路径等一些打印信息,当然还有一些打印banner的操作,这里觉得没必要,就打印一些有用的吧。
package com.bbnet;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
/**
* @Description 项目启动类
* <pre>
*
* </pre>
*
*
* @author sgc
* @date 2021-08-25
*/
@SpringBootApplication
@ServletComponentScan
public class BbnetApplication {
public static void main(String[] args) throws UnknownHostException {
// SpringApplication.run(BbnetApplication.class);
//System.setProperty("spring.devtools.restart.enabled", "true");
ConfigurableApplicationContext application = SpringApplication.run(BbnetApplication.class, args);
Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port");
String path = env.getProperty("server.servlet.context-path");
System.out.println(
"\n--------后台服务启动成功--------------------------------------------------------------\n\t" +
"本地访问地址: \t\thttp://localhost:" + port + path + "/\n\t" +
"公网访问地址: \t\thttp://" + ip + ":" + port + path + "/\n\t" +
"Swagger接口文档地址: \thttp://" + ip + ":" + port + path + "/swagger-ui.html\n\t" +
"Druid数据监控地址: \thttp://" + ip + ":" + port + path + "/druid/\n" +
"-----------------------------------------------------------------------------------");
}
}
效果如图:
PS:后续的druid、swagger等内容后面的章节补充,一个简单的springboot项目搭建完成。
7.附上整项目的pom.xml文件先,后续会一一进行解释。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 本项目配置参数 -->
<groupId>com.bbnet</groupId>
<artifactId>bbnet-api</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>
<name>bbnet-api</name>
<description>前后端分离springboot后端项目</description>
<!-- 定义一些项目所用常量 -->
<properties>
<project.final.name>elephant-api</project.final.name>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 引入springboot父类pom说明 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
</parent>
<dependencies>
<!-- 引入springboot其他依赖支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--开发测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<!-- freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 引入druid支持 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<!--lombok支持简化开发-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- fastjson-1.2.29.jar -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.29</version>
</dependency>
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- commons -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
<!-- 打包 -->
<build>
<finalName>${project.final.name}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- 关联项目中的第三方jar包 -->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
</project>