來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-04-27 10:42:46
Spring2之后,出現(xiàn)很多注解,這些注解讓Spring的配置變得混亂起來,因此,別人力排Spring的注解。
注解引發(fā)的問題:
1、缺乏明確的配置導(dǎo)致程序的依賴注入關(guān)系不明確。
2、不利于模塊化的裝配。
3、給維護(hù)帶來麻煩,因?yàn)槟阋鶕?jù)源代碼找到依賴關(guān)系。
4、通用性不好。如果你哪天拋開了Spring,換了別的Ioc容器,那么你的注解要一個(gè)個(gè)的刪除。
但是很多傻X級的程序員還偶爾給你用點(diǎn),或半用半不用,當(dāng)你問及的時(shí)候,還一本正經(jīng)的說某某某書上就是這么用的。!如果你接手他的代碼,會很郁悶。
這里寫個(gè)例子,為的是看懂帶注解的代碼,不是推崇注解有多高級,真沒必要。
package lavasoft.springstu.anno;
/**
* 一個(gè)普通的Bean
*
* @author leizhimin 2009-12-23 10:40:38
*/
public class Foo {
private String name;
public Foo(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package lavasoft.springstu.anno;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Spring自動裝配的注解
*
* @author leizhimin 2009-12-23 10:41:55
*/
public class Bar {
@Autowired(required = true)
private Foo foo;
public void f1() {
System.out.println(foo.getName());
}
}
package lavasoft.springstu.anno;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 測試自動裝配Bean
*
* @author leizhimin 2009-12-23 10:55:35
*/
public class Test1 {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("lavasoft/springstu/anno/cfg1.xml");
Bar bar = (Bar) ctx.getBean("bar");
bar.f1();
}
}
運(yùn)行結(jié)果:
aaaa
Process finished with exit code 0
從上面的代碼中看到,Spring的注解使得配置文件的邏輯很混亂,如果項(xiàng)目中有大量的類似注解,那維護(hù)起來就很困難了。
建議不要使用!
全程面授,不高薪都難
申請成功后,我們將在24小時(shí)內(nèi)與您聯(lián)系
招生熱線: 4008-0731-86 / 0731-82186801
學(xué)校地址: 長沙市天心區(qū)團(tuán)結(jié)路6號
Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有
湘ICP備14017520號-3