在开发一个SpringBoot项目的时候,最基础的是搭建一个框架出来,然后在进行编写扩展代码的时候,需要在哪里配置和添加文件,SpringBoot项目的关键点有项目结构,application.properties,pom.xml,相关注解,单元测试,配置数据库等。包含这些组件后就可以实现一个基础的CURD应用了(现在通过Spring Initializer也可以自动生成一个可执行的项目了,但是还是需要自己去手动的操作配置一下,更好的明白各模块之间是如何配置和集成的)
一、项目结构
因为SpringBoot遵循“约定大于配置”,所以知道一些惯例性的操作,可以很大的简化配置工作,总结起来SpringBoot工程的配置可以分为三类:
- SpringBoot项目本身的配置:各种Spring注解,以及第三方注解(更好的将各模块交由Spring进行组织管理,实现IOC、AOP的功能)
- 依赖的管理:POM文件(主流的是Maven来管理依赖)
- 项目开发所需的资源:appliation.properties(数据库、redis、日志文件的配置等)
关键配置
1) pom.xml(配置项目maven坐标,打包方式,依赖,编译插件、Maven仓库地址等)
2) src/resources(配置application.properties或appliation.yml:关于项目服务端口号,日志配置,数据库配置,redis配置等)
3)src/main/java/com/sun/demo/DemoApplication.java(SpringBoot项目的启动入口,配置启动参数,配置文件扫描,组件扫描,Mapper扫描等)
4)src/main/java/com/sun/demo/DemoTests.java(测试文件,用于编写测试用例
其中注意代码主要是在src下进行编写,src下是main和test文件夹,main下为源码,test下用于测试,main下主要是java和resources文件,java下为主要的源码编写的模块,resources为项目的主要配置模块。
项目结构图:
demo-project
├── .git
├── .gitignore
├── build.sh
├── log
├── pom.xml
├── demo-project.iml
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── META-INF
│ │ │ │ └── MANIFEST.MF
│ │ │ └── com
│ │ │ └── sun
│ │ │ └── demo
│ │ │ ├── DemoApplication.java
│ │ │ ├── common
│ │ │ ├── controller
│ │ │ ├── mapper
│ │ │ ├── model
│ │ │ ├── service
│ │ │ └── util
│ │ └── resources
│ │ └── application.properties
│ └── test
│ └── java
│ └── com
│ └── sun
│ └── demo
│ └── DemoTests.java
├── target
└── tree.txt
二、详细配置
2.1 启动入口
【注意点:启动类上的注解】
DemoApplication.java
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2.2 resources配置
【注意点:配置前缀的写法,前缀是有要求的,在Spring框架中已经规定好,也可以自己规定前缀】
application.properties
server.port = 8081
#=================== logging config ===================#
#=========================== database =========================#
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:xxxx/DBName?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=xxxxx
2.3 测试文件的配置
【注意点:启动类上的注解】
DemoTests.java
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = DemoApplication.class)
public class DemoTests {
... ...
}
2.4 POM配置
【注意点:要学习maven的管理方式和标签】
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.baidu.bce</groupId>
<artifactId>private-kbase</artifactId>
<version>${private-kbase-version}</version>
<properties>
<private-kbase-version>version</private-kbase-version>
</properties>
<!--控制版本信息-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
</parent>
<dependencies>
<!--SpringBoot web模块依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpringBoot 集成 Mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<!--Mybatis Velocity-->
<dependency>
<groupId>org.mybatis.scripting</groupId>
<artifactId>mybatis-velocity</artifactId>
<version>2.1.0</version>
</dependency>
<!--数据库连接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<!--SpringBoot测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.2.6.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!--baidu bos-->
<dependency>
<groupId>com.baidubce</groupId>
<artifactId>bce-java-sdk</artifactId>
<version>0.10.98</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- web-framework default plugins -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.sun.demo.DemoApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
参考:
springboot之核心依赖spring-boot-starter,spring-boot-starter-parent,spring-boot-starter-web依赖解析
网友评论