Pensamientos aleatorios sobre arquitectura en los últimos años

Etapa de novato: Servlet + JSP

  • Al final, es la demostración o una pequeña función dentro del estudio.

image-20200410200008514

Después del trabajo: Jsp + SSH, pero básicamente solo S

  • Jsp

    ¿Por qué no usar Jsp? Los requisitos de la página a menudo tienen los requisitos de modernidad en la tradición y simplicidad en la complejidad. Nuestro personal de back-end es realmente impotente. Además, sería divertido cambiar una página tan complicada en Jsp. Definí las especificaciones de interfaz de reposo frontal y de fondo para intercambiar completamente los datos usando json. Se agrega un interruptor de prueba a la capa de reenvío. Durante el proceso de desarrollo, puede acceder directamente al archivo json predefinido en la ruta relativa. Los extremos delantero y trasero se desarrollan según json. La única página jsp actualmente en el sistema es qué tipo de barra de navegación se devuelve al usuario de acuerdo con las restricciones de permisos. Cuando se complete la depuración conjunta, simplemente arroje el código de front-end en la raíz web, no es necesario cambiarlo a jsp, ¡qué bueno!

  • Struts2

img

¿Por qué no usar puntales? (Para la captura de pantalla, esta es la primera vez que se abre el sitio web oficial de Struts en varios años.) Debido a que Struts a menudo rompió un gran error en los últimos dos años, cada vez que necesita repararse con urgencia y se realizan un montón de pruebas. Esta es la segunda. Demasiado Así que decidí migrar varios sistemas en línea de Struts a Spring MVC. Tendré tiempo para escribir un tutorial detallado sobre cómo migrar proyectos antiguos en el futuro. Aquí hay una breve introducción:

ScopeEl alcance de la acción Struts es una solicitud, se declaran algunas variables y el alcance de Spring Controller es singleton. Entonces copie una Acción y cámbiele el nombre a XXXController, y herede CommonController para resolver el enlace de la página que pasa user.xxx al objeto de usuario en el parámetro del método, el código es el siguiente. Si elimina la variable global, agregue el parámetro a la firma del método del informe de errores cada vez que informe un error y agregue @Mapping a cada método.

@Controller
public class CommonController {
  @InitBinder("user")    
  public void initUserBinder(WebDataBinder binder) {    
      binder.setFieldDefaultPrefix("user.");
  }
}

② El valor de retorno del método, exactamente el valor que debe tomar la página, se mueve de la variable global al ModelMap del parámetro del método.

Spring SpringMVC.xml recién construido agrega InternalResourceViewResolver, antes de que Struts básicamente devuelva qué cadena empalma qué jsp, SpringMVC es el mismo, agregando manejo de excepciones globales, codificación, etc., son las operaciones básicas de SpringMVC.

Pages Las páginas originales se cambian básicamente sin problemas utilizando el valor de el expresión.

⑤ Para la internacionalización, se accede directamente a jsp estático, y MessageSource no está disponible porque no se reenvía a través de Spring MVC. Copie el código fuente de Spring MessageTag y cámbielo. Tld también cópielo para cambiarlo y configúrelo en web.xml.

  • Primavera

    Spring se ha convertido en Spring + SpringMVC, pero ahora el oficial no está dividido, por lo que sigue siendo Spring.

  • Hibernar

Hibernar

¿Por qué no usar Hibernate? La cantidad de datos es grande, la relación de asociación es complicada y esta última se escribe básicamente directamente hql. También hay un problema más realista: generar POJO a partir de tablas es una tarea técnica y no todos los desarrolladores pueden hacerlo bien. Y para algunas mesas pequeñas, obtener un montón de Entity and Dao es realmente impotente. Sin embargo, algunas cosas en Hibernate son realmente interesantes, como admitir List como valor de condición de consulta. Puedes aprenderlo.

  • Mybatis

Logotipo de MyBatis

¿Por qué no usar Mybatis? Una es tener en cuenta el costo de aprendizaje de todo el equipo, y la otra es no usar POJO. Como se mencionó anteriormente, los extremos frontal y posterior se han separado por completo, y el medio usa json para interactuar. Implementé un pequeño componente de consulta: después de ingresar sql y la lista de parámetros, devolver json, json array, valor de conteo, etc. También puede especificar a qué tipo quiere convertir cada campo devuelto. De hecho, similar al mapeador de implementación Spring JDBC por sí mismo, lea la información de metadatos de ResultSet para generar json.

El futuro

  • Plan de investigación para eliminar completamente POJO

    Hay dos razones:

    Ends Los extremos frontal y posterior usan json para interactuar, no es necesario generar POJO y luego convertir a json.

    ② Además de la base de datos relacional, el sistema también tiene redis, mongodb, es y big data. La iteración empresarial también es relativamente rápida y ya no es adecuada para usar POJO en términos de formato de datos o actualización comercial rápida.

  • Complete los proyectos de plantilla de la base de datos relacional y la base de datos no relacional para facilitar el uso de los miembros del equipo.

  • Algunas funciones básicas comúnmente utilizadas en el desarrollo a nivel empresarial se convierten en plantillas, que se pueden usar con ligeras modificaciones. Como enviar tareas al grupo de subprocesos, enviar y recibir mensajes en la cola de mensajes, exportar grandes cantidades de datos a archivos en lotes, transacciones distribuidas y microservicios.

  • Escriba algunas series desde cero para dominar el código fuente.

  • Cree un motor de ejecución a nivel de juguete, similar al rol de v8 en mongodb, defina su propia sintaxis.

Supongo que te gusta

Origin www.cnblogs.com/wxyzyu/p/12675970.html
Recomendado
Clasificación