SpringBoot integra SpringDataJpa, Shiro, Redis para el desarrollo de aplicaciones empresariales (1)

Escena del proyecto:

Recientemente, es necesario crear una plataforma de aplicaciones en línea, que incluya un teléfono móvil Android, un subprograma WeChat y una aplicación web. Es necesario abrir de forma remota interfaces (operaciones de interfaz encriptadas) a otras plataformas, inicio de sesión único (y expulsión) Se necesitan funciones y datos múltiples Fuente e interfaz límite de corriente, etc., solo se utiliza para escribir una serie de blogs para registrar. Si hay errores en el blog, mejores sugerencias o no se explican en el blog, pueden dejarme un mensaje y aprender juntos.

Opciones tecnológicas:

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

Las características incluyen:

Las funciones incluyen (inicio de sesión único, limitación de corriente de interfaz, antiinyección, uso compartido de sesiones, equilibrio de carga, programación de tareas, webSocket, cifrado de interfaz, capa de almacenamiento en caché, scripts de prueba automatizados, múltiples fuentes de datos, etc.)

Pasos específicos:

1: Primero, cree un proyecto padre-hijo en idea. Dividí el proyecto en tres módulos: web (lado de la interfaz), común (lado público del proyecto) y shiro (lado de la autoridad). La estructura general del proyecto es la siguiente:

   Eliminamos la carpeta src del proyecto principal sin ninguna operación.

2: El contenido del archivo pom del proyecto principal (servicio zh) es el siguiente:

<?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>

Luego, el terminal web (zh-web) y los otros dos módulos heredarán automáticamente el proyecto principal (zh-service).

A continuación, debemos introducir información de dependencia relevante en la terminal pública (zh-common). El contenido específico del archivo es el siguiente:

<?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>

Luego agregamos una dependencia en el lado pom del lado web (zh-web), el contenido específico es el siguiente:

<?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>

Simplemente importe el terminal público (zh-common) directamente al terminal web (zh-web).

Luego agregamos el archivo de ejecución de nuestro programa en el lado web. Yo configuro la clase de inicio del programa en el lado web (zh-web). El contenido se muestra en la figura:

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);
    }
}

La estructura actual del proyecto es como se muestra en la figura siguiente. La mejor ubicación para el archivo de inicio ZhWebApplication es en el nivel superior de otros paquetes de archivos java, como se muestra en la figura:

En este punto, iniciamos esta clase para probarlo, la consola reportará un error similar a este:

Mire atentamente la consola. El significado de esta oración es que necesita especificar una fuente de datos y podemos escribir la dirección de la fuente de datos en el archivo de configuración.

Grupo de enlaces de datos Elegí el grupo de enlaces hikari

Cree application.yml en el recurso de la web (zh-web). El contenido del archivo es aproximadamente el siguiente:

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

Tenga en cuenta que debe crear la base de datos con anticipación y luego iniciar la clase de inicio (ZhWebApplication), como se muestra en la figura, el inicio es exitoso y puede ver la información del puerto.

En el próximo artículo escribiremos una página para probarlo.

Supongo que te gusta

Origin blog.csdn.net/qq_38821574/article/details/109673222
Recomendado
Clasificación