美文网首页
SpringBoot项目搭建流程

SpringBoot项目搭建流程

作者: 情非得已丶丶 | 来源:发表于2020-07-28 16:24 被阅读0次

    1.打开开发工具IntelliJ IDEA,然后选择File菜单下的New→New Project命令,即创建新项目的命令

    SpringBoot项目搭建流程插图

    2.单击Next按钮,进入Maven多模块项目的命名界面,建议Maven坐标的命名尽量简洁、规范。

    SpringBoot项目搭建流程插图(1)

    3.单击Next按钮进入下一步,选择项目的存储目录。这里建议存储的文件目录中不要含有中文或者其他特殊符号。

    SpringBoot项目搭建流程插图(2)

    4.单击Finish按钮,如果项目的存储目录是新建的,则会弹出一个对话框,询问是否创建一个新的文件目录,这里只需要单击OK按钮即可。

    SpringBoot项目搭建流程插图(3)

    5.进入项目的初始界面,这个pom.xml即为父模块的依赖配置文件,这里我们指定整个项目资源的编码及项目编译时采用的JDK版本。
    其中,图示的项目整体资源编码及JDK版本的配置信息如下:

    <properties>
       <!--定义项目整体资源的编码为UTF-8, JDK的版本为1.8-->
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <java.version>1.8</java.version>
       <maven.compiler.source>${java.version}</maven.compiler.source>
       <maven.compiler.target>${java.version}</maven.compiler.target>
    </properties>
    
    SpringBoot项目搭建流程插图(4)

    6.开始创建各个子模块及每个子模块最基本的一些依赖配置信息。首先是创建子模块api,然后直接单击Next按钮,命名子模块为api,最终单击Finish按钮即可。

    SpringBoot项目搭建流程插图(5) SpringBoot项目搭建流程插图(6) SpringBoot项目搭建流程插图(7)

    7.最终即可成功创建子模块api,并自动初始化生成相应的配置信息。这里我们加入整个项目都将共用的依赖配置,即Lombok与Jackson解析依赖。

    SpringBoot项目搭建流程插图(8)

    pom.xml加入的项目整体公用依赖配置信息如下:

    <properties>
     <lombok.version>1.16.10</lombok.version>
     <jackson-annotations-version>2.6.5</jackson-annotations-version>
    </properties>
    <dependencies>
     <!--lombok-->
     <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>${lombok.version}</version>
    </dependency>
      <!--jackson-->
    <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson-annotations-version}</version>
      <scope>compile</scope>
    </dependency>
    </dependencies>
    </dependency>
    </dependencies>
    

    8.按照上面创建api子模块的步骤,同样,也可以用于创建子模块model。右击项目,选择右键快捷菜单New命令,创建子模块model,并添加api子模块及Spring-MyBatis依赖,具体操作下图所示。

    SpringBoot项目搭建流程插图(9) SpringBoot项目搭建流程插图(10)

    其中,子模块model添加的依赖配置信息如下:

    <properties>
      <mybatis-spring-boot.version>1.1.1</mybatis-spring-boot.version>
      <mybatis-pagehelper.version>4.1.2</mybatis-pagehelper.version>
    </properties>
       <dependencies>
        <!--api-->
         <dependency>
            <groupId>com.debug.middleware</groupId>
            <artifactId>api</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
       <!--spring-mybatis-->
       <dependency>
         <groupId>org.mybatis.spring.boot</groupId>
         <artifactId>mybatis-spring-boot-starter</artifactId>
         <version>${mybatis-spring-boot.version}</version>
       </dependency>
    </dependencies>
    

    9.按照同样的方式创建最后一个模块,即核心的server模块。可以说一个项目或者服务的大部分业务逻辑代码都将在这个模块中完成。最终新建完成的server模块。

    SpringBoot项目搭建流程插图(11)

    其中,在server模块中加入的相关依赖包括Spring Boot依赖,日志log4j及MySQL、Druid等最基本的依赖配置。详细信息如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!--添加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 http://maven.
    apache.org/xsd/maven-4.0.0.xsd">
      <parent>
        <artifactId>middleware</artifactId>
        <groupId>com.debug.middleware</groupId>
        <version>1.0.1</version>
      </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>server</artifactId>
    <packaging>jar</packaging>
      <properties>
        <start-class>com.debug.middleware.server.MainApplication</start-
        class>
        <spring-boot.version>1.3.3.RELEASE</spring-boot.version>
        <spring-session.version>1.2.0.RELEASE</spring-session.version>
        <mysql.version>5.1.37</mysql.version>
        <druid.version>1.0.16</druid.version>
        <guava.version>19.0</guava.version>
      </properties>
    <!-- 依赖管理 -->
    <dependencyManagement>
      <dependencies>
       <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-dependencies</artifactId>
         <version>${spring-boot.version}</version>
         <type>pom</type>
         <scope>import</scope></dependency></dependencies>
    </dependencyManagement>
    <dependencies>
    <!--日志-->
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-log4j</artifactId>
    </dependency>
    <!--model-->
      <dependency>
        <groupId>com.debug.middleware</groupId>
        <artifactId>model</artifactId>
        <version>${project.parent.version}</version>
      </dependency>
    <!--guava-->
       <dependency>
         <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
    <!--MySQL-->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
    <!--druid-->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
      </dependency>
    <!--Spring-->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring-boot.version}</version>
          <exclusions>
            <exclusion>
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-classic</artifactId>
           </exclusion>
         <exclusion>
           <groupId>org.slf4j</groupId>
           <artifactId>log4j-over-slf4j</artifactId>
         </exclusion>
         </exclusions>
      </dependency>
    <!--for test-->
       <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
    </dependencies>
    <build>
       <finalName>book_middleware_${project.parent.version}</finalName>
       <plugins>
        <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <version>${spring-boot.version}</version>
       <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
            </goals></execution></executions>
        </plugin>
     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <version>2.4</version>
         <configuration>
              <failOnMissingWebXml>false</failOnMissingWebXml> 
          </configuration>
         </plugin>
      </plugins>
        <resources>
            <resource>
             <directory>src/main/resources</directory>
             <filtering>true</filtering>
        </resource>
       </resources>
     </build>
    </project>
    

    10.至此,项目的各个模块已经初步搭建好了。其中,在server模块中指定了整个项目的启动类(也称为应用的入口)MainApplication。为了能使用Spring Boot内置容器将整个项目“跑”起来,需要对MainApplication进行“改造”。改造后的代码如下:

    package com.debug.middleware.server;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.context.web.SpringBootServletInitializer;
    @SpringBootApplication
    public class MainApplication extends SpringBootServletInitializer{
         @Override
         protected SpringApplicationBuilder configure(SpringApplicationBuilder
      builder) {
         return super.configure(builder);
    }
        public static void main(String[] args) {
          SpringApplication.run(MainApplication.class,args); 
       }
    }
    

    其中,注解“@SpringBootApplication”用于表示被注解的类为整个应用的入口启动类,到时候只需要单击该类左边的运行按钮,即可将整个应用运行起来。

    11.为了能将项目最终发布为完整的服务,我们为项目引入application.properties配置文件,并将其放置在server模块的resources目录下(后续应用相关的配置文件将置于此目录);同时采用Navicat Premium在本地创建一个没有任何表的数据库db_middleware,并将其相关配置信息配置在application.properties中。最终application.properties的初步配置信息如 […]

    #profile
    #spring.profiles.active=productions
    #spring.profiles.active=local
    #指定应用访问的上下文及端口
    server.context-path=/middleware
    server.port=8087
    #logging日志配置
    logging.path=/srv/dubbo/middleware/logs
    logging.file=middleware
    logging.level.org.springframework = INFO
    logging.level.com.fasterxml.jackson = INFO
    logging.level.com.debug.middleware = DEBUG
    #json日期格式化
    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone=GMT+8
    spring.datasource.initialize=false
    spring.jmx.enabled=false
    #数据库访问配置
    spring.datasource.url=jdbc:mysql://localhost:3306/db_middleware?useUnic
    ode=true&amp;characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=linsen
    #MyBatis配置
    mybatis.config-location=classpath:mybatis-config.xml
    mybatis.checkConfigLocation = true
    mybatis.mapper-locations=classpath:mappers/*.xml
    

    12.在上面的application.properties配置文件中,我们引入了半ORM(对象实体映射)框架MyBatis的配置文件mybatis-config.xml,这个文件可以通过右击resources目录,然后选择New→mybatis-config命令来创建。配置内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
      <settings>
        <!--允许使用缓存配置 -->
        <setting name="cacheEnabled" value="true"/>
        <!--SQL执行语句的默认响应超时时间 -->
        <setting name="defaultStatementTimeout" value="3000"/>
        <!--允许驼峰命名的配置 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!-- 允许执行完SQL插入语句后返回主键配置 -->
        <setting name="useGeneratedKeys" value="true"/>
        <!-- 设置控制台打印SQL -->
        <!--<setting name="logImpl" value="stdout_logging" />-->
      </settings>
    </configuration>
    

    13.为应用引入日志配置文件log4j.properties作为整个应用的日志记录,其内容配置如下:

    #Console Log
    log4j.rootLogger=INFO,console,debug,info,warn,error
    LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss.SSS}] boot%X{context} - %5p [%t] ---
    %c{1}: %m%n
    #打印日志到Console
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.Threshold=DEBUG
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=${LOG_PATTERN}
    log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.info.Threshold=INFO
    log4j.appender.info.File=${LOG_PATH}/${LOG_FILE}_info.log
    log4j.appender.info.DatePattern='.'yyyy-MM-dd
    log4j.appender.info.layout = org.apache.log4j.PatternLayout
    log4j.appender.info.layout.ConversionPattern=${LOG_PATTERN}
    log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.error.Threshold=ERROR
    log4j.appender.error.File=${LOG_PATH}/${LOG_FILE}_error.log
    log4j.appender.error.DatePattern='.'yyyy-MM-dd
    log4j.appender.error.layout = org.apache.log4j.PatternLayout
    log4j.appender.error.layout.ConversionPattern=${LOG_PATTERN}
    log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.debug.Threshold=DEBUG
    log4j.appender.debug.File=${LOG_PATH}/${LOG_FILE}_debug.log
    log4j.appender.debug.DatePattern='.'yyyy-MM-dd
    log4j.appender.debug.layout = org.apache.log4j.PatternLayout
    log4j.appender.debug.layout.ConversionPattern=${LOG_PATTERN}
    log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.warn.Threshold=WARN
    log4j.appender.warn.File=${LOG_PATH}/${LOG_FILE}_warn.log
    log4j.appender.warn.DatePattern='.'yyyy-MM-dd
    log4j.appender.warn.layout = org.apache.log4j.PatternLayout
    log4j.appender.warn.layout.ConversionPattern=${LOG_PATTERN}
    

    14.最终server模块下resources目录的配置文件包含了3个核心文件:项目配置文件application.properties、日志配置文件log4j.properties及MyBatis配置文件mybatis-config.xml。

    SpringBoot项目搭建流程插图(12)

    至此,整个应用的搭建就完成了。现在打开MainApplication启动类的内容,单击左边的运行按钮,观察控制台打印的日志,发现整个应用已经成功地“跑”起来了。部分控制台日志信息如图所示。

    SpringBoot项目搭建流程插图(13)

    转载请带链接:弦月清风 » SpringBoot项目搭建流程
    https://www.9im.cn/

    相关文章

      网友评论

          本文标题:SpringBoot项目搭建流程

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