锁定老帖子 主题:Spring--也许正成为一个EJB
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-15
wl95421 写道 引用 也没看出来你有啥有建设性的建议,最搞笑的是你主贴没啥观点,返回来还大量应用回帖的内容充实你的主贴
我有没有提出来建议吗? 我说Tuscany用JDK的ServiceLoader来支持自身的架构,有兴趣的朋友可以去看一下,那种方式不见得比Spring的配置差。 有兴趣的朋友去看一下NetBeans的Lookup,也能学到很多东西。 我已经提出来了,但有几位去看了呢?只是在质疑我? 很多人根本就没有去看过我说的这些东西,没有了解更多的内容,就是在质疑。 另外“面向接口”这个说法被误解了,我也在主贴中给出了说明,虽然不什么建设性的建议,也至少表明了自己的观点吧。然后说Spring被滥用,有误导倾向。 难道我一定要给出一个方案,才算是有建设性的建议吗? 我也没有用别人的内容来充实自己的主贴,只是对别人的提问加以回答,这也算是盗用吗? 引用 楼主不是一个实在人!
至于我是否实在,我不评价。 我只是希望大家更多地独立思考。 能够对Spring质疑,然后思考自己的用法,然后正确地使用Spring,也同样是好事情。 总比没有人质疑要好一些吧。 就算去看看我上面提到的一些东西,也不算是坏事吧。 +1 思考 |
|
返回顶楼 | |
发表时间:2011-04-15
插一嘴,spring被用滥的很大一部分原因是很多项目把spring容器只作为一个层面考虑,就好像是一个冰箱,不管好的坏的新鲜的都往里面塞,结果新鲜的和过期的配置堆在了一起,改起来又怕牵一发动全身,结果配置文件越来越大,越来越多,越来越乱。假如把bean引用的拓扑图拿出来,像蜘蛛网一样。spring作为一个冰箱应该层次分明,同等新鲜程度的东西应该放一起,一次IOC注入超过5个以上的相同类型的bean考虑简化,配合Ant,把配置管理部分采用自动化的方式,减少配置时间,把蜘蛛网整理成树形结构才是较好的解决办法。annotation的使用必须制定一些限制原则,以免一些“神秘”“灵异”的事件发生。
|
|
返回顶楼 | |
发表时间:2011-04-15
我很期待出现一个without spring,就像当年出现了without ejb一样。
不过一路看来,还没有一个可以without spring的真正理由。 另外有些讨论的人连spring是怎么出现并席卷全球的都不知道。 如果连spring解决了什么问题都没搞清楚,很难想象能提出什么值得一看的观点来。 |
|
返回顶楼 | |
发表时间:2011-04-15
支持LZ,有自己的想法,大胆猜想,而且证实过,中国冷嘲热讽的人多,崇拜权威的人多,有自己思想的少
老师:请谈一下对于其他国家粮食短缺的自己的看法? 美国学生:什么是其他国家? 非洲学生:什么是粮食? 欧洲学生:什么是短缺? 中国学生:什么是自己的看法? |
|
返回顶楼 | |
发表时间:2011-04-15
spring从2.x时候就该停下来了。 往后就是在画蛇添足。
|
|
返回顶楼 | |
发表时间:2011-04-15
最后修改:2011-04-15
赞同楼主意见!
我就是为了接口而接口那种。。。。 接口中方法都是具体的。。。如果条件变了,要从service改到dao接口和实现类都要改。。。。。 那个烦啊 ![]() 想请教问楼主和各位前辈如何避免这种滥用情况? ![]() 不知道这个问题表达的对不对 呵呵。。。 还请各位请教 ![]() |
|
返回顶楼 | |
发表时间:2011-04-15
引用 我有没有提出来建议吗? 我说Tuscany用JDK的ServiceLoader来支持自身的架构,有兴趣的朋友可以去看一下,那种方式不见得比Spring的配置差。 有兴趣的朋友去看一下NetBeans的Lookup,也能学到很多东西。 我已经提出来了,但有几位去看了呢?只是在质疑我? 很多人根本就没有去看过我说的这些东西,没有了解更多的内容,就是在质疑。 另外“面向接口”这个说法被误解了,我也在主贴中给出了说明,虽然不什么建设性的建议,也至少表明了自己的观点吧。然后说Spring被滥用,有误导倾向。 难道我一定要给出一个方案,才算是有建设性的建议吗? 你说的这个ServiceLoader 你这么一说我还真去Google了一下 一下摘自IBM的一片文章 引用 2. ServiceLoader Java 开发人员经常希望将使用和创建组件的内容区分开来。这通常是通过创建一个描述组件动作的接口,并使用某种中介创建组件实例来完成的。很多开发人员使用 Spring 框架来完成,但还有其他的方法,它比 Spring 容器更轻量级。 java.util 的 ServiceLoader 类能读取隐藏在 JAR 文件中的配置文件,并找到接口的实现,然后使这些实现成为可选择的列表。例如,如果您需要一个私仆(personal-servant)组件来完成任务,您可以使用清单 2 中的代码来实现: 清单 2. IPersonalServant public interface IPersonalServant { // Process a file of commands to the servant public void process(java.io.File f) throws java.io.IOException; public boolean can(String command); } can() 方法可让您确定所提供的私仆实现是否满足需求。清单 3 中的 ServiceLoader 的 IPersonalServant 列表基本上满足需求: 清单 3. IPersonalServant 行吗? import java.io.*; import java.util.*; public class Servant { public static void main(String[] args) throws IOException { ServiceLoader<IPersonalServant> servantLoader = ServiceLoader.load(IPersonalServant.class); IPersonalServant i = null; for (IPersonalServant ii : servantLoader) if (ii.can("fetch tea")) i = ii; if (i == null) throw new IllegalArgumentException("No suitable servant found"); for (String arg : args) { i.process(new File(arg)); } } } 假设有此接口的实现,如清单 4: 清单 4. Jeeves 实现了 IPersonalServant import java.io.*; public class Jeeves implements IPersonalServant { public void process(File f) { System.out.println("Very good, sir."); } public boolean can(String cmd) { if (cmd.equals("fetch tea")) return true; else return false; } } 剩下的就是配置包含实现的 JAR 文件,让 ServiceLoader 能识别 — 这可能会非常棘手。JDK 想要 JAR 文件有一个 META-INF/services 目录,它包含一个文本文件,其文件名与接口类名完全匹配 — 本例中是 META-INF/services/IPersonalServant。接口类名的内容是实现的名称,每行一个,如清单 5: 清单 5. META-INF/services/IPersonalServant Jeeves # comments are OK 然后在JDK的doc里看到这个字样 引用 Since: 1.6 我被你的"单纯"震精了,话说,spring那一年出现的,那时jdk1.6 ,哦,连jdk1.5也都还没有怀胎 这个ServiceLoader 只实现了spring其中小小一部分的内容,你就拿来说这是建设性的意见 你确定你不是开玩笑,你叫程序员每次都去改那个叫META-INF/services 的东西,是木是, 里确定你了解spring目前的地位,和作用, 共产主义是 marks 提出来的,可是 marks 流离失所,还要列宁包装成社会主义才能鼓动人 所以我说你适合鼓动人一点都没错 我承认,回这个帖子,我也是处于无聊..................... |
|
返回顶楼 | |
发表时间:2011-04-15
最后修改:2011-04-15
楼上的,我也无语了。
首先这个东西,早在Spring之前就出现了,只不过Sun一直没有公开,所以才少为人知。 另外,如果你觉得这个东西小,那么Tuscany可以基于它来完成整个的架构。同样NetBeans的Lookup也少得可怜,功能很强。 至于要不要修改META-INF/services,我更觉得无语了,为什么要修改啊。 给个实际的例子吧。比如说我现在有一个模型,要输出为指定的格式。 写一个IExporter接口,然后除了export方法以外,再加一个isAcceptable方法和一个getPriority方法,就可以通过这种方法很灵活地加载自己需要的实现类。 这种需求下,是Spring灵活还是ServiceLoader呢? 我不是说ServiceLoader比Spring好,我始终只是在说,Spring现在被严重误用。 大家多思考一下,看一些外面的东西,有什么不好。 |
|
返回顶楼 | |
发表时间:2011-04-15
一帮无聊的人,吵什么吵。就像原来有人喜欢青山菜菜,后来我喜欢苍井空,你非要说苍井空不好,你说你喜欢87年的麻美由真或者88,89年的XXX。好吧。你们就吵吧。
|
|
返回顶楼 | |
发表时间:2011-04-15
最后修改:2011-04-15
与其说Spring正在成长为一个EJB,不如承认Spring正在成熟,Spring的生态环境已经是一个小地球了选择Spring
|
|
返回顶楼 | |