仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1629|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Java 进修杂谈(十一):Spring仓酷云

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。笔者比来对照忙,一边在练习一边在寻觅来岁卒业更好的事情,不外论坛里的伴侣十分撑持小弟持续写,明天是周末,泡上一杯咖啡,持续与人人分享J2ee部分的进修履历。明天的主题是今朝很盛行也很好的一个开源框架-Spring。

援用《Spring2.0手艺手册》上的一段话:
Spring的中心是个轻量级容器,它是完成IoC容器和非侵进性的框架,并供应AOP观点的完成体例;供应对耐久层、事件的撑持;供应MVCWeb框架的完成,并关于一些经常使用的企业服务API供应分歧的模子封装,是一个全方位的使用程序框架,除此以外,关于现存的各类框架,Spring也供应了与它们相整合的计划。
接上去笔者先谈谈本人的一些了解吧,Spring框架的倡议者之前一本很出名的书名字也许是《J2eeDevelopmentwithoutEJB》,他倡始用轻量级的组件取代分量级的EJB。笔者还没有看完那本著作,只浏览了部分章节。个中有一点剖析以为是很有事理的:

EJB里在服务器端有WebContainer和EJBContainer,夙昔的概念是各层之间应当在物理上断绝,WebContainer处置视图功效、在EJBContainer中处置营业逻辑功效、然后也是EBJContainer把持数据库耐久化。如许的条理是很明晰,可是一个很严峻的成绩是WebContainer和EJBContainer究竟是两个分歧的容器,它们之间要通讯就得用的是RMI机制和JNDI服务,一样都在服务端,却物理上断绝,并且每次营业哀求都要远程挪用,有无需要呢?看来并不是断绝都是好的。

再看看轻量级和分量级的区分,笔者看过良多种说法,以为最有事理的是轻量级代表是POJO+IoC,分量级的代表是Container+Factory。(EJB2.0是典范的分量级组件的手艺)我们只管利用轻量级的Pojo很好了解,意义就在于兼容性和可顺应性,移植不必要改动本来的代码。而Ioc与Factory比起来,Ioc的长处是更年夜的天真性,经由过程设置能够把持良多注进的细节,而Factory形式,举动是绝对对照关闭流动的,临盆一个对象就必需承受它全体的特性,不论是否必要。实在轻量级和分量级都是绝对的观点,利用资本更少、运转负载更小的天然就算轻量。

话题扯远了,由于Spring框架带来了太多能够切磋的中央。好比它的非侵进性:指的是它供应的框架完成可让程序员编程却感到不到框架的存在,如许所写的代码并没有和框架绑定在一同,能够随时抽离出来,这也是Spring计划的方针。Spring是独一能够做到真实的针对接口编程,到处都是接口,不依附绑定任何完成类。同时,Spring还计划了本人的事件办理、对象办理和Model2的MVC框架,还封装了其他J2ee的服务在内里,在完成上基础都在利用依附注进和AOP的头脑。由此我们也许能够看到Spring是一个甚么观点上的框架,代表了良多优异头脑,值得深切进修。笔者夸大,进修并非框架,而是框架代表的头脑,就像我们现在学Struts一样……

1.SpringMVC
关于IoC和AOP笔者在上篇已略微注释过了,这里先经由过程Spring的MVC框架来给人人切磋一下Spring的特性吧。(究竟年夜部分人已很熟习Struts了,对照一下吧)
尽人皆知MVC的中心是把持器。相似Struts中的ActionServlet,Spring内里前端把持器叫做DispatcherServlet。内里充任Action的组件叫做Controller,前往的视图层对象叫做ModelAndView,提交和前往都大概要经由过滤的组件叫做Interceptor。

让我们看看一个从哀求到前往的流程吧:
(1)前台Jsp或Html经由过程点击submit,将数据装进了request域
(2)哀求被Interceptor拦阻上去,实行preHandler()办法出前置判别
(3)哀求抵达DispathcerServlet
(4)DispathcerServlet经由过程HandlerMapping来决意每一个reuqest应当转发给哪一个后端把持器Controller
(5)形形色色的后端把持器Controller来处置哀求,挪用营业层对象来处置营业逻辑,然后前往一个ModelAndView对象
(6)当Controller实行终了,Interceptor会挪用postHandle来做后置处置
(7)ModelAndView代表了出现画面是利用的Model数据对象和View对象,因为只能前往一个对象一切起了这个名字封装这两个对象。
(8)由ViewResolver对象来剖析每一个前往的ModelAndView对象应当出现到哪个视图(Jsp/Html等)中(包含ExceptionResolver)
(9)当View绘制完成以后Interceptor又会跳出来实行它的afterCompletion办法做善后处置。固然Interceptor的举动完整是设置的而不是强迫的。


如许一个完全的流程就如许停止了,团体感到Spring的MVC框架稍显庞大,不像Struts-1那末简单上手。不论是Controller、Model、ViewRosovler、HandleMapping仍是View,SpringMVC框架都已为你供应了多种完成,想最年夜水平的削减程序员的编码,增添框架的合用性。人人有乐趣能够持续深切研讨哈!

2.SpringAOP
记得最后笔者就教别人Spring是一个甚么工具的时分,每一个人城市提到AOP这个词语。笔者在上一篇已注释过AOP基础道理,此次来跟人人说说Spring的AOP编程吧。分歧的AOP框架会有其对AOP观点分歧的完成体例,次要的不同在于所供应的Pointcut、Aspects的丰厚水平,和它们怎样被织进使用程序、代办署理的体例等等。先熟习一下AOP中的几个主要观点:
(1)Cross-cutting:横切,说白了就是必要一致处置的汇合
(2)Aspects:将散落遍地的横切搜集起来,计划成各个自力可重用的对象称为Aspects。
(3)Advice:对横切的详细完成,即守候拔出一段逻辑。
(4)Joinpoint:Advice拔出流程的机会点。
(5)Pointcut:用于选择Joinpoint的程序布局,能够经由过程Annotation大概XML完成。
(6)Weave:Advice被使用至对象之上的历程称之为织进,有编译期、类加载期、运转期三种工夫点战略。

假如你接纳完成接口的体例,Spring会在实行时代合用java的静态代办署理,假如不完成接口,Spring会利用CGLIB发生代办署理类。AOP的观点很年夜很泛,而Spring只利用了个中的部分特征,究竟Spring的方针是轻量级框架,好比它只撑持对Method的Joinpoint,而不撑持对Field的Joinpoint,来由是为了封装性。

实在我们能够把观点看得复杂一点,AOP的目标是削减冗余代码,加强对较年夜项目标全局监控。Spring使用AOP能够划定一个汇合和一套划定规矩,在这个汇合里一切的办法被invoke即挪用的时分,都必需依照那套划定规矩走一遍。那末起首对个中10个办法都要用到的处置代码就只用写一遍,假如是这10个办法来了就织进这段代码;其次,依照划定规矩,大概一切的牵涉某个模块的办法挪用的时分,我都必要做日记大概举行考证,那末我只需存身于这个汇合的出口和出口,管他从那里往复那里,都能被无效的监控。我监控的大概不止是某个办法独自的举动,我还能够到场对流程把持的监控划定规矩。比方是论坛,我划定注册了才干登录,而登录后才干发帖回帖下资本,因而一切这类流程城市被搜集到我眼皮地下经由过程。

PS:笔者比来忙于找事情的事,没有太多履历在论坛跟人人收拾本人的条记。比来也只是打仗Spring的MVC对照多,关于Spring的其他特征,还没有更多的往理论,以是仅仅是平常而谈,只是先容一个印象而已。仍是那句话,我们进修一个框架不是怎样利用,而是它所带来的优异的头脑和理念,这好比何利用这个框架更成心义很多
来自:http://topic.csdn.net/u/20070924/21/18482496-082f-4907-8751-b80ab5d56622.html?seed=1386683868

java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
小妖女 该用户已被删除
沙发
发表于 2015-1-19 19:24:15 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-24 15:28:41 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
若天明 该用户已被删除
地板
发表于 2015-2-1 19:46:43 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
柔情似水 该用户已被删除
5#
发表于 2015-2-1 22:49:41 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-3 15:50:24 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
海妖 该用户已被删除
7#
发表于 2015-2-7 00:53:00 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
小魔女 该用户已被删除
8#
发表于 2015-2-9 16:56:42 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
若相依 该用户已被删除
9#
发表于 2015-2-14 17:23:47 | 只看该作者
是一种使用者不需花费很多时间学习的语言
第二个灵魂 该用户已被删除
10#
 楼主| 发表于 2015-3-4 08:58:47 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
兰色精灵 该用户已被删除
11#
发表于 2015-3-10 19:11:00 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
山那边是海 该用户已被删除
12#
发表于 2015-3-11 10:17:56 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
分手快乐 该用户已被删除
13#
发表于 2015-3-13 23:07:14 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
只想知道 该用户已被删除
14#
发表于 2015-3-18 08:19:43 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
老尸 该用户已被删除
15#
发表于 2015-3-20 07:34:51 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
再见西城 该用户已被删除
16#
发表于 2015-3-22 17:10:34 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
深爱那片海 该用户已被删除
17#
发表于 2015-3-30 08:36:35 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
金色的骷髅 该用户已被删除
18#
发表于 2015-4-1 23:48:02 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
透明 该用户已被删除
19#
发表于 2015-4-6 20:11:23 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
简单生活 该用户已被删除
20#
发表于 2015-4-15 04:57:25 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表