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。

Spring -- 三种配置方式的更多相关文章

  1. spring Bean的三种配置方式

    Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...

  2. 【jdbc】【c3p0】c3p0三种配置方式【整理】

    c3p0三种配置方式 c3p0的配置方式分为三种,分别是1.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文件3.类路径下提供一个c3p0-config.xml ...

  3. tomcat下jndi的三种配置方式

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  4. IIS下PHP的三种配置方式比较

    在Windows IIS 6.0下配置PHP,通常有CGI.ISAPI和FastCGI三种配置方式,这三种模式都可以在IIS 6.0下成功运行,下面我就讲一下这三种方式配置的区别和性能上的差异. 1. ...

  5. 【转】tomcat下jndi的三种配置方式

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  6. c3p0三种配置方式(automaticTestTable)

    c3p0的配置方式分为三种,分别是http://my.oschina.net/lyzg/blog/551331.setters一个个地设置各个配置项2.类路径下提供一个c3p0.properties文 ...

  7. 【c3p0】 C3P0的三种配置方式以及基本配置项详解

    数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. ---------------------------------------- ...

  8. 深刻剖析spring三种注入方式以及使用注解的原理

    概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO ...

  9. Hive metastore三种配置方式

    http://blog.csdn.net/reesun/article/details/8556078 Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适 ...

随机推荐

  1. SGU 405 Totalizator

    405. Totalizator Time limit per test: 0.25 second(s)Memory limit: 65536 kilobytes input: standardout ...

  2. 【转】Spring中事务与aop的先后顺序问题

    [原文链接] http://my.oschina.net/HuifengWang/blog/304188 [正文] Spring中的事务是通过aop来实现的,当我们自己写aop拦截的时候,会遇到跟sp ...

  3. PHP通过AJAX及Access-Control-Allow-Origin实现跨域访问

    这里的跨域实质上是由浏览器同源策略限制的一类请求场景,浏览器同源策略SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全 ...

  4. CareerCup之1.3字符串去重

    [题目] 原文: 1.3 Design an algorithm and write code to remove the duplicate characters in a string witho ...

  5. Short Circuit Protection Circuit

    http://www.daycounter.com/Circuits/Short-Circuit-Protection/Short-Circuit-Protection.phtml Short cir ...

  6. WINDOWS WPA性能分析

    http://r12f.com/posts/introduction-to-wpa-1-why-it-is-slow/ http://www.freebuf.com/column/138862.htm ...

  7. DU 4609 3-idiots FFT

    题意还是比较好懂. 给出若干个木棍的长度,问这些木棍构成三角形的可能性. 那么公式很容易知道 就是这些木棍组成三角形的所有情况个数 除以 从n个木棍中取3个木棍的情况数量C(n, 3) 即可 但是很显 ...

  8. 2013-8-6 10:56:07 JAVA_WEB:员工号自动生成源代码

    create table user_info_temp (       usId varchar2(20),       usNo varchar2(20),       usName varchar ...

  9. C# 去掉webapi返回json所带的转义字符

    反序列换报错: {"Error converting value \"{\"Result\":true,\"Code\":\"\& ...

  10. java基础学习总结——static关键字

    一.static关键字