本人对SPIRNG的一些看法,忘大伙指正

huchunlong999 2015-10-15 05:16:07
话说在前头,这只是我个人的看法,不一定对,写出来就是跟大伙讨论讨论,骂人的,说话阴阳怪气的,哥不侍候,直接删
干了八年的JAVA,这八年来啊,有两个问题一直困扰着我,一个是hibernate效率如此低下为什么一大半的项目还是要用hibernate(说hibernate没有效率问题的同学可能没做大数据量相关的活,五张百万级的表用hibernate联查,速度今人发指,就算不是百万表联查,当做大量数据添加修改的时候,效率仍远不及纯JDBC和IBATIS),这个问题前段时间一个大神给我说了一下,大神就是大神,解释得很完美,我服了,现在还有一个,那就是SPRING
说到SPRNG啊,大伙都能背书,有什么好处呢,框架之间的粘合剂哦,AOP能方便的控制事务和权限哦,IOC解耦哦,大多数是废话,SPRING最值得称道的是他的IOC,当然你会说他的AOP很屌,是很屌,但你用他做了什么,控制事务?控制权限?还有别的吗,这么屌的东西就干这两件实习生都能做活,意义何在,话说回IOC,SPRING的IOC是个完美的解耦工具,把以前的类与类直接的关联,改成了类对SPRING容器的依赖,主类根本不用管他调用了哪个类,SPRING自然会给你,确实很完美,绝对的0耦合,0耦合的意义在于后期维护,假设后期维护中,一个实现类要换了,直接改下配置文件就够了,SO,问题来了,实际的项目维护中,真有人换过吗,谁有这么大胆子,配置文件有人动,最多加个BEAN进去,但改以前的配置文件,换掉实现类,我干了八的,闻所未闻,这是不敢想象的,后期维护中,改别人一句代码都要千考虑万考虑,您直接换别人的实现类,出了问题谁负责任,实际情况也是从来就没人敢换过,项目上线了,类就定死了,不存在所谓耦合不耦合
我在这下个结论,个人的结论啊,可能不是很对,现在大多数项目用SPRING只是用到他的事务管理,而IOC,估计一大半的孩子不明白,为什么我要写接口
相当多的人说SPRING有利于后期维护,并且能提高开发效率,还有一些文章说什么SPRING把代码量精减到了以前的2/3,我真不知道他做的是什么系统,这些话,个人不同意,我同样不认为离开SPRING,事务和权限的控制是麻烦事
...全文
462 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltolll 2015-10-29
  • 打赏
  • 举报
回复
多数编程工具(语言, 框架...)都是妥协的工具, 有可能开发效率高了执行效率低了, 容易上手的功能又不够强大... 多数编程工具(语言, 框架...)都是领域性工具, 有的适合操作系统编程但应用开发不行, 有的适合桌面开发但Web开发又很弱. 多数编程工具(语言, 框架...)都是阶段性工具, 刚开始学Web开发可能会用servlet+jsp, 学了构架开始用Struts2, Spring, 成了高手了觉得现有框架都不爽就自己开发框架. 所以,Spring只不过是当前这个时期, 大量程序员认为在各方面相对平衡, 相对合理比较省时省力适合自己的一个选择. 如果未来出现了更好的框架(Summer? autumn?), 面对更好的选择, 大家也一定用脚投票的. 虽说程序员中不乏某种工具的卫道士, 但更多的是见风使舵的"墙头草", 只要时间允许, 追求新技术有什么不好呢?
huchunlong999 2015-10-26
  • 打赏
  • 举报
回复
引用 9 楼 jia20003 的回复:
干Java 11年了,搞过structs、也裸奔过servlet+jsp的项目 也玩过spring3 MVC hibernate项目 个人总结一下: hibernate这个东西让你都忘记SQL语句了,也忘记怎么建表了,开发效率的确提高了 spring3 MVC事务管理的确变简单了,有了controller那些东西,可以省去一堆配置 包扫描一下就启动可以直接用了, 本质上一句话,提高了开发效率、帮老板快速达成商业目标,而且还容易学习,学习曲线不是太陡 至于说其它的那些特性,都是鬼扯,骗骗技术小白,让他们学着开心点,好玩点而已! 如果说你能搞出一种框架,在学习成本不变的情况下,开发效率比spring和hibernate还高, 老板也会考虑让下面的人都学的, 技术进步永远靠商业驱动、这个是内因。 马克思早就说过,社会需求比十所大学还能推动技术进步,一旦有商业利益,有人砸钱、就会有一堆人去搞
哦,SPRING有些所谓的NB之处确实他妈鬼扯,忽悠了一堆人
huchunlong999 2015-10-26
  • 打赏
  • 举报
回复
引用 9 楼 jia20003 的回复:
干Java 11年了,搞过structs、也裸奔过servlet+jsp的项目 也玩过spring3 MVC hibernate项目 个人总结一下: hibernate这个东西让你都忘记SQL语句了,也忘记怎么建表了,开发效率的确提高了 spring3 MVC事务管理的确变简单了,有了controller那些东西,可以省去一堆配置 包扫描一下就启动可以直接用了, 本质上一句话,提高了开发效率、帮老板快速达成商业目标,而且还容易学习,学习曲线不是太陡 至于说其它的那些特性,都是鬼扯,骗骗技术小白,让他们学着开心点,好玩点而已! 如果说你能搞出一种框架,在学习成本不变的情况下,开发效率比spring和hibernate还高, 老板也会考虑让下面的人都学的, 技术进步永远靠商业驱动、这个是内因。 马克思早就说过,社会需求比十所大学还能推动技术进步,一旦有商业利益,有人砸钱、就会有一堆人去搞
哥们说得挺好的,跟我想得一样,你对hibernate的看法和我说的那个大神一模一样,老板管什么慢不慢的,做东西快就行了质量他不管,你对SPRING用的绑架这个词很准,现在JAVA程序员言必称SPRING,这玩意感觉就是件皇帝的新装,你说他不屌,那你就是SB,其实作用没那么大,也就管管事务,他的MVC也能用,但根本不是很多人说的那么神,不用完全没问题
gloomyfish 2015-10-22
  • 打赏
  • 举报
回复
你真的以为spring社区不赚钱、他们每年通过收取培训费用与技术支持、图书出版 人家已经发死了,从你开始学习spring技术的那天起,人家就开始从你身上赚钱 你已经被它绑架了,只是可能你还不没意识到而已。
gloomyfish 2015-10-22
  • 打赏
  • 举报
回复
干Java 11年了,搞过structs、也裸奔过servlet+jsp的项目 也玩过spring3 MVC hibernate项目 个人总结一下: hibernate这个东西让你都忘记SQL语句了,也忘记怎么建表了,开发效率的确提高了 spring3 MVC事务管理的确变简单了,有了controller那些东西,可以省去一堆配置 包扫描一下就启动可以直接用了, 本质上一句话,提高了开发效率、帮老板快速达成商业目标,而且还容易学习,学习曲线不是太陡 至于说其它的那些特性,都是鬼扯,骗骗技术小白,让他们学着开心点,好玩点而已! 如果说你能搞出一种框架,在学习成本不变的情况下,开发效率比spring和hibernate还高, 老板也会考虑让下面的人都学的, 技术进步永远靠商业驱动、这个是内因。 马克思早就说过,社会需求比十所大学还能推动技术进步,一旦有商业利益,有人砸钱、就会有一堆人去搞
huchunlong999 2015-10-16
  • 打赏
  • 举报
回复
谢谢大伙热心回复,不过我实在有点流汗了,据我所知,实际生产运行中,服务器内存不够的情况是极少发生的,不管你没有用SPRING,我自己干这么年生产运行中只遇上两次,这种情况的发生,大半是因为没经验的小孩和一些不负责任的老程序员,把大量数据往map,list里放,而因为new对象导致内存不够,我是没见过,java之所以让你new,而不强调让你new完销毁,就是因为他的自动垃圾回收机制,他不会让垃圾对象长驻内存的,现在的服务器动辄几十G的内存,虽然不会让你的WEB容器全用,但也不是new对象能占满的,大伙都用SPRING,你想想,你所有的bean都是让spring托管的吗,难道你一个new都没用过,按你的说法,就算你只用了一个new,那都是隐患,因为占了内存,而且现在也不是所有的项目都会用spring,是不是他们的项目都有内存不足的隐患呢,难道他们每new完一个对象用完后都写代码销毁
w543705344 2015-10-16
  • 打赏
  • 举报
回复
引用 4 楼 huchunlong999 的回复:
还有一种说法,说SPRING的强大功能之一,是他帮你初始化了所有的bean,你再也不用一个个去new了,听得我目瞪口呆,我都不知道说什么
的确算是好处 不然每个人都new很多service跟dao 内存会不够用
w543705344 2015-10-16
  • 打赏
  • 举报
回复
spring干什么的我现在也不是很了解 按我的经历spring是用来做注入的 就是接口跟实现的对接 实例化接口 的确是帮我们new一个对象 不过不一样的是好像这个对象是静态的 不会被回收 相当于我们都是调用静态方法 如果是这样的 那好处很大 不用再new 这样运行会快很多 创建一直存在的对象 那么 内存用的也少 不然一个用户就new一个对象 那服务器内存肯定不够用 哦 如果是这样的话。。那service跟action的区别就出来了 ssh框架 spring都是注入service跟dao 没有对action进行注入 可能action跟service的区别就是这个了 你说的那些应该属于hibernate跟spring的整合。。。感觉spring有点无辜。。。所以很多人不喜欢hibernate 。嗯 我也不喜欢。 话说hibernate 有多表关联啊 多表的时候根本没办法用hql语句吧 一般都是用SQL语言 用了SQL那hibernate 有啥意义 嗯。。 hibernate 也有一种是用视图来做多表关联查询 只是要再造一个视图跟类还有要配置 我只能说这么麻烦 我就用那么一两处而已 为嘛还要我建那么多东西 至于数据库的增删改查功能 我感觉新手经常错在没有考虑类型转换才是 经常出现null错误不判断错误什么的 至于还有数据库语句都没写好的我也无力吐槽 还有一些算不上是数据库问题 只是查的时候没返回数据TM的就报错了 原因是service或者Aaction或者页面jsp没有考虑没有数据的情况 OMG!这情况不出问题我还真看不出来 要看经验
stacksoverflow 2015-10-16
  • 打赏
  • 举报
回复
引用 4 楼 huchunlong999 的回复:
还有一种说法,说SPRING的强大功能之一,是他帮你初始化了所有的bean,你再也不用一个个去new了,听得我目瞪口呆,我都不知道说什么
我挺你,哥们。 说说个人的看法,spring是个好东西,但大部分人都用不好,让每个程序员都来配置spring的话,那将是个悲剧。 最好一两个高手把它封装好。对程序员透明。 如果做不到上面的话,就不要用这些五花八门的东西。 我喜欢AK47,因为他设计简单实用。 NND现在JAVA程序员遍地都是,没几个技术好的。 还TMD这个设计那个设计,连TMD添删改查都要弄出一大堆BUG。
huchunlong999 2015-10-16
  • 打赏
  • 举报
回复
还有一种说法,说SPRING的强大功能之一,是他帮你初始化了所有的bean,你再也不用一个个去new了,听得我目瞪口呆,我都不知道说什么
huchunlong999 2015-10-16
  • 打赏
  • 举报
回复
感谢哥们的指点 不过你这话要搁五年前我真会信
月凉西厢 2015-10-16
  • 打赏
  • 举报
回复
Spring的很多特性被程序员使用并认为是理所应当的,然而这些所谓的“理所应当的特性”却是Spring精心设计的。还有就是你现在用不到的特性并不代表以后不会用到,更不代表别人不会用到。spring可不仅仅只是为你的项目服务的。还有0耦合,Spring是低耦合而并不是0耦合!如果类与类之间完全没有耦合,它们什么事务也完成不了
这个逗b 2015-10-15
  • 打赏
  • 举报
回复
是啊,前人用Spring写的代码 除了问题 ,看了半天 不敢改。一个字段 这个表用下 哪个表用下。 生怕 改一个小的实现类。整个项目GG
源码链接: https://pan.quark.cn/s/8ddf8a1c92f9 **libcurl用于获取大型文件**libcurl作为一个开源的C语言库,提供了一系列的API来处理与URL相关的任务,涵盖了HTTP、FTP、SMTP等多种网络协议的应用。在执行大型文件的下载操作时,libcurl展现出卓越的性能表现和高度的灵活性,能够高效地管理大文件传输过程,有效预防内存溢出及其他潜在问题。**libcurl的基础操作**libcurl的基础应用包括以下几个环节:1. **初始化**:需要借助`curl_global_init()`函数来启动libcurl的工作环境。2. **建立会话句柄**:通过`curl_easy_init()`函数创建一个会话句柄,该句柄将用于后续所有的操作流程。3. **配置选项**:运用`curl_easy_setopt()`函数来设定多种参数,例如目标URL、超时时间、重试次数以及数据写入的回调函数等。4. **执行请求**:调用`curl_easy_perform()`函数来实施下载操作。5. **释放资源**:使用`curl_easy_cleanup()`函数来释放已经占用的资源。**获取大型文件时的重要设置**1. **数据写入回调函数**:在处理大型文件下载时,通常不希望一次性将整个文件载入内存。可以配置`CURLOPT_WRITEFUNCTION`选项,指定一个回调函数来处理接收到的数据片段,这样libcurl在接收到数据时会调用该函数,使得我们可以按需将数据写入文件或缓冲区。2. **缓冲策略**:可以设定缓冲区的大小(比如,通过`CURLOPT_BUFFERSIZE`),来控制每次接收数据的数量,从而优化内存...

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧