基於 tyboot 快速初始化 springboot 單體項目

基於 tyboot 快速初始化 springboot 單體項目

tyboot源碼:html

giteejava

githubmysql

示例項目 tybootdemo 源碼git

tybootdemogithub

項目目錄結構:

項目結構

其中包名自行定義,;redis

controller 和 face 目錄 爲約定目錄結構.建議保持一致.spring

配置文件建議使用多環境配置,啓動的時候添加參數 spring.profiles.active 以下:sql

Run-->Edit Configurations...數據庫

環境參數

pom.xml 文件內容:

tyboot的包放在我的私服,能夠臨時使用,建議將tyboot源碼克隆之後自行打包到本身的私服apache

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.typroject</groupId>
    <artifactId>tybootdemo</artifactId>
    <version>1.0</version>
    <packaging>jar</packaging>

    <name>tybootdemo</name>
    <description>tybootdemo</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <tyboot.version>1.1.20Ty-SNAPSHOT</tyboot.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>

        <!-- 引用tyboot核心包 start -->
        <dependency>
            <groupId>org.typroject</groupId>
            <artifactId>tyboot-core-foundation</artifactId>
            <version>${tyboot.version}</version>
        </dependency>

        <dependency>
            <groupId>org.typroject</groupId>
            <artifactId>tyboot-core-restful</artifactId>
            <version>${tyboot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.typroject</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.typroject</groupId>
            <artifactId>tyboot-core-auth</artifactId>
            <version>${tyboot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.typroject</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.typroject</groupId>
            <artifactId>tyboot-core-rdbms</artifactId>
            <version>${tyboot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.typroject</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.typroject</groupId>
            <artifactId>tyboot-component-cache</artifactId>
            <version>${tyboot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.typroject</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-redis</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 引用tyboot核心包 end -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
            <version>1.4.5.RELEASE</version>
        </dependency>

    </dependencies>

    <!-- 目前使用的springboot版本爲 2.1.6.RELEASE -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <!-- Import dependency management from Spring Boot -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.1.6.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!--  tyboot的包放在我的私服,能夠臨時使用,建議將tyboot源碼克隆之後自行打包到本身的私服 -->
    <repositories>

        <repository>
            <id>maven-public</id>
            <name>maven-public</name>
            <url>http://repo.typroject.org:8081/repository/maven-public/</url>
        </repository>
        <repository>
            <id>maven-snapshot</id>
            <name>maven-snapshot</name>
            <url>http://repo.typroject.org:8081/repository/maven-snapshots/</url>
        </repository>

    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>maven-public</id>
            <name>maven-public</name>
            <url>http://repo.typroject.org:8081/repository/maven-public/</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

        </plugins>
    </build>
</project>
application.properties 文件內容:

推薦使用多環境配置

spring.application.name=tybootdemo
server.port=30010
server.servlet.context-path=/demo

server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
#默認就是2048 byte
server.compression.min-response-size=2048

#spring.jackson.default-property-inclusion=non_null
logging.config=classpath:logback-${spring.profiles.active}.xml

# mybatis_config
mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml
mybatis-plus.type-aliases-package=org.typroject.*.*.face.*.orm.entity
application-dev.properties 文件內容:

數據庫和緩存配置 會接下來演示 示例功能用到.

# jdbc_config
spring.datasource.url=jdbc:mysql://192.168.1.212:3306/tybootdemo?characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=tybootdemo
spring.datasource.password=tybootdemo
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#not support for spring-boot v1.5+, use org.apache.tomcat.jdbc.pool.DataSource by default.
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.pool-name=DatebookHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1

# REDIS (RedisProperties)
spring.redis.database=10
spring.redis.host=192.168.1.212
spring.redis.port=6379
spring.redis.password=xxxxx
spring.redis.timeout=0
logback-dev.xml 文件內容
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <!-- 控制檯輸出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日誌消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
    <!--myibatis log configure-->
    <logger name="com.apache.ibatis" level="TRACE"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>

    <logger name="org.typroject" level="DEBUG"/>
    <logger name="org.springframework" level="DEBUG"/>
    <logger name="com.baomidou" level="DEBUG"/>

    <!-- 日誌輸出級別 -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

至此 已經完成工程初始化,能夠進一步使用tyboot全部的核心功能,包括

​ 無sql編碼體驗

​ 基於租戶的數據隔離機制

​ 數據緩存

​ 基於簡單固定窗口的請求頻次限制

​ 基於攔截器的請求攔截擴展

​ 錯誤處理與異常定義

​ 統一請求上下文

​ 統一返回格式

​ 登陸認證方式擴展

​ 認證機制

​ 接口輸入輸出加密

​ 便捷工具類

​ 本地多帳號登陸

相關文章
相關標籤/搜索