- 浏览: 598852 次
- 性别:
- 来自: 安徽
文章分类
最新评论
-
jianxin1009:
你说的答案是对的
Re: 一道微软的面试题(年薪40万) -
thrillerzw:
应该相信爱情
忽然相信爱情。。。 -
weng:
jaxchow 写道mikeandmore 写道我觉得国外之所 ...
国外项目的代码质量真是高啊 -
cinhoo:
怎么也应该叫大蛇蛋才对嘛
lazypy 这个小蛇蛋不错 -
rosolio:
这个怎么解决?
Hibernate Annotation的中@ManyToOne和CascadeType问题
决定把在javaeye上最后一点积分用光,大家投隐藏吧,投新手吧,不过我还是要说,盲从--中国程序员的悲哀。
尝试是好事,盲从就不好了。
现在我开始尝试使用一种简单的方式来构建对象,获取对象。可称之为ContextHolder模式。
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,舒服。
别的俺就不多说了,各位已经通通说了,就想问下:对于从事java一年来的你对2M的spring了解了多少呢?
马丁叔叔就是火星来的,你还翻译火星文,就是等于画蛇添足
最烦你们这种整天炒作名词的,今天AOP,明天MOP,今天IOC,明天CIO,一点技术含量都没有。
Spring就是烂泥,Hibernate就是难用,下载了他们成千上万次的那些家伙就是盲从,楼主一人独醒,偶们皆睡。
楼主千秋万载,一桶浆糊,偶在睡梦中投楼主精华一票
我看见精华是零,所以帮你投了一票 反正不会影响这个帖子的历史使命(被BS)
大家都是吃饭滴,火星人要吃,我也要吃。。。。。。
就像历史总是在变的,筒子难免有拨乱反正的时候。。。但是不能做愤青,记得,要感化,时不时也得棒棒糖和棒棒一起上 这句和楼主的观点不完全相关
aop和事务管理,何必一定完全交给IoC框架呢,自己编码啊。
我实在不明白你的意思!也不明白你为什么想自己编码。我实在是奇怪了
您的要求真是挺高
都已经投了精华,还有意见
Readonly,出来看上帝……
尝试是好事,盲从就不好了。
现在我开始尝试使用一种简单的方式来构建对象,获取对象。可称之为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,舒服。
评论
62 楼
liusong1111
2007-06-18
行啦,观点没啥好讨论的,又不是水源,攻击性的话在这里省省吧,投隐藏吧。
--我刚才点"隐藏",它居然一下子就变成隐藏状态,原来就差我这一票啦,哈哈~
--我刚才点"隐藏",它居然一下子就变成隐藏状态,原来就差我这一票啦,哈哈~
61 楼
一杯白开水
2007-06-17
根据项目的配置,使用的场合不同,技术可以不同,架构也可以不同.而楼主现在碰到的情况在楼主看来使用spring真的是多此一举,楼主发此贴勇气可佳,希望楼主在接触更多的项目时对spring有新的看法.
引用Rod Johnso说的一句话: before we decide where we are going, we must know where we come from.
我们都身处不同的技术环境,所以我们对同一事物会有不同的看法,有的甚至大相径庭.所以建议大家多用用客观的角度考虑别人想法及观点.
引用Rod Johnso说的一句话: before we decide where we are going, we must know where we come from.
我们都身处不同的技术环境,所以我们对同一事物会有不同的看法,有的甚至大相径庭.所以建议大家多用用客观的角度考虑别人想法及观点.
60 楼
warren
2007-06-16
引用
......从事java的一年来......
别的俺就不多说了,各位已经通通说了,就想问下:对于从事java一年来的你对2M的spring了解了多少呢?
59 楼
frogfool
2007-06-14
难得技术贴也能这么搞笑
58 楼
basicbest
2007-06-14
Readonly 写道
gigix 写道
……
灰常无语
为什么灰常无语呢?
因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式
但还是有这样的筒子
洋洋千言之前连google一下都懒得
所以,只好灰常无语了
灰常无语
为什么灰常无语呢?
因为我两年前就翻译了Martin那篇IoC框架和Dependency Injection模式
但还是有这样的筒子
洋洋千言之前连google一下都懒得
所以,只好灰常无语了
马丁叔叔就是火星来的,你还翻译火星文,就是等于画蛇添足
最烦你们这种整天炒作名词的,今天AOP,明天MOP,今天IOC,明天CIO,一点技术含量都没有。
Spring就是烂泥,Hibernate就是难用,下载了他们成千上万次的那些家伙就是盲从,楼主一人独醒,偶们皆睡。
楼主千秋万载,一桶浆糊,偶在睡梦中投楼主精华一票
我看见精华是零,所以帮你投了一票 反正不会影响这个帖子的历史使命(被BS)
大家都是吃饭滴,火星人要吃,我也要吃。。。。。。
就像历史总是在变的,筒子难免有拨乱反正的时候。。。但是不能做愤青,记得,要感化,时不时也得棒棒糖和棒棒一起上 这句和楼主的观点不完全相关
57 楼
lllyq
2007-06-14
确实有点搞笑, 不过高手多数不屑一驳, 我来说说
为什么Spring要getBean, 因为要IOC, 你的ContextHolder当然也可以做到IOC, 与spring差别在于你要实现一层IOC, 你就要做一个ContextHolder, 做一个稍微复杂一点的项目估计维护ContextHolder就够呛, 而spring是一种全民福利的方式做到的, 每一个对象都拥有这个IOC能力, 比你大方吧, 另外spring的bean支持继承, 代理, AOP等方便的功能也不是几行代码就能完整的实现好的.
关于xml, 因为xml的无副作用的自由替换性, xml在某些场合是不可取代的, 或许说不能用好的方式取代, 举个简单例子, 运行环境与测试环境的datasource不一样, 可以做两份datasource的xml, 很容易通过不同的build参数切换。
还有你前面提到对spring配置中import xml拿来比较也没什么意思, 其实对于这种耦合性很强的方式我基本没看到有人用, 多数都是自动load符合条件的xml, 特别是对于很多子项目的项目, xml都打在jar/META-INF里面, 这是对配置文件的IOC,其实小项目也可以这样用,如果你关心自动测试而且需要细粒度的独立测试,没人愿意为了一个小小的修改要跑一个数十分钟的测试吧,xm搭积木的能力还是很强的
为什么Spring要getBean, 因为要IOC, 你的ContextHolder当然也可以做到IOC, 与spring差别在于你要实现一层IOC, 你就要做一个ContextHolder, 做一个稍微复杂一点的项目估计维护ContextHolder就够呛, 而spring是一种全民福利的方式做到的, 每一个对象都拥有这个IOC能力, 比你大方吧, 另外spring的bean支持继承, 代理, AOP等方便的功能也不是几行代码就能完整的实现好的.
关于xml, 因为xml的无副作用的自由替换性, xml在某些场合是不可取代的, 或许说不能用好的方式取代, 举个简单例子, 运行环境与测试环境的datasource不一样, 可以做两份datasource的xml, 很容易通过不同的build参数切换。
还有你前面提到对spring配置中import xml拿来比较也没什么意思, 其实对于这种耦合性很强的方式我基本没看到有人用, 多数都是自动load符合条件的xml, 特别是对于很多子项目的项目, xml都打在jar/META-INF里面, 这是对配置文件的IOC,其实小项目也可以这样用,如果你关心自动测试而且需要细粒度的独立测试,没人愿意为了一个小小的修改要跑一个数十分钟的测试吧,xm搭积木的能力还是很强的
56 楼
roki
2007-06-13
可爱啊
55 楼
aeolus
2007-06-13
没有人逼你用spring。
但对于公司来说使用spring的成本要比自己开发一套低很多。
左右不了这个行业,只能学着适应。
但对于公司来说使用spring的成本要比自己开发一套低很多。
左右不了这个行业,只能学着适应。
54 楼
抛出异常的爱
2007-06-13
七层的网络。。。。与tcp/ip
区别是一个是理想的,另一个是可以用的。
区别是一个是理想的,另一个是可以用的。
53 楼
floating
2007-06-13
楼主的思路我觉得也不能完全否定。spring究竟是程序员的春天还是噩梦我觉得倒不是主要的问题。真正的问题在于,身边的程序员,投入了过多的精力去研究所谓的“技术”,而没有考虑使用这样的技术的动机和原因是什么。看到过N多项目,划分N多层,结果呢,represent->control->service->domain->dao->po全是一一对应。仔细想一下,这样的做法倒真的还不如楼主的那种方案。:)
52 楼
topcloud
2007-06-13
楼主是想赚人气呀!
自己炒作自己!哈哈,
不当艺人是中国娱乐圈的最大损失呀
自己炒作自己!哈哈,
不当艺人是中国娱乐圈的最大损失呀
51 楼
hideto
2007-06-12
用Java、Spring、Hibernate开发Web就是捣鼓来捣鼓去,默默唧唧
本来服务器端代码量不大,非得从页面到持久层的一切的一切都要自己来处理,搞一堆什么DAO什么IOC什么乱七八糟的东西,繁琐的配置让人感觉编程就是受罪
反观Rails这种具有成熟DSL的框架,开发效率真不是一个数量级的
本来服务器端代码量不大,非得从页面到持久层的一切的一切都要自己来处理,搞一堆什么DAO什么IOC什么乱七八糟的东西,繁琐的配置让人感觉编程就是受罪
反观Rails这种具有成熟DSL的框架,开发效率真不是一个数量级的
50 楼
toostupid
2007-06-11
我之前用过一年多Spring, 但是我现在都不太知道什么是IOC...
所以我只能转用ROR
所以我只能转用ROR
49 楼
zhkchi
2007-06-11
我已经晕了。我不知道你们在说什么了!
48 楼
cangyo
2007-06-11
炎炎夏日,需要来一杯清醒茶,敝人愚见:楼主说得的确在理,但是框架带来的好处大家都是有目共睹,框架不是万能的,至少现在没有万能的框架,不盲从固然很好,所以什么东西都不能一秆子打死.任何事物都是一把双刃剑,会用剑的人,不会把剑割向自己,喜欢用什么剑趁手就用什么剑嘛,擅长空手道的人也是令人尊敬的哈!
47 楼
jameswei
2007-06-11
知其然不知其所以然。
46 楼
upyaya
2007-06-11
jasongreen 写道
aop和事务管理,何必一定完全交给IoC框架呢,自己编码啊。
我实在不明白你的意思!也不明白你为什么想自己编码。我实在是奇怪了
45 楼
dwangel
2007-06-10
说起画蛇添足和轮子,想起。
如果要一个能跑动的蛇形模型,似乎目前只能用轮子……
如果要一个能跑动的蛇形模型,似乎目前只能用轮子……
44 楼
gigix
2007-06-09
jasongreen 写道
部分支持我观点的回帖被删除了,我想说,javaeye这些个老人家,实在太霸道了。
您的要求真是挺高
都已经投了精华,还有意见
Readonly,出来看上帝……
43 楼
stamen
2007-06-09
Kao,这也精华帖,我都不得不粗口了,可见大家都喜欢哗众取宠的人,他说了一句评我垃圾帖啊,大家就精华帖。我现在终于找到发帖的经验了。
发表评论
-
与梁飞聊
2008-07-31 14:39 1369桂健雄 说: 做框架,做产品,做项目,还是做门户,是个头疼的问 ... -
javascript,css filter的使用
2008-05-19 23:02 0css。filter。。。。 -
Hook XML/Annotation:一种全新的配置方式
2008-04-07 11:01 1937姑且称这种配置方式叫做Hook。 通常,我们会使用xml,p ... -
程序员的三重境界
2008-03-24 16:58 1901见图。。。。。 -
管理机构
2008-02-16 02:23 2388商场如战场 道,天,地,将,法 1. 决策机构(道,天,地) ... -
goodbye,2007
2008-02-01 11:51 2579at 2007: 1. working harder,and ... -
为什么不自己做个数据库系统
2008-01-20 21:59 2792我所说的自己写DB,并不是要写一个像mysql一样功能强大齐全 ... -
web widget分类,你用的是哪种?
2008-01-18 11:50 43481. js对象式widget 优点:js端可以深度控制widg ... -
初涉webservice~~~
2007-11-04 00:16 1417之前搞过一次webservice,在weblogic下搞得,头 ... -
PHP vs JAVA vs Ruby,无奈的选择
2007-10-20 14:39 6985我一向是不屑于php和ro ... -
我选择组件一览
2007-10-19 11:18 1446freemarker 模板语言,用于生成页面代码 guice ... -
自己构思的MVC框架
2007-10-16 11:15 1560我除了是一个很懒惰的人,更是一个很吝啬的人,更加是一个不愿被约 ... -
框架为我所用,勿为框架所困
2007-05-12 14:50 7408我们已经被框架所包围 ... -
开发步骤小结
2007-04-28 13:18 13341. 建立svn项目,以前是先建项目再导入,发现这样并不好 2 ... -
项目失败的思考
2007-04-07 14:49 14361.鲁莽的追求新的开发框架 2.没有让组员提前学习必要的知识 ... -
可复用权限系统的思考
2007-04-06 18:22 86User{ String username; ... -
被我抛弃的开源框架
2007-03-20 20:20 266491. GWT ,它是个javascript的 ... -
[转]Spring 配置要点
2007-03-06 13:22 3372原文: http://wiki.javascud.org/di ...
相关推荐
注解redis缓存数据,Spring-session和redis实现分布式session同步(建议按功能模块划分系统)。 6、日志 =========== logback打印日志,业务日志和调试日志分开打印。同时基于时间和文件大小分割日志文件。 9、...
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...
14031069-SPRING BOOT实战=SPRING BOOT IN ACTION-p210.pdf
Spring AOP和IOC是Spring框架的核心特性,它们极大地简化了企业级Java应用的开发。AOP(面向切面编程)允许我们分离关注点,将横切关注点(如日志、事务管理)从核心业务逻辑中解耦出来。而IOC(控制反转)则是...
包含spring 3.0.5的所有jar文件: org.springframework.aop-3.0.5.RELEASE.jar org.springframework.asm-3.0.5.RELEASE.jar org.springframework.aspects-3.0.5.RELEASE.jar org.springframework.beans-3.0.5.RELEASE...
spring3.1官方所有的jar包 org.springframework.aop-3.1.RELEASE.jar org.springframework.asm-3.1.RELEASE.jar org.springframework.aspects-3.1.RELEASE.jar org.springframework.beans-3.1.RELEASE.jar org....
spring4.3.1全套jar下载。 4.3.1/spring-aop-4.3.1.RELEASE.jar 4.3.1/spring-aspects-4.3.1.RELEASE.jar 4.3.1/spring-beans-4.3.1.RELEASE.jar 4.3.1/spring-context-4.3.1.RELEASE.jar 4.3.1/spring-core-4.3.1....
在IT行业中,Spring框架是Java应用开发中的一个关键组件,它提供了一整套服务来简化企业级应用的构建。RabbitMQ则是一个流行的开源消息队列系统,它基于AMQP(Advanced Message Queuing Protocol)协议,用于高效地...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
spring boot 邮件发送,亲测可用 #字符集 spring.mail.default-encoding=UTF-8 #电子邮件地址 spring.mail.host=smtp.126.com #Application spring.application.name=SEND-MAIL #授权密码 spring.mail.password=...
Classes contained in spring-mock.jar: org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi....
在现代Java Web开发中,Spring Boot框架以其便捷的配置、快速的应用启动以及强大的依赖管理而备受推崇。Spring Data JPA是Spring生态系统中的一个重要组件,它为开发者提供了与JPA(Java Persistence API)交互的...
spring4.x中的jar包下载,spring4.0.6下载,spring最新稳定版jar包下载 http://maven.springframework.org/release/org/springframework/spring/ 这个链接中有各种稳定版的jar包下载 目前官网上大部分都要maven下载
Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: <?xml version="1.0" encoding="UTF-8"?> xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
标题“传智播客2016spring资料4”揭示了这是一份关于Spring框架的教育资料,特别关注的是2016年传智播客教学课程中的第四天内容。传智播客是一家知名的IT教育机构,其课程通常深入浅出,适合初学者和有一定经验的...
Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。Spring-4.2.4是该框架的一个稳定版本,为开发者提供了丰富的功能和改进。在这个版本中,Spring团队继续致力于提高性能、增强可维护性和...
《Spring Boot整合Mybatis与Druid数据库连接池的实践详解》 在当今的Java开发领域,Spring Boot以其简洁、高效的特点成为了主流的框架选择。它极大地简化了项目的配置和启动流程,使得开发者能够更加专注于业务逻辑...
Spring Recipes 3rd Edition Sources === These are the sources belonging to Spring Recipes 3rd Edition. Each chapter has its own sources and each chapter can contain multiple source snippets TOC --- ...
SpringQuartz是一个强大的任务调度框架,它在Java应用程序中用于自动化执行特定任务,如定时生成文件、统计数据或执行后台清理工作。Quartz是开源的,具有高度灵活的调度功能,能够根据预定义的时间表触发任务,同时...