论坛首页 入门技术论坛

spring=画蛇添足

浏览 41405 次
该帖已经被评为隐藏帖
作者 正文
   发表时间: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,舒服。
   发表时间:2007-06-05  
……
灰常无语
为什么灰常无语呢?
因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式
但还是有这样的筒子
洋洋千言之前连google一下都懒得
所以,只好灰常无语了
0 请登录后投票
   发表时间:2007-06-05  
jasongreen 写道
你翻译了IoC和DI,不能说明IoC和DI就如何如何,用都用过了,还差google一下。
苍白的反驳,恰恰证明了我关于国人盲从的论点。

sigh sigh,是阿是阿
不过在说别人“苍白”之前,是不是应该至少了解一下别人很久以前就说过很多遍的话到底是什么呢?
不盲从、不苍白、有思想、有深度的楼主?
0 请登录后投票
   发表时间:2007-06-05  
gigix 写道
……
灰常无语
为什么灰常无语呢?
因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式
但还是有这样的筒子
洋洋千言之前连google一下都懒得
所以,只好灰常无语了

马丁叔叔就是火星来的,你还翻译火星文,就是等于画蛇添足
最烦你们这种整天炒作名词的,今天AOP,明天MOP,今天IOC,明天CIO,一点技术含量都没有。
Spring就是烂泥,Hibernate就是难用,下载了他们成千上万次的那些家伙就是盲从,楼主一人独醒,偶们皆睡。
楼主千秋万载,一桶浆糊,偶在睡梦中投楼主精华一票
  • 大小: 93.5 KB
0 请登录后投票
   发表时间:2007-06-05  
Readonly 写道
gigix 写道
……
灰常无语
为什么灰常无语呢?
因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式
但还是有这样的筒子
洋洋千言之前连google一下都懒得
所以,只好灰常无语了

马丁叔叔就是火星来的,你还翻译火星文,就是等于画蛇添足
最烦你们这种整天炒作名词的,今天AOP,明天MOP,今天IOC,明天CIO,一点技术含量都没有。
Spring就是烂泥,Hibernate就是难用,下载了他们成千上万的次那些家伙就是盲从,楼主一人独醒,偶们皆睡。
楼主千秋万载,一桶浆糊,偶在睡梦中投楼主精华一票

恩恩……很有道理……
我也要投精华一票
0 请登录后投票
   发表时间:2007-06-05  
嗯,来吧,就让暴风雨来的更猛烈一些吧!
0 请登录后投票
   发表时间:2007-06-05  
其实Rod Johnson也觉得老是用xml配来配去太麻烦了, 所以spring还有一个子项目叫JavaConfig, take a glance at this link:http://www.springframework.org/javaconfig
0 请登录后投票
   发表时间:2007-06-05  
有MM加油,happpy
0 请登录后投票
   发表时间:2007-06-05  
不正经儿了不是~
0 请登录后投票
   发表时间:2007-06-05  
潜水N年不能投票,,,
不过不想跟上面几位那么不厚道
楼主你想想,你这样做没解耦啊。你这样写HelloWorld的确是没问题,但是应用开发哪有这么简单?

引用
Aop和事务管理,何必一定完全交给IoC框架呢,自己编码啊

支持你搞出一个象模象样的来,我一定顶你的
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics