前言
该系列文章,是我从零搭建一套后端项目的经验总结。
没有过多的流程梳理和细节描写,目的也是对所学技术的一个总结和巩固。
内容大多包括实现思路,实现要点、注意事项和一些个人心得,希望对各位看官有所帮助。
转载请注明来源
1.内容:
1.建立空白的springBoot项目,建立好目录:
2.注入相关依赖:mybatis,mysql,druid,web(包括mvc相关)
<!--web 包含 spring-web/webmvc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis,内含 spring-jdbc-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!--阿里druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>${mysql.version}</version>
</dependency>
3.druid配置:
server:
port: 8080
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/boms?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: 123456
druid:
#初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时,默认值为0
initial-size: 10
#最大连接池数量,默认值为8
max-active: 10
#最小连接池数量
min-idle: 1
#获取连接时最大等待时间,单位毫秒
max-wait: 6000
#是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。默认值为false
pool-prepared-statements: true
#要启用PSCache,必须配置大于0,当大于0时,要启用PSCache自动触发修改为true
max-open-prepared-statements: 100
#用来检测连接是否有效的sql
validation-query: SELECT 1 FROM DUAL
#申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。默认值为false
test-while-idle: true
#申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。默认值为true
test-on-borrow: false
#归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能默认值为false
test-on-return: false
#有两个含义:1) Destroy线程会检测连接的间隔时间 2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明
time-between-eviction-runs-millis: 60000
#
min-evictable-idle-time-millis: 300000
4.mybatis配置
xml配置:扫描位置、实体类的包位置、开启驼峰
mybatis:
mapper-locations: classpath:mapper/**/*.xml
type-aliases-package: com.example.frame.po
configuration:
map-underscore-to-camel-case: true
启动类配置,扫描的包路径
2.注意事项:
1.通过 profile active来配置将要使用的配置文件。
2.创建项目的时候注意修改 maven 依赖地址,不然容易依赖出错。
3. 报错(EmbeddedDatabaseType):说明没有引入 jdbc依赖包。引入了mybatis就不用引入jdbc,mybatis下包含了jdbc依赖。
java.lang.ClassNotFoundException: org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType
4.打印sql,有两种方式,mybatis的优先级高于log。
一种是mybatis集成:
一种是logging集成: com.example.frame.mapper 是 操作数据库的接口类