|
锁定老贴子 主题:spring=画蛇添足
该帖已经被评为隐藏帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-06-05
决定把在javaeye上最后一点积分用光,大家投隐藏吧,投新手吧,不过我还是要说,盲从--中国程序员的悲哀。
尝试是好事,盲从就不好了。 现在我开始尝试使用一种简单的方式来构建对象,获取对象。可称之为ContextHolder模式。 /**
* 2007-6-5 下午02:27:03
*/
/**
* @author <a href="mailto:guileen@gmail.cn">桂健雄</a>
* @since 2007-6-5
*/
public abstract class ContextHolder {
static{
//init the context ,sessionFactory
AnnotationConfiguration cfg = new AnnotationConfiguration();
Properties prop = new Properties();
InputStream is = null;
try{
is = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties");
prop.load(is);
} catch (IOException e) {
Logger.getLogger(Properties.class).error("jdbc.properties 读取失败");
}finally{
if(is != null){
try {
is.close();
} catch (IOException e) {
}
}
}
cfg.addProperties(prop);
initAnnotatedClasses(cfg);
buildDaos();
sessionFactory = cfg.buildSessionFactory();
SessionHolder.setSessionFactory(getSessionFactory());
}
private static SessionFactory sessionFactory;
private static MyDao1 dao1;
private static MyDao2 dao2;
/**
* @param cfg
*/
private static void initAnnotatedClasses(AnnotationConfiguration cfg) {
cfg.addAnnotatedClass(MyEntity1.class);
cfg.addAnnotatedClass(MyEntity2.class);
cfg.addAnnotatedClass(MyEntity3.class);
}
private static void buildDaos(){
dao1 = new MyDao1Impl();
dao2 = new MyDao2Impl();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
public static MyDao1 getMyDao1(){
return dao1;
}
}
IOC的目标是,建立统一的对象装配器,对象提取器。但是,使用xml的配置实在是没有必要,取对象出来还要用getBean方法,要填对象名,要作类型转换,对了,还要先设法获取ApplicationContext对象。真是无聊之极。 当然,想要使用Spring中的Bean,也不一定非要获取ApplicationContext,可以把调用者也配置到Context中,定义好set方法,在配置文件中,把调用者的property ref 到 想用到bean上。 不过,如此一来,就更加是画蛇添足了。 aop和事务管理,何必一定完全交给IoC框架呢,自己编码啊。使用框架,以为自己发现了捷径,走过去,就发现,这条小路走的不那么爽,布满荆棘。 而使用这种ContextHolder模式,一切是多么的简单明了,直接static的方法调用,ContextHolder.getMyDao1(),就ok了,而且少了一个2M的spring.jar,看着舒服,少了xml,看着舒服,少了一些无聊的getters and setters,舒服。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-06-05
……
灰常无语 为什么灰常无语呢? 因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式 但还是有这样的筒子 洋洋千言之前连google一下都懒得 所以,只好灰常无语了 |
|
| 返回顶楼 | |
|
时间:2007-06-05
jasongreen 写道 你翻译了IoC和DI,不能说明IoC和DI就如何如何,用都用过了,还差google一下。
苍白的反驳,恰恰证明了我关于国人盲从的论点。 sigh sigh,是阿是阿 不过在说别人“苍白”之前,是不是应该至少了解一下别人很久以前就说过很多遍的话到底是什么呢? 不盲从、不苍白、有思想、有深度的楼主? |
|
| 返回顶楼 | |
|
时间:2007-06-05
gigix 写道 ……
灰常无语 为什么灰常无语呢? 因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式 但还是有这样的筒子 洋洋千言之前连google一下都懒得 所以,只好灰常无语了 马丁叔叔就是火星来的,你还翻译火星文,就是等于画蛇添足 最烦你们这种整天炒作名词的,今天AOP,明天MOP,今天IOC,明天CIO,一点技术含量都没有。 Spring就是烂泥,Hibernate就是难用,下载了他们成千上万次的那些家伙就是盲从,楼主一人独醒,偶们皆睡。 楼主千秋万载,一桶浆糊,偶在睡梦中投楼主精华一票 |
|
| 返回顶楼 | |
|
时间:2007-06-05
Readonly 写道 gigix 写道 ……
灰常无语 为什么灰常无语呢? 因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式 但还是有这样的筒子 洋洋千言之前连google一下都懒得 所以,只好灰常无语了 马丁叔叔就是火星来的,你还翻译火星文,就是等于画蛇添足 最烦你们这种整天炒作名词的,今天AOP,明天MOP,今天IOC,明天CIO,一点技术含量都没有。 Spring就是烂泥,Hibernate就是难用,下载了他们成千上万的次那些家伙就是盲从,楼主一人独醒,偶们皆睡。 楼主千秋万载,一桶浆糊,偶在睡梦中投楼主精华一票 恩恩……很有道理…… 我也要投精华一票 |
|
| 返回顶楼 | |
|
时间:2007-06-05
嗯,来吧,就让暴风雨来的更猛烈一些吧!
|
|
| 返回顶楼 | |
|
时间:2007-06-05
其实Rod Johnson也觉得老是用xml配来配去太麻烦了, 所以spring还有一个子项目叫JavaConfig, take a glance at this link:http://www.springframework.org/javaconfig
|
|
| 返回顶楼 | |
|
时间:2007-06-05
有MM加油,happpy
|
|
| 返回顶楼 | |
|
时间:2007-06-05
不正经儿了不是~
|
|
| 返回顶楼 | |
|
时间:2007-06-05
潜水N年不能投票,,,
不过不想跟上面几位那么不厚道 楼主你想想,你这样做没解耦啊。你这样写HelloWorld的确是没问题,但是应用开发哪有这么简单? 引用 Aop和事务管理,何必一定完全交给IoC框架呢,自己编码啊
支持你搞出一个象模象样的来,我一定顶你的 |
|
| 返回顶楼 | |










