SpringBootは、エンタープライズアプリケーション開発のためにSpringDataJpa、Shiro、Redisを統合します(1)

プロジェクトシーン:

最近では、Android携帯電話、WeChatアプレット、Webアプリケーションなどのオンラインアプリケーションプラットフォームを構築する必要があり、他のプラットフォームへのインターフェース(暗号化されたインターフェース操作)をリモートで開き、シングルサインオン(およびキックアウト)する必要があります。関数、および複数のデータが必要です。記録する一連のブログを作成するために使用されるソースおよびインターフェイスの現在の制限など。ブログに誤りがある場合、より良い提案がある場合、またはブログで説明されていない場合は、私にメッセージを残して一緒に学ぶことができます。

テクノロジーオプション:

  1. SpringBoot、SpringDataJPA、Shiro。
  2. mysqlとredisとnginx。

機能は次のとおりです。

機能には、(シングルサインオン、インターフェイス電流制限、アンチインジェクション、セッション共有、負荷分散、タスクスケジューリング、webSocket、インターフェイス暗号化、キャッシュレイヤー、自動テストスクリプト、複数のデータソースなど)が含まれます。

特定の手順:

1:まず、アイデアの親子プロジェクトを作成します。プロジェクトをWeb(インターフェイス側)、common(プロジェクトパブリック側)、shiro(権限側)の3つのモジュールに分割しました。一般的なプロジェクト構造は次のとおりです。

   親プロジェクトのsrcフォルダーを何も操作せずに削除します。

2:親プロジェクト(zh-service)のpomファイルの内容は次のとおりです。

<?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>com.zh</groupId>
    <artifactId>zh-service</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <description>Do everything with your heart</description>

    <modules>
        <module>zh-common</module>
        <module>zh-web</module>
        <module>zh-shiro</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath/>
    </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>

    <!--这里可以控制我们全局调用程序的版本信息,
        在其他项目中引用的时候就不需要写版本号了,
        可以在这里做一个统一管理-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.zh</groupId>
                <artifactId>zh-common</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.zh</groupId>
                <artifactId>zh-web</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>com.zh</groupId>
                <artifactId>zh-shiro</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

次に、Webターミナル(zh-web)と他の2つのモジュールは、親プロジェクト(zh-service)を自動的に継承します。

次に、関連する依存関係情報をパブリックターミナル(zh-common)に導入する必要があります。具体的なファイルの内容は次のとおりです。

<?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">
    <parent>
        <artifactId>zh-service</artifactId>
        <groupId>com.zh</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>zh-common</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <!--SpringBoot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--jpa的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!--参数校验的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <!--Spring测试的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--Spring连接mysql的驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--阿里巴巴的json解析-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
    </dependencies>

</project>

次に、Web側(zh-web)のpom側に依存関係を追加します。具体的な内容は、次のとおりです。

<?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">
    <parent>
        <artifactId>zh-service</artifactId>
        <groupId>com.zh</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>zh-web</artifactId>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>com.zh</groupId>
            <artifactId>zh-common</artifactId>
        </dependency>
    </dependencies>

</project>

パブリック端末(zh-common)をWeb端末(zh-web)に直接インポートするだけです。

次に、プログラムの実行ファイルをWeb側に追加し、プログラムのスタートアップクラスをWeb側(zh-web)に設定します。内容を図に示します。

package com.zh;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * created with IntelliJ IDEA
 *
 * @author: create by limu
 * Date: 2020/11/13
 * Time:14:40
 */
@SpringBootApplication
public class ZhWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZhWebApplication.class, args);
    }
}

現在のプロジェクト構造は次の図に示されています。スタートアップファイルZhWebApplicationの最適な場所は、図に示すように、他のJavaファイルパッケージの上位レベルです。

この時点で、このクラスを開始して試してみると、コンソールは次のようなエラーを報告します。

コンソールを注意深く見てください。この文の意味は、データソースを指定する必要があるということであり、構成ファイルにデータソースアドレスを書き込むことができます。

データリンクプールひかりリンクプールを選びました

Webのリソース(zh-web)にapplication.ymlを作成します。ファイルの内容はおおよそ次のとおりです。

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/zh_service?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      connection-timeout: 200000
      minimum-idle: 5
      auto-commit: true
      idle-timeout: 10000
      max-lifetime: 1800000
      connection-test-query: SELECT 1

図に示すように、事前にデータベースを作成してからスタートアップクラス(ZhWebApplication)を起動する必要があることに注意してください。起動は成功し、ポート情報が表示されます。

次の記事では、それをテストするためのページを作成します。

おすすめ

転載: blog.csdn.net/qq_38821574/article/details/109673222