Cree un análisis de blog personal de SpringBoot (proyecto de Code Cloud Chasing Dreams)

Pon el código fuente primero: blog de sueños

Análisis de la estructura del proyecto

Si ya está familiarizado con el proceso de desarrollo de SSM, puede simplificar la creación de artefactos del proyecto SpringBoot y agregar directamente el nombre que desee. Lo mejor es que sea igual que aquí. src/java es un directorio de tercer nivel. No lo haga. No complique este directorio.

Omito algunas anotaciones por defecto @Autowired y @Mapper @Repository etc.

  1. No sé qué está haciendo AOP, parece ser un evento de registro de todos modos, no puedo entenderlo
  2. config es la clase de inicio de sesión en segundo plano interceptada por el interceptor.
  3. El controlador es la capa de control para realizar la interacción entre los datos de back-end y la página de front-end
  4. interceptor es una clase especial para la configuración del interceptor correspondiente a la interceptación del inicio de sesión
  5. gestión de operaciones de la base de datos del mapeador
  6. La clase de entidad pojo (o entidad) y sus atributos corresponden al nombre de la tabla de la base de datos y al nombre de la columna
  7. La capa de servicio de servicio es solo para realizar operaciones de base de datos (mapeador)
  8. El conjunto de herramientas de utils generalmente implica cifrado de algoritmos o complementos, etc. No lo entiendo del todo.
  9. Los recursos paquete de recursos estático recurso estático SpringBoot ha predeterminado a estático/esta ruta se refiere al nombre directo/del paquete El paquete de plantillas es una página web, que necesita ser configurada por mvc.
  10. Generalmente, se utiliza el archivo de configuración application.yml    

 La fuente de datos de la base de datos no explica que thymeleaf es la clave para que el controlador salte a la página web correspondiente. Mybatis bloquea la ubicación de mapper.xml. Este proyecto no tiene configuración de mapper-locaitons porque la interfaz y el archivo xml están juntos.

···xml

servidor: 
  puerto: 8080 

primavera: 
  fuente de datos: 
    nombre de clase de controlador: com.mysql.cj.jdbc. Nombre de usuario del controlador: 
    contraseña 
    raíz : 123456 
    tipo: com.alibaba.druid.pool.DruidDataSource 
    url: jdbc: mysql: // localhost :3306/myblog 
  thymeleaf: 
    caché: 
    modo falso: prefijo HTML 
    : classpath:/templates/ 
    sufijo: .html 
mybatis: 
  type-aliases-package: com.dreamchaser.pojo 
  configuración: 
    log-impl: org.apache.ibatis.logging. slf4j.Slf4jImpl 
    prefijo de registro: asignador.


```

Con respecto a la dependencia de pom.xml, me da flojera cargarlo porque el código fuente ya está muy detallado 

Ideas de desarrollo recomendadas personalmente:

Base de datos --> clase de entidad --> capa dao --> capa de servicio --> capa de controlador --> otro soporte: herramientas o intercepción

Si no utiliza la generación automática de tablas de datos, primero debe crear una base de datos e importar los datos.

Back-end src/java:

clase de entidad

El nombre del atributo es el mismo que el nombre de la columna de la tabla de datos, por lo que puedo entenderlo mirando el código.

clase dao

La interfaz del método de operación de la base de datos, qué funciones deben escribirse y qué funciones se agregan, eliminan, modifican y verifican comúnmente. Preste atención al uso de la declaración @mapper de anotación

o @Repository implementa un bean inyectable

clase de servicio

Contiene interfaz de servicio y clase de implementación de servicio. La interfaz de servicio es consistente con la interfaz dao. Las anotaciones de clase de implementación @Service y @Autowired inyectan la clase dao requerida para implementar el método de base de datos que desea operar. Brainless alt+insert.... .

El front-end usa la plantilla de hoja de tomillo:

Tenga en cuenta el uso de <html xmlns:th="//www.thymeleaf.org"> para introducir soporte

tema adicional

Aquí viene el punto, usar mybatis-generator o Spring data jpa para generar código automáticamente en dos casos

mybatis-generator genera código:

Configuración básica oral:

pom.xml requiere mysql mybatis generator-core generator-maven-plugin
maven recuerde agregar

```xml

 <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </ configuración>
            </complemento>

```
 

```yml

primavera: 
  fuente de datos: 
    nombre de la clase del controlador: com.mysql.cj.jdbc. Nombre de usuario del controlador: 
    contraseña 
    raíz : 123456 
    tipo: com.alibaba.druid.pool.DruidDataSource 
    url: jdbc:mysql://localhost:3306/myblog 
  thymeleaf : 
    caché: 
    modo falso: prefijo HTML 
    : classpath:/templates/ 
    sufijo: .html
  



#Use mybatis-plus para prestar atención a la ruta similar a la siguiente
mybatis: 
  type-aliases-package: com.dreamchaser.pojo 
  mapper-ubicaciones: tu camino

```

A continuación, generatorConfig.xml coloca el directorio raíz de recursos 


Cambiar la información de conexión jdbc del paquete jar  
Generar dirección de clase de entidad
Generar dirección de almacenamiento de archivo map.xml Generar nombre de tabla de tabla
de interfaz Si desea generar archivos correspondientes a varias tablas, simplemente agregue etiquetas de tabla Agregue línea de comando maven mybatis-generator:generar -e Ejecutar


```xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "
        http://mybatis.org/dtd /mybatis-generator-config_1_0.dtd">
<!-- 配置生成器 -->
<generatorConfiguration>

    <!--classPathEntry: El controlador JDBC de la base de datos, puede elegir su propia ubicación de controlador-->
    <classPathEntry location="D:\mysql-connector-java-8.0.28.jar"/>


    <!-- Una base de datos, un contexto, defaultModelType="flat" gran campo de datos, independientemente de la tabla -->
    <context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <!-- Identifique automáticamente las palabras clave de la base de datos, el valor predeterminado es falso, si se establece en verdadero, de acuerdo con la lista de palabras clave definida en SqlReservedWords; por lo general, mantenga el valor predeterminado, busque palabras clave de la base de datos (palabras clave de Java), use columnOverride para anular --> < nombre de la
        propiedad ="autoDelimitKeywords" value="true"/>

        <!-- La codificación del archivo Java generado-->
        <property name="javaFileEncoding" value="utf-8"/>

        <!-- BeginningDelimiter yendingDelimiter: indica el símbolo utilizado para marcar el nombre del objeto de base de datos de la base de datos, como ORACLE entre comillas dobles, MYSQL por defecto es `comillas invertidas; --> < property name="beginningDelimiter" value="`
        " />
        <propiedad nombre="finingDelimiter" value="`"/>

        <!-- Formatear código java -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>

        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <tipo de complemento="org.mybatis.generator.plugins.ToStringPlugin"/>

        <!-- Comentarios -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/><!-- Si cancelar comentarios -->
            <property name="suppressDate" value="false"/> < !-- Si generar una marca de tiempo de generación de comentarios -->
        </commentGenerator>

        <!-- jdbc连接-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/ssmtest?serverTimezone=UTC" userId="root"
                        password= "123456"/>

        <!-- Conversión de tipo-->
        <javaTypeResolver>
            <!-- Ya sea para usar bigDecimal, false puede convertir automáticamente los siguientes tipos (largo, entero, corto, etc.) -->
            <property name="forceBigDecimals" value= "falso"/>
        </javaTypeResolver>

        <!-- Generar dirección de clase de entidad -->
        <javaModelGenerator targetPackage="com.my.entity" targetProject="src/main/java">
            <!-- Indica si usar esquema como sufijo del paquete -->
            <nombre de propiedad = "enableSubPackages" value="false"/>
            <!-- Elimina los espacios iniciales y finales del valor devuelto por la base de datos -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- Generar dirección de almacenamiento del archivo map.xml -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>

        <!-- 生成接口dao -->
        <javaClientGenerator targetPackage="com.my.dao" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- Puede haber varias tablas, cada tabla en la base de datos puede escribir una tabla, tableName indica la tabla de la base de datos con la que se debe hacer coincidir, o puede usar % comodines en el atributo tableName para hacer coincidir todas las tablas de la base de datos, solo las tablas coincidentes Solo lo harán genera automáticamente el archivo EnableSelectByprimarykey de configuración correspondiente para indicar si se                genera                la                interfaz                correspondiente-
        > "                enableSelectByPrimaryKey="true"                enableUpdateByPrimaryKey="true"                enableDeleteByPrimaryKey="true">






        </tabla>

    </contexto> <
/generadorConfiguración>

```

Después de una operación exitosa, se puede generar el archivo xml de la clase de interfaz dao de clase de entidad y el mapeador

Spring Data Jpa genera automáticamente tablas de datos

Cree un proyecto springboot y agregue jpa No diré mucho sobre otros controladores mysql.

```yml

primavera: 
  fuente de datos: 
    nombre de la clase del controlador: com.mysql.cj.jdbc. Nombre de usuario del controlador: 
    contraseña 
    raíz : 123456 
    tipo: com.alibaba.druid.pool.DruidDataSource 
    url: jdbc:mysql://localhost:3306/myblog 
  thymeleaf : 
    caché: modo falso 
    : prefijo HTML 
    : classpath:/templates/ 
    sufijo: .html 
  jpa: 
    hibernate: 
      ddl-auto: actualizar 
    show-sql: verdadero
  

#Use mybatis-plus para prestar atención a la ruta similar a la siguiente
mybatis: 
  type-aliases-package: com.dreamchaser.pojo 
  mapper-ubicaciones: tu camino

```

La forma en que se escribe la clase de entidad es muy importante:

@Entity //Dígale a jpa que esta es una clase de entidad y una clase de asignación de tabla de datos
@Table(name = "tbl_user") //Especifique a qué tabla de datos corresponde Si se omite el nombre de la tabla, el nombre de la clase está en minúscula
 @Id / /Esta es una clave primaria
 @GeneratedValue(strategy = GenerationType.IDENTITY) //Auto-incrementa la clave primaria
 @Column(name="last_name",length = 50) //La columna correspondiente a la tabla de datos
 @Column //Omitiendo el el nombre de columna predeterminado es el nombre del atributo  

escribir a mano un ejemplo

```java 

@Entidad

//Table(name="myname") prueba de nombre de tabla por defecto

Prueba de clase pública(){

@Identificación

@GeneratedValue(estrategia=GenerationType.IDENTIDAD)

identificación larga privada;

@Columna

nombre de prueba de cadena privada;

}

```

Simplemente inicie el proyecto SpringBoot  

Se introduce el recurso y el servidor no puede soportar el tráfico.

 

 

Supongo que te gusta

Origin blog.csdn.net/m0_57242470/article/details/124785520
Recomendado
Clasificación