最新动态 > 详情

SpringBoot 快速入门搭建项目流程

发布时间:2021-01-06 11:04:36

一、Spring Boot 核心功能

1)独立运行的 Spring 项目

Spring Boot 可以以 jar 包的形式独立运行,运行一个 Spring Boot 项目只需通过 java–jar xx.jar 来运行。

2)内嵌 Servlet 容器

Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样我们无须以 war 包形式部署项目。

3)提供 starter 简化 Maven 配置

Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载,例如,当你使用了spring-boot-starter-web 时,会自动加入如图 1 所示的依赖包。

4)自动配置 Spring

Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。

5)准生产的应用监控

Spring Boot 提供基于 http、ssh、telnet 对运行时的项目进行监控。

6)无代码生成和 xml 配置

Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。

Spring Boot的优缺点

1)优点

  • 快速构建项目。
  • 对主流开发框架的无配置集成。
  • 项目可独立运行,无须外部依赖Servlet容器。
  • 提供运行时的应用监控。
  • 极大地提高了开发、部署效率。
  • 云计算的天然集成。

2)缺点

  • 版本迭代速度很快,一些模块改动很大。
  • 由于不用自己做配置,报错时很难定位。
  • 网上现成的解决方案比较少。
二、搭建流程
1)打开浏览器,输入网址 http://start.spring.io/ ,如图 1 所示:


图 1  spring.io页面
2)创建一个最简单的依赖 Web 模块的 SpringBoot 应用,填写项目信息,如图 1 所示。

我们在此以 Maven 作为项目构建方式,Spring Boot 还支持以 Gradle 作为项目构建工具。部署形式以 jar 包形式,当然也可以用传统的 war 包形式。Spring Boot 选择2.1.6,Spring boot 还支持以 Groovy 语言开发,应用中选择 Java 作为开发语言。

3)选择完之后,下载代码,如图 2 所示:
下载代码
图 2  下载代码
一般情况下,我们会得到一个 SpringBoot 应用的基础结构:
 
三、安装IntelliJ IDEA
在Intellij IDEA下打开第二部解压出来的zip包中的项目

四、配置
1)打开pom.xml
2) 访问 https://mvnrepository.com/ 查找需要加入的依赖,搜索到相关依赖,点击进入相关详情,点击版本号,即可获取配置的代码


3)复制代码粘贴到pom.xml的 <dependencies></dependencies>内,然后点击出现的 reload maven change的按钮,自动会重新下载更新依赖包。

reload maven change
查看相关的依赖,目录如下:
mybatis-plus

4)在 项目/src/main/resources/ 修改application.properties 为 application.yaml或者application.yml  ,可以分为不同环境新建多个配置环境(如:application-dev.yml,application-pro.yml),然后在application.yml配置加载对应的配置文件
 
spring:
  profiles:
    active: dev(多个配置文件可以在这里切换 如:pro)
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:127.0.0.1:3306/test_v1?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    username: test_1
    password: 11111

5)配置日志相关配置文件  在项目/src/main/resources/ 下新建logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <contextName>logback</contextName>
    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--按天生成日志-->
    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Prudent>true</Prudent>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                logs/%d{yyyy-MM-dd}.log
            </FileNamePattern>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss,SS} [%p][%c][%L] -> %msg %n
            </Pattern>
        </layout>
    </appender>

    <springProfile name="pro">
        <root level="error">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </root>
        <logger name="com.demo" level="info" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </logger>
    </springProfile>
    <springProfile name="pre">
        <root level="ERROR">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </root>
        <logger name="com.demo" level="debug" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </logger>
    </springProfile>
    <springProfile name="dev">
        <root level="ERROR">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </root>
        <logger name="com.demo" level="debug" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="logFile"/>
        </logger>
    </springProfile>
</configuration>


上一篇: InnoDB记录存储结构

下一篇:SpringBoot 快速入门搭建项目流程--第一个接口