Comparación de configuración de formulario de anotación y SpringXML súper detallada

  • j3_liuliang
  • Los dos métodos de configuración utilizados al aprender la configuración de Spring, así que registre lo siguiente, si está interesado, ¡puede echar un vistazo!

1. Formulario de configuración XML VS formulario de configuración de anotaciones

XML:

  1. Escriba el archivo SpringConfig.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
       // 定义Bean信息
       <bean id="user" class="cn.liuliang.studysoundcodespring.entity.User">
           <property name="name" value="j3-liuliang"/>
           <property name="age" value="18"/>
       </bean>
    </beans>
    
  2. Escribir clase de prueba

    @Test
    public void test02(){
           
           
        // 根据xml配置文件获取应用上下文
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("SpringConfig.xml");
        // 根据class获取相关bean
        User bean = applicationContext.getBean(User.class);
        System.out.println(bean);
    }
    
  3. resultado:

    Inserte la descripción de la imagen aquí

注解

  1. Definir la clase de configuración de anotaciones

    @Configuration //声明该类是配置类
    @ComponentScan("cn.liuliang.studysoundcodespring") //包扫描
    public class SpringConfig {
           
           
    /**
      * 向容器中主入一个bean组件
      * @return
      */
     @Bean
     public User user(){
           
           
         // 通过new创建对象,放入容器中
         return new User("j3-liuliang",28);
     }
    }
    
  2. Prueba de escritura

    @Test
    public void test01(){
           
           
    // 注解配置类应用上下文
    ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
    User user = applicationContext.getBean(User.class);
    System.out.println(user);
    }
    
  3. resultado

    Inserte la descripción de la imagen aquí

Nota: Si se usa en forma de @Bean, el nombre predeterminado del bean es el nombre del método. Si @Bean (valor = "nombre del bean"), se especifica el nombre del bean

1.1 Comparación de ventajas y desventajas

注解

ventaja

  • Configuración simplificada
  • Fácil de usar, mejora la eficiencia del desarrollo

Desventaja

  • No se pueden configurar las clases en el paquete jar de terceros

XML

ventaja

  • Acoplamiento suelto entre clases, fácil de expandir y reemplazar
  • La relación entre los objetos es clara de un vistazo.

Desventaja

  • La configuración es tediosa y es necesario mantener una configuración adicional
  • El tipo no es seguro, la compilación no puede ayudar con la verificación, el error se encontrará durante el tiempo de ejecución

La comparación anterior es relativamente simple, creo que no es suficiente (en una actitud responsable hacia la tecnología), pero mi propia capacidad técnica es limitada y no puedo resumir un resultado de comparación más completo.

下面是我在CSDN上看到的一位博主对注解与XML配置的比较,对比很全面, El enlace original

Inserte la descripción de la imagen aquí

La diferencia entre la anotación y la configuración XML

Nota: Es una especie 分散式de metadatos y código fuente 紧绑定.

xml: es una especie 集中式de metadatos y código fuente 无绑定.

Por lo tanto, la elección de la anotación y XML puede verse desde dos perspectivas: descentralizada o centralizada, código fuente vinculante / no vinculante .

Desventajas de las anotaciones:

1. Por ejemplo, al usar las anotaciones de primavera, muchos amigos encontrarán que las anotaciones están dispersas en muchas clases, lo cual no es fácil de administrar y mantener; esto en realidad requiere la ayuda de herramientas, actualmente uso IDEA , que funciona muy bien en este aspecto; por supuesto ahora También está el STS de Spring , que también es bueno, por lo que con la ayuda de herramientas, este problema se puede resolver;

2. El código fuente debe modificarse para activar / desactivar la anotación, porque la anotación está vinculada al código fuente. Si desea modificarlo, debe cambiar el código fuente. Esto tiene este problema, por lo que si este es el caso, aún utiliza el método de configuración XML; como la fuente de datos ;

3. Otra desventaja de las anotaciones es la flexibilidad. Por ejemplo, Spring Framework 4.0 M1: soporte WebSocket traducido anteriormente ; en términos de implementación de lógica compleja, ningún XML es más poderoso; las anotaciones se usan o no, como el bean jpa anterior Validación, ya sea todas o ninguna, es doloroso encontrarse con esta situación;

4. La otra es que la convención es mayor que la configuración, pero cuando se trata de situaciones complicadas, las anotaciones aún son necesarias (como las anotaciones de validación de datos / enlace de datos de Spring son muy poderosas);

5. XML es mejor para la configuración general, como la configuración de transacciones, como el grupo de conexiones de la base de datos, etc., es decir, la configuración general es centralizada, en lugar de descentralizada. Por ejemplo, muchas personas usan @Transactional para configurar transacciones. En muchos casos, este es un tipo de Configuración demasiado descentralizada;

6. El método XML es mucho mejor que las anotaciones en términos de escalabilidad y mantenimiento de la complejidad, como qué componentes son necesarios y cuáles no; en esta situación, el mecanismo de escaneo de anotaciones es relativamente inferior, porque las reglas son difíciles de escribir o no las escriben en absoluto. Puede estar escrito

Los beneficios de las anotaciones:

1. La configuración XML a veces es detallada. En este momento, las anotaciones pueden ser una mejor opción, como el mapeo de entidades jpa; las anotaciones a veces son mucho más convenientes que XML cuando se trata de metadatos constantes, como el enlace de datos springmvc. Si usa xml para escribir más código;

2. La mayor ventaja de la anotación es que simplifica la configuración XML; de hecho, la mayoría de las anotaciones rara vez se cambian después de ser determinadas, por lo que el uso de anotaciones en algunos proyectos pequeños y medianos proporciona eficiencia de desarrollo, por lo que no hay necesidad de pasar al negro;

3. Otra ventaja de la anotación sobre XML es que es de tipo seguro, XML solo puede encontrar problemas durante el tiempo de ejecución.

Ya sean anotaciones o XML, todavía necesitamos algunos mecanismos de cambio / reemplazo para controlar las necesidades especiales para cambiar el esquema de todo o nada.

Otro llamado es que el acuerdo es mayor que la configuración, esta solución puede ser óptima en algunos escenarios, pero puede que no resuelva el problema en algunas situaciones complejas, por lo que la anotación también es una buena solución en este momento. Especialmente cuando se usa springmvc, los beneficios se pueden realizar.

Independientemente de si usa anotaciones o XML, las cosas que hace siguen siendo esas cosas, pero las anotaciones y XML no son omnipotentes, puede satisfacer sus necesidades y resolver el problema de una manera más sencilla.

Al igual que cuando se discuten cuestiones técnicas, muchas personas tienen fuertes preferencias personales para juzgar la calidad de algo. Este tipo de discusión no tiene sentido. Nuestro objetivo final es resolver el problema, por lo que debemos explorar si el problema se puede resolver. , ¿Puedes resolver el problema de una manera más comprensible? ¿Puedes resolver el problema de manera más simple?

No importa si el acuerdo es mayor que la configuración, la anotación o la configuración XML, nadie es óptimo, es importante elegir la solución adecuada en el escenario adecuado. Al igual que un patrón de diseño: es una solución probada para un problema específico que se repite en un entorno específico.

Observaciones finales

  • Debido a que los bloggers no tienen mucho conocimiento, inevitablemente habrá errores. Si encuentra un error o prejuicio, por favor deje un mensaje para señalarlo y lo corregiré.
  • Si cree que el artículo no es malo, su reenvío, intercambio, me gusta y comentarios son su mayor aliento.
  • Gracias por leer, bienvenidos y gracias por su atención.

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_40399646/article/details/108905977
Recomendado
Clasificación