zoukankan      html  css  js  c++  java
  • Spring -- 三种配置方式

    1、Explicit configuration in XML:显示的XML配置。

         优点:

         1)XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译。

         2)在处理大的业务量的时候,用XML配置应该更加好一些。
         缺点:

         1)配置文件读取和解析需要花费一定的时间,配置文件过多的时候难以管理。

         2)无法对配置的正确性进行校验,增加了测试难度。

    2、Explicit configuration in Java:显示的JavaConfig,基于java类配置。

          @Configuration 

          public class Conf {   

              @Scope(“prototype”)   

              @Bean(“loginUserDao”)   

              public LoginUserDao loginUserDao() {   

                    return new LoginUserDao();   

             }   

        }   

         在标注了@Configuration的java类中,通过在类方法标注@Bean定义一个Bean。

        通过在成员变量或者方法入参处标注@Autowired按类型匹配注入,也可以使用@Qualifier按名称配置注入。

        JavaConfig is the preferred option for explicit configuration
    because it’s more powerful, type-safe, and refactor-friendly.

        优点:

        1)在class文件中,降低维护成本。

        2)不需要第三方解析工具。

        3)编辑期就可以检验正确性,提高开发效率。

        缺点:

        1)配置代码过多时,直接影响代码质量,对于代码的简洁度有影响。

        2)业务类之间的关系不如XML配置那样容易把握。

        3)如果需要修改配置,则要重新编译整个工程。

    3、Implicit bean discovery and automatic wiring:隐式的bean扫描,基于java注解配置,自动注入。

        @Scope(“prototype”)   

        @Lazy(true)  

        @Component(“loginUserDao”)  

        public class LoginUserDao {  }   

         @Component:标注一个普通的Spring Bean类

         在方法处通过@Autowired使方法入参绑定Bean,然后在方法中通过代码进行注入。

         优点:

         1)在class文件中,降低维护成本。

         2)不需要第三方解析工具,利用java反射机制。

         3)编辑期就可以检验正确性,提高开发效率。

         缺点:

         1)如果需要对annotation进行修改,那么要重新编译整个工程。

         2)业务类之间的关系不如XML配置那样容易把握。

         3)如果在程序中annotation比较多,直接影响代码质量,对于代码的简洁度有影响。

         4)符合条件的多个bean注入时,spring不知道如何选择,会有异常NoUniqueBeanDefinitionException。

  • 相关阅读:
    iOS开发 -------- AFNetworking使用中遇到的小问题
    iOS开发 -------- AFNetworking实现简单的断点下载
    规则引擎-BRMS在企业开发中的应用
    MySQL系列教程(四)
    MySQL系列教程(三)
    MySQL系列教程(二)
    MySQL系列教程(一)
    OWASP Top 10十大风险 – 10个最重大的Web应用风险与攻防
    【事务】<查询不到同一调用方法其它事务提交的更新>解决方案
    iOS控制反转(IoC)与依赖注入(DI)的实现
  • 原文地址:https://www.cnblogs.com/a8457013/p/8311029.html
Copyright © 2011-2022 走看看