1、springboot简介
1.1 简介
springMVC是spring框架系列的明星框架,它的设计主打松耦合、可扩展和简易化配置,让使用框架的开发人员投入更多的精力在业务逻辑开发上,而不用太多的关注多框架集成产生的冲突和依赖问题,同时也简化了许多框架之间依赖配置,可以通过少量的配置实现多框架的整合。
1.2 自定义springboot启动logo
- 在 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 #设置dubbo配置 spring.application.name=024-springboot-dubbo-ssm-provider #声明当前工程为服务提供者 spring.dubbo.server=true #设置注册中心 spring.dubbo.registry=zookeeper://192.168.154.128:21811
2
* application.properties中添加dubbo配置1
2
3
4
###### 2.5 集成springCloud
* pom.xml中添加springcloud依赖org.springframework.cloud spring-cloud-starter-netflix-eureka-client #指定服务名字 取值任意 spring.application.name=02-eureka-client-consumer #指定eureka的访问地址 eureka.client.service-url.defaultZone=http://localhost:9100/eureka1
* application.properties中添加springcloud配置
1
2
3
4
###### 2.6 集成springSession
* pom.xml中配置springsession依赖org.springframework.session spring-session-data-redis #设置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.com1
* application.properties中添加springsession配置
1
2
3
4
###### 2.7 集成redis
* pom.xml中添加redis依赖org.springframework.boot spring-boot-starter-data-redis #设置redis配置 spring.redis.host=192.168.154.128 spring.redis.port=6379 spring.redis.password=1234561
2
* application.properties中添加redis配置1
2
3
4
###### 2.8 集成druid数据库连接池
* pom.xml中添加druid依赖com.alibaba druid-spring-boot-starter 1.1.10 # 数据源配置 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.Driver1
* application.properties中添加druid连接池配置
初始化时建立物理连接的个数
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