Spring Boot 应用篇一

Spring Boot介绍

Spring Boot是在Spring的基础之上产生的(确切的说是在Spring4.0的版本的基础之上),其中“Boot”的意思就是“引导”,意在简化开发模式,是开发者能够快速的开发出基于Spring的应用。Spring Boot含有一个内嵌的web容器。我们开发的web应用不需要作为war包部署到web容器中,而是作为一个jar包,在启动时根据web服务器的配置进行加载。

Spring Boot解决的问题

在Spring Boot诞生之前,我们在进行传统开发时,会在项目中存在大量的xml文件,配置是相当的繁琐。尤其是整合第三方框架时的配置更是头疼的问题。而且还降低了开发效率与部署效率等。Spring Boot就是为了解决此类问题而诞生。它的特点都是弥补传统的不足,有如下几点。

  1. 使配置简单
  2. 使编码简单
  3. 使部署简单
  4. 使监控简单

快速构建Spring Boot项目

访问Spring官网即可找到:SpringBoot官网
直接在Spring Boot的官网上构建,构建地址如下:官网快速构建SpringBoot项目(推荐使用这种方式,因为官网提供的构建方式,创建的项目结构是最标准的)同时在springboot选型上,我们需要留意一下。Spring Boot 2.0.0以下的版本,推荐使用JDK1.7。以上的版本,推荐使用JDK1.8及以上。

SpringBoot项目结构

在这里插入图片描述
SpringBoot也支持jsp、servlet项目开发,需要导入相关的jar包。static和templates目录,就如上图介绍的功能,但是在项目中使用的时候,一般还会配置拦截器使用,即静态资源拦截器。

配置页面前后缀

SpringBoot在设置模板路径和后缀上和SpringMvc框架有所不同,因为SpringBoot提倡无配置件话,所以这些配置要写在SpringBoot的配置文件application.yml或者application.properties中,以yml文件为例(以下为我的项目配置)

spring:
  thymeleaf:
    prefix: classpath:/templates/
    suffix: .html

SpringBoot启动器

所谓的SpringBoot启动器其实就是一些jar包的集合,SpringBoot一共提供44个启动器(44个jar包)。
常见的:

  1. spring-boot-starter-web:支持全栈式的web开发,包括了tomcat和SpringMvc等jar。
  2. spring-boot-starter-jdbc:支持spring以jdbc方式操作数据库的jar包的集合。
  3. spring-boot-starter-redis:支持redis键值存储的数据库操作。

yml配置文件

是Spring Boot中新增的一种配置文件格式。特点:具备天然的树状结构

yml配置文件与properties文件的区别

  1. 配置文件的扩展名有变化
  2. 配置文件中的语法有变化
yml配置文件的语法
  1. 在properties文件中是以“.”进行分割,在yml中使用“:”进行分割。
  2. yml的数据格式和json的格式很像,都是K-V结构的。并且是通过“:”赋值。
  3. 在yml中缩进一定不能使用TAB件,否则会报错。
  4. 每个Key的冒号后面一定要加一个空格。

修改内嵌容器的端口号

server:
  port: 80
配置随机端口(使用Spring Cloud进行微服务开发的时候用到)
server.port=${random.int[1024,9999]}

logback日志记录

步骤

  1. 导入相关的jar包(web启动器中包含的有)
  2. 添加logback.xml配置文件(logback.xml)
<?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  
    <property name="LOG_HOME" value="${catalina.base}/logs/" />  
    <!-- 控制台输出 -->   
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日志输出编码 -->  
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日志文件 -->   
    <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日志文件最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender>     

    <!-- 日志输出级别 -->
    <root level="info">   
        <appender-ref ref="Stdout" />   
        <appender-ref ref="RollingFile" />   
    </root> 

<!--日志异步到数据库 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        日志异步到数据库 
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           连接池 
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->

</configuration>

Spring Boot的配置文件 - 多环境配置

语法结构:application-{profile}.properties。profile:代表的就是一个环境变量
譬如
application-dev.properties 开发环境
application-test.properteis 测试环境
application-prod.properteis 生产环境
运行项目时就用如下脚本

java -jar xxx.jar --spring.profiles.active={profile}

例如:java -jar xxx.jar --spring.profiles.active= test|dev|prod

SpringBoot引导类

springboot项目需要一个引导类,并且这个引导类最好放在项目所有类目录的上一级目录下,因为springboot项目会自动扫描该类目录下所有子目录的类
常用到的注解: @SpringBootApplication 它表明该类是当前项目的引导类

package com.chenfu;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @Author: romantic_ke@163.com
 * @Description:
 * @Date: 2019/5/30 15:06
 */
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
Spring Boot整合持久层案例

【PS:后台返回的都是JSON数据】

整合Mybatis框架

Spring Boot整合Mybatis的案例(包含传统Mybatis、通用Mapper(Tk Mybatis),在同一个项目的不同分支上):Spring Boot整合Mybatis框架

整合Spring Data JPA

Spring Boot整合Spring Data【包含Jpa,Redis,在同一个项目的不同分支上】:Spring Boot整合Spring Data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值