lvzhiqiang 5 роки тому
батько
коміт
1e779dbff7
1 змінених файлів з 76 додано та 11 видалено
  1. 76 11
      source/_posts/af-springboot.md

+ 76 - 11
source/_posts/af-springboot.md

@@ -47,18 +47,31 @@ SpringMVC:
 ## 快速入门
 
 1. 创建一个普通 maven 工程,packaging类型为jar(可省略)
-2. pom文件中引入SpringBoot相关依赖
+2. pom文件配置
     ```
+    <!-- 引入SpringBoot parent依赖 -->
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
         <version>2.0.0.RELEASE</version>
     </parent>
+    <!-- 设置资源属性 -->
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+    </properties>
+    <!-- 引入dependency -->
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
     </dependencies>
     ```
     ```
@@ -67,9 +80,30 @@ SpringMVC:
     spring-boot-starter-web作用
         把传统方式的SpringMVC依赖的所有jar全部给下载下来,
     spring-boot-maven-plugin作用
-        如果直接通过Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven 的spring-boot:run的话是不需要此配置的。
+        如果直接通过Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用 maven 的spring-boot:run的话是不需要此配置的。
+    ```
+3. 配置application.yml
     ```
-3. 编写helloworld服务
+    server:
+      tomcat:
+        accept-count: 1000
+        max-connections: 2000
+        max-threads: 300
+        min-spare-threads: 50
+        uri-encoding: UTF-8 # 指定tomcat的编码格式
+        max-http-post-size: 100MB
+        accesslog:
+          enabled: true
+      port: 8080 # 设定web访问端口号,也是http监听端口
+      connection-timeout: 60000
+      servlet:
+        context-path: /monitor # 2.0之后的配置,应用的上下文路径,也可以称为项目路径,是构成url地址的一部分
+      compression:
+        enabled: true # 是否开启压缩,默认为false
+      http2:
+        enabled: true # 应用支持http2
+    ```
+4. 编写helloworld服务
     ```
     package top.lvzhiqiang.controller;
     @RestController
@@ -100,7 +134,7 @@ SpringMVC:
         标注在方法上(返回某个实例的方法),相当于spring的xml配置文件中的<bean>
         用来注册bean对象(实例化bean,并交给spring管理)
     ```
-4. 启动应用
+5. 启动应用
     ```
     方法1:
         直接启动main方法,main方法中指定IndexController为启动入口,默认端口号为8080。
@@ -383,24 +417,55 @@ SpringMVC:
     
 ### 数据访问
 
-- `整合mybatis`
+- `整合mybatis和HikariCP`
     ```
-    1.pom文件引入mybatis相关的依赖包
+    1.pom文件中引入数据源驱动与mybatis依赖
+        <!-- mybatis -->
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
             <artifactId>mybatis-spring-boot-starter</artifactId>
             <version>1.1.1</version>
         </dependency>
+        <!-- mysql驱动 -->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
             <version>5.1.21</version>
         </dependency>
-    2.修改application.properties
-        spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/test
-        spring.datasource.username=root
-        spring.datasource.password=root
-        spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+    2.在application.yml中配置数据源和mybatis
+        ###########################################################
+        #
+        # 配置数据源信息
+        #
+        ###########################################################
+        spring:
+          datasource: # 数据源的相关配置
+            type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
+            driver-class-name: com.mysql.jdbc.Driver # mysql驱动
+            url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect
+            username: root
+            password: root
+          hikari: # Hikari连接池配置
+            connection-timeout: 30000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQ
+            minimum-idle: 5 # 最小空闲连接数
+            maximum-pool-size: 20 # 最大连接数,默认是10
+            auto-commit: true # 自动提交
+            idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
+            pool-name: DateSourceHikariCP # 连接池名字
+            max-lifetime: 1800000 # 此属性控制池中连接的最长生命周期(毫秒),值0表示无限生命周期,超时而且没被使用则被释放(retired),默认:30分钟
+            connection-test-query: SELECT 1
+        ###########################################################
+        #
+        # mybatis配置
+        #
+        ###########################################################
+        mybatis:
+          type-aliases-package: com.riskraider.monitor.entity # 所有POJO类所在包路径,只能指定具体的包,多个配置可以使用英文逗号隔开
+          mapper-locations: classpath:mapper/**/*.xml # mapper映射文件的路径,支持Ant风格的通配符,多个配置可以使用英文逗号隔开
+          configuration:
+            # 开启驼峰命名转换,如:Table(create_time) -> Entity(createTime)。
+            # 不需要我们关心怎么进行字段匹配,mybatis会自动识别`大写字母与下划线`
+            map-underscore-to-camel-case: true
     3.Mapper代码
         public interface UserMapper {
         	@Select("SELECT * FROM USERS WHERE NAME = #{name}")