JavaEE企业应用现状及趋势主讲人:李进华博士主办单位:武汉珞珈汇智IT实战精英培训中心电话:027-6786697713971349817EMAIL:Wisdom_IT@126.com创建日期:2006年9月15日珞珈汇智讲座内容n序言:编程的本质。n1,JavaEE简介n2,JavaEE现状及趋势n3,新兴编程语言n4,就业现状及对策分析珞珈汇智序言:编程的本质n编程不是简单的Coding。——高明的程序员不仅仅是会砌房子的泥瓦匠,而且是拥有高超设计理念的建筑师。n程序设计的基本准则n健壮性n可扩展性n可测试性n可配置性n可实施性n可维护性n完备的注释和文档珞珈汇智序言:编程的本质n如何成为编程高手?n(1)必须具备的基本知识架构:n编程语言n数据结构与算法n计算机体系结构n编译原理n数据库原理珞珈汇智序言:编程的本质n如何成为编程高手?(续)n(2)高手锻造公式:开发高手=系统的业务知识+高超的编程技巧珞珈汇智序言:编程的本质n学习软件开发的建议:n垒实基础,不要一开始就尝试最高深的技术。n阅读经典代码,研究和掌握其中优秀设计思想。nJavaEE经典代码:nPetstore,JPetstore,Jive,Appfusen书看千遍不如做程序一遍,应该尽量尝试去写程序。n做程序千个不如做好程序一个。n知识的广度和深度并重。n中国软件开发业的现实:专业分工不细,一人兼任多职n多上一些技术型网站n://://珞珈汇智1.JavaEE简介n(1)JavaEE常用技术n(2)MVC开发模式n(3)搭建JavaEE开发环境n(4)开发示例珞珈汇智(1)JavaEE常用技术nJavaEE:JavaEnterpriseEdition,其主要技术构成:珞珈汇智(1)JavaEE常用技术nJSP,JavaServerPage-J2EE的表示层技术,用于生成用户界面;nServlet-用于程序流程和结构控制;nJDBC,JavaDatabaseConnection-J2EE数据库访问;nEJB,EnterpriseJavaBean-J2EE中间层,完成商业逻辑,曾经被视为J2EE技术的核心;nJMS,JavaMessageService-J2EE的异步消息队列;nJAXP,JavaAPIforXMLParsing–用于XML文件的解析;nJTA,JavaTransactionAPI–Java事务API,进行事务划分和管理;nJavaMail–用来处理邮件的发送和接收的API;nApplet-使用的范围已经收到严格限制,被其他技术给取代;珞珈汇智(2)MVC模式简介nMVC:Model-View-Controller,中文名为“模型-视图-控制”珞珈汇智(2)MVC模式简介n目的:MVC模式把涉及数据管理、业务流程和信息显示的功能分散到不同的对象上,降低对象间的耦合n各部分功能:n模型部分代表了商业数据的访问和修改等操作,如:EJB,Hibernate,JDOn视图部分以用户自定义的方式显示模型的内容或者接受用户的输入,如:JSTL,Struts表示部分n控制部分定义了应用的行为,并控制程序流程,如Spring,Struts等开源框架珞珈汇智(3)搭建JavaEE开发环境n软件列表:n开发工具:nEclipse+MyEclipsenWebSphereApplicationStudioDevelopern应用服务器:nTomcat、WebSphereApplicationServer、Weblogicn数据库:nOracle、SqlServer、MySql珞珈汇智开发环境示意图MyEclipse数据库应用服务器集成开发工具TomcatOracle发布应用存取数据珞珈汇智(3)搭建JavaEE开发环境n以(Eclipse+MyEclipse)+Tomcat+Oracle为例搭建开发环境n下载软件:nJ2sdk1.4.2(免费)(免费):(收费,试用版需注册):(免费):(免费但需要注册,严禁商业用途):珞珈汇智(3)搭建JavaEE开发环境n安装步骤n一,安装JDK,n直接点击安装,选定安装目录时,最好是将JDK安装在根目录,而且目录名中最好没有空格。比如:D:\j2sdkn设定系统参数n在Path参数里增加”D:\j2sdk\bin”n增加系统参数参数名为:JAVA_HOME值为:D:\j2sdkn见下图珞珈汇智JDK系统参数设置界面珞珈汇智①②③④(3)搭建JavaEE开发环境n二,将Eclipse解压直接拷贝到某个磁盘的根目录下,比如d:\Eclipse3.1n三,安装MyElipsen见下图珞珈汇智A.安装初始界面珞珈汇智B.设置Eclipse安装路径珞珈汇智①②③珞珈汇智B.设置Eclipse安装路径(续)C.启动界面珞珈汇智(3)搭建JavaEE开发环境n四,安装和配置TomcatnTomcat安装比较简单,注意:最好直接安装在根目录下。比如:D:\tomcatn在系统参数中增加如下参数:n参数名:TOMCAT_HOMEn参数值:d:\tomcatn将Tomcat设置为MyEclipse的应用服务器n见下图珞珈汇智A.设置应用服务器的菜单珞珈汇智B.设置Tomcat的Home参数珞珈汇智C.设置Tomcat的JDK参数(1)珞珈汇智①②C.设置Tomcat的JDK参数(2)珞珈汇智①②③④珞珈汇智C.设置Tomcat的JDK参数(3)D.应用服务器设置成功界面珞珈汇智(3)搭建JavaEE开发环境n五,安装Oracle(过程略)n在Windows平台下安装Oracle非常简单,只需按照缺省选项安装即可。n在Aix等Unix及RedHat等Linux平台下安装和配置Oracle是一项复杂技术,掌握它可以为寻找工作增加很大筹码。可以使用VMWare虚拟机在Windows平台上安装Linux,进而在Linux上练习安装Oracle,并学习管理及编程技巧。珞珈汇智珞珈汇智A,Windows平台上Linux的登录界面珞珈汇智B,Windows平台上的Linux桌面珞珈汇智C,Linux版Oracle的管理界面(4)开发示例n一,新建一个Web项目:n在Eclipse中依次点击“file--new--project”,在弹出的“newproject”对话框中依次点击“webproject--myeclipse--j2eeprojects--webproject”,再点“next”,在“projectname”中输入项目的名字“Test”,最后点“finish”。(见下图)珞珈汇智A.创建新Web项目界面(1)珞珈汇智A.创建新Web项目界面(2)珞珈汇智(4)开发示例n二,新建一个JSP页面n在eclipse左边PackageExplorer列表中点击“Test”,将项目Test展开。右键点击WebRoot--New--Jsp,新建一个名为test.jsp的JSP页面(见下图)珞珈汇智A.创建新JSP页面(1)珞珈汇智B.创建新JSP页面(2)珞珈汇智C.编辑JSP页面珞珈汇智(4)开发示例n三,发布Web项目(见下页图)珞珈汇智A.发布项目按钮珞珈汇智B.新增发布服务器珞珈汇智①②③C.发布完成珞珈汇智(4)开发示例n四,启动服务器,查看开发结果(见下页图)珞珈汇智A.启动服务器珞珈汇智B.服务器启动结果珞珈汇智C.结果演示珞珈汇智2,JavaEE现状及趋势n(1)传统JavaEE的误区n(2)JavaEE发展趋势n(3)Struts+Spring+Hibernaten(4)源代码赏析珞珈汇智(1)传统JavaEE的误区n误区最大的根源——EJB技术nEJB技术曾被认为是J2EE(JavaEE的早期名称)的核心nEJB技术的缺陷(RodJohnson):n开发难度大,应用十分复杂nEJB技术使应用变得难以测试nEJB技术使应用变得更难部署n远程接口调用的EJB技术违背OO设计原则n应用服务器的可选择性减少,成本增加n最重要一点:耗费资源,特别是内存;速度缓慢n从某种程度上讲,是开源框架拯救了因EJB而奄奄一息的JavaEE珞珈汇智(2)JavaEE发展趋势n一,开源框架的轮子理论——即“不要重复发明轮子”。有很多优秀的开源软件可供选择:nMVC框架:Struts、Spring、WebWorknORM框架:Hibernaten测试框架:JUnitn安全解决方案:Acegin报表工具:JFreeChart、JasperReportn工作流引擎:OSWorkflow、Werkflown数据库连接池:JakartaDBCPn缓存工具:OSCache、Ehcachen全文检索:Lucenen任务调度:Quartzn其他:eXtremeComponents、Sitemesh等珞珈汇智(2)JavaEE发展趋势n一、开源框架的轮子理论(续)——例子1:JFreeChart图表工具珞珈汇智(2)JavaEE发展趋势n一、开源框架的轮子理论(续)——例子2:eXtremeComponents列表翻页查询工具珞珈汇智(2)JavaEE发展趋势n二、IoC容器和DI模式-如何组装轮子nIoC和DI的概念nIoC即InversionofControl,中文意思为:控制反转nDI即DependencyInjection,中文意思为:依赖注入模式n优势n增加程序的可配置性n减少调用与被调用程序之间的耦合性珞珈汇智(2)JavaEE发展趋势n二、IoC容器和DI模式-如何组装轮子(续)n实现原理:自由恋爱与包办婚姻n传统编码方式是自由恋爱:调用者需要调用其他对象时,需要负责对象的创建和初始化。即两者是自由恋爱,直接进行交流,耦合度非常高。nIoC编码方式则是包办婚姻:调用者需要调用其他对象时,直接从IoC容器中获取,由容器来负责被调用对象的创建和初始化,即由容器来包办。n最著名的IoC容器——SpringFrameworkn所谓DI,即依赖注入指的是调用者依赖的被调用对象不再由调用者创建,而是由IoC容器注入到调用者中去。它和IoC本质上属于相同思想的不同表述。珞珈汇智(2)JavaEE发展趋势n二、IoC容器和DI模式-如何组装轮子(续)n参看代码例子:n传统编码方式:nBasicDataSourceExample.javanIoC编码方式:nIocDataSourceExample.java珞珈汇智(2)JavaEE发展趋势n三、AOP技术nAOP的概念n英文全称:AspectOrientedProgrammingn中文名称:面向方面的编程,是OOP的延伸nAOP的功能n处理程序中的横切关注点,比如安全认证、数据库事务管理等nAOP中的Aspect指的就是用来处理这些横切关注点的模块化程序单位nAOP实现工具nAspectJnaopalliance开源框架nAOP的例子nAcegi,通过AOP来实现统一的安全方案nSpring事务管理,通过AOP来实现统一的事务管理珞珈汇智AOP示意图珞珈汇智登录转帐业务认证授权登录开户业务划拨金额认证