1、springboot简介

1.1 简介

springMVC是spring框架系列的明星框架,它的设计主打松耦合、可扩展和简易化配置,让使用框架的开发人员投入更多的精力在业务逻辑开发上,而不用太多的关注多框架集成产生的冲突和依赖问题,同时也简化了许多框架之间依赖配置,可以通过少量的配置实现多框架的整合。

  • 在 src/main/resources 放入 banner.txt 文件,该文件名字不能随意,文件中的内容就是要输出的logo ;
  • 利用网站生成图标: https://www.bootschool.net/ascii或者http://patorjk.com/software/taag/;
  • 将生成好的图标文字粘贴到 banner.txt 文件中,然后将关闭 logo 输出的语句注释,启动看效果
1.3 springboot配置阿里云镜像
https://start.aliyun.com

2、springboot集成框架

2.1 集成springmvc
  • pom.xml中添加springmvc依赖

    1
    2
    3
    4
    5
    <!--SpringBoot框架web项目起步依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  • application.properties中添加springmvc配置

    1
    2
    3
    4
    #配置内嵌Tomcat端口号
    server.port=8081
    #设置上下文根
    server.servlet.context-path=/
2.2 集成mybatis
  • pom.xml中添加mybatis依赖和插件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <!--MyBatis集成Springboot起步依赖-->
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.0</version>
    </dependency>

    <!--MySQL驱动-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <!--mybatis 代码自动生成插件-->
    <plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.6</version>
    <configuration>
    <!--配置文件的位置-->
    <configurationFile>GeneratorMapper.xml</configurationFile>
    <verbose>true</verbose>
    <overwrite>true</overwrite>
    </configuration>
    </plugin>
  • application.properties中配置mybatis数据库连接池属性

    1
    2
    3
    4
    5
    #设置连接数据库信息
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
    spring.datasource.username=root
    spring.datasource.password=password
2.3 集成jsp
  • pom.xml中添加jsp依赖和配置资源打包路径

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!--SpringBoot集成JSP,仅仅只是展示JSP页面需要添解析jsp页面的依赖-->
    <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>

    <!--资源打包路径添加webapp下的所有资源-->
    <resources>
    <resource>
    <directory>src/main/webapp</directory>
    <targetPath>META-INF/resources<targetPath>
    <includes>
    <include>*.*</include>
    </includes>
    </resource>
    </resources>
  • application.properties中配置视图解析器

    1
    2
    3
    4
    5
    6
    7
    8
        #配置视图解析器
    spring.mvc.view.prefix=/
    spring.mvc.view.suffix=.jsp
    ```

    ###### 2.4 集成dubbo

    * pom.xml中添加dubbo依赖
    com.alibaba.spring.boot dubbo-spring-boot-starter 2.0.0 com.101tec zkclient 0.10
    1
    2

    * application.properties中添加dubbo配置
    #设置dubbo配置 spring.application.name=024-springboot-dubbo-ssm-provider #声明当前工程为服务提供者 spring.dubbo.server=true #设置注册中心 spring.dubbo.registry=zookeeper://192.168.154.128:2181
    1
    2
    3
    4
      
    ###### 2.5 集成springCloud

    * pom.xml中添加springcloud依赖
    org.springframework.cloud spring-cloud-starter-netflix-eureka-client
    1
    * application.properties中添加springcloud配置
    #指定服务名字 取值任意 spring.application.name=02-eureka-client-consumer #指定eureka的访问地址 eureka.client.service-url.defaultZone=http://localhost:9100/eureka
    1
    2
    3
    4
      
    ###### 2.6 集成springSession

    * pom.xml中配置springsession依赖
    org.springframework.session spring-session-data-redis
    1
    * application.properties中添加springsession配置
    #设置SpringSession的Session声明周期为30m 表示30分钟默认为30m #server.servlet.session.timeout=30m #指定Cookie的存放路径为根路径用于实现同域名不同项目的Session共享 #server.servlet.session.cookie.path=/ #指定Cookie的存域名用于实现同根域名不同二级子域名的Session共享 #server.servlet.session.cookie.domain=myweb.com
    1
    2
    3
    4

    ###### 2.7 集成redis

    * pom.xml中添加redis依赖
    org.springframework.boot spring-boot-starter-data-redis
    1
    2

    * application.properties中添加redis配置
    #设置redis配置 spring.redis.host=192.168.154.128 spring.redis.port=6379 spring.redis.password=123456
    1
    2
    3
    4

    ###### 2.8 集成druid数据库连接池

    * pom.xml中添加druid依赖
    com.alibaba druid-spring-boot-starter 1.1.10
    1
    * application.properties中添加druid连接池配置
    # 数据源配置 spring.datasource.druid.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.druid.username=root spring.datasource.druid.password=root spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver

    初始化时建立物理连接的个数

    spring.datasource.druid.initial-size=5

    最大连接池数量

    spring.datasource.druid.max-active=30

    最小连接池数量

    spring.datasource.druid.min-idle=5

    获取连接时最大等待时间,单位毫秒

    spring.datasource.druid.max-wait=60000

    配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

    spring.datasource.druid.time-between-eviction-runs-millis=60000

    连接保持空闲而不被驱逐的最小时间

    spring.datasource.druid.min-evictable-idle-time-millis=300000

    用来检测连接是否有效的sql,要求是一个查询语句

    spring.datasource.druid.validation-query=SELECT 1 FROM DUAL

    建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。

    spring.datasource.druid.test-while-idle=true

    申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。

    spring.datasource.druid.test-on-borrow=false

    归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。

    spring.datasource.druid.test-on-return=false

    是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。

    spring.datasource.druid.pool-prepared-statements=true

    要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。

    spring.datasource.druid.max-pool-prepared-statement-per-connection-size=50

    配置监控统计拦截的filters,去掉后监控界面sql无法统计

    spring.datasource.druid.filters=stat,wall

    通过connectProperties属性来打开mergeSql功能;慢SQL记录

    spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

    合并多个DruidDataSource的监控数据

    spring.datasource.druid.use-global-data-source-stat=true