美文网首页
SpringBoot实战之基础框架搭建

SpringBoot实战之基础框架搭建

作者: 程序员小白成长记 | 来源:发表于2020-04-01 14:23 被阅读0次

在开发一个SpringBoot项目的时候,最基础的是搭建一个框架出来,然后在进行编写扩展代码的时候,需要在哪里配置和添加文件,SpringBoot项目的关键点有项目结构,application.properties,pom.xml,相关注解,单元测试,配置数据库等。包含这些组件后就可以实现一个基础的CURD应用了(现在通过Spring Initializer也可以自动生成一个可执行的项目了,但是还是需要自己去手动的操作配置一下,更好的明白各模块之间是如何配置和集成的)

一、项目结构

因为SpringBoot遵循“约定大于配置”,所以知道一些惯例性的操作,可以很大的简化配置工作,总结起来SpringBoot工程的配置可以分为三类:

  1. SpringBoot项目本身的配置:各种Spring注解,以及第三方注解(更好的将各模块交由Spring进行组织管理,实现IOC、AOP的功能)
  2. 依赖的管理:POM文件(主流的是Maven来管理依赖)
  3. 项目开发所需的资源: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依赖解析

相关文章

网友评论

      本文标题:SpringBoot实战之基础框架搭建

      本文链接:https://www.haomeiwen.com/subject/sfgouhtx.html