JTA是只是一组java接口用于描述,J2ee框架中事务管理器与应用程序,资源管理器,以及应用服务器之间的事务通讯。
它主要包括高层接口即面向应用程序的接口;XAResource接口即面向资源的接口;以及事务管理器的接口。值得注意的是JTA只提供了接口,没有具体的实现。
JTS是服务OTS的JTA的实现。简单的说JTS实现了JTA接口,并且符合OTS的规范。
资源管理器只要其提供给事务管理器的接口符合XA接口规范,就可以被事务管理器处理。
所以,JTA可以处理任何提供符合XA接口的资源。包括:数据库,JMS,商业对象等等
“Java 事务 API”(JTA)启用两阶段提交功能。
当配置 WebSphere Application Server 以访问数据库时,可选择具有 JTA 能力的驱动程序。如果需要两阶段提交功能,则必须使用启用 JTA 的驱动程序。
只要在事务中调用了多个数据库连接,就需要 JTA。只要在事务中调用了多个数据库服务器,就需要两阶段提交。这些连接可以是相同的物理数据库服务器或多个数据库服务器。例如: 实体企业Bean Entity1 在应用程序服务器 AppServer1 中部署。
性能实现JTA 启用的连接与非 JTA 启用的连接执行情况不同。基于此原因,应用程序不需要 JTA,则最好使用非 JTA 启用的驱动程序。
jmsexecute和send都是发送消息的方法,但它们有一些不同之处。
首先,jmsexecute是通过JMS(Java Message Service)协议来发送消息的方法。它需要在发送消息前先创建一个连接(Connection)对象,并在该连接上创建一个会话(Session)对象。然后,在会话对象上创建一个目标(Destination)对象(可以是队列或主题),并使用此目标对象创建一个消息生产者(MessageProducer)。最后,使用生产者对象发送消息。
而send则是在MessageProducer对象上直接调用的方法,它不需要创建连接和会话等额外的步骤。它将消息直接发送到指定的目标对象上。
因为jmsexecute需要创建额外的连接和会话等对象,所以相比send方法,它需要更多的代码和资源开销。但相应的,jmsexecute可以提供更强大的消息传递功能,如可靠性、事务、持久化等。
在实际开发中,应根据具体需求选择使用哪种方式发送消息。如果对消息的可靠性要求较高,建议使用jmsexecute;如果仅仅是简单地发送一些不太重要的消息,send方法就足够了。
延伸:JMS是一种Java平台下的消息中间件标准,它提供了一种独立于厂商的API,用于发送和接收消息。JMS规范定义了两种消息模型:点对点和发布/订阅。点对点模型中,消息发送者将消息发送到特定的队列,而消息接收者从该队列中获取消息;发布/订阅模型中,消息发送者发布消息到主题,多个消费者可以同时订阅该主题并接收消息。JMS在企业级应用中有广泛的应用,如金融交易、电子商务、在线游戏等。
就是姐妹们的意思 你说对了
mm:妹妹
gg:哥哥
dd:弟弟
jj:姐姐
plmm:漂亮美眉
xdjm:兄弟姐妹
pfpf:佩服佩服
pp:照片,但如果是说打pp,那就是kick your ass的意思了
bt:变态。和浮云的其他版块相比,水版是个bt出没的地方 扁他(她、它)
zt:转贴, 有时缩写成z,转的意思
sl:色狼。
bl:玻璃,不是指一种易碎品,而是同性恋
bc:白痴
bd:笨蛋
ry:人妖
lm:流氓
pg:屁股
gf:girl friend,女友
bf:boy friend,男友
md:妈的,粗口,特别慎用!
tmd: ,粗口,特别慎用!
jjww:唧唧歪歪,指人说话的样子
sjb:神经病
pmp:拍马屁
mpj:马屁精
kick:扁
kh:葵花,就是练葵花宝典的高手,浮云某高手已练至化境,人皆不呼其名,而直呼kh。
khbd:葵花宝典
pxjf:辟邪剑法,源于khbd,kh专用的剑法
js:奸商
sp:support,支持
的微:一种语气助词,kh专用
呼呼,猪猪:睡觉
稀饭:喜欢
果酱:过奖
bxcm:冰雪聪明
lol:laugh out loud,大笑
kfc:kxxx & fxxx & cxx,要是和某人有仇,就kfc他吧
pk:player kill,砍人,攻击,也可解释为先批后k
btw:by the way,顺便说一句
ps:两种意思,btw或者photoshop(一种电脑修图软件)
cu:see you,再见
bb:宝贝,情人,孩子,byebye,看具体使用
走召弓虽:超强
满清:满清十大酷刑,老祖宗的玩艺
咔嚓:砍了
酱紫:这样子
饭饭:吃饭
片片:同pp,照片
斑竹,板猪:版主,论坛版块的管理人员,把水版比作个小店,他们就是店小二。
水桶,水鬼,水仙,水王,水怪,水母:指灌水狂人,水母特制女性
水手:版中的芸芸众生
潜水员:就是那些喜欢看别人灌水自己不灌水的家伙
恐龙:长得难看的mm
抓狂:受不了刺激而行为失常
thx,3x:thanks,谢谢
sigh:叹息
cool:酷
gay:同性恋,bl
fag:同性恋,bl
pm:论坛的私信
zip it:闭嘴
leecher:吸血鬼,指只知道索取不懂得分享回报的家伙,被严重鄙视的人
dl:download,下载
pub:网路上扫描到的ftp,可以临时起上传下载功能,也指把文件传到pubftp上共享的行为。
brb:be right back,马上回来
ttyl:talk to you later,再见,下次回头再谈
bbl:be back later 过会回来
kick your ass:打你屁屁
ppl:people,人们
plz,pls:please,请
bull , :胡说,废话
sorry ass:可怜的家伙,鄙视的意思
so so:一般
cutie:甜心
d\\\\amn:靠,他xx的
包子:某人长得难看或者笨就说他包子
粉:很,非常
菜鸟,小虾,初哥:就是初级水平的新人
老鸟,大虾:高手
木油:没有
蛋白质:bd+bc+sjb
爱老虎油:i love u,我爱你
倒:晕倒,厥倒
表:不要,比如表太好,不要太好的意思。
咣当:晕倒发出的声音
9494:就是就是
猪娃:ccf传过来的口语,好孩子
爆头:游戏中引来的词汇,把某人打得脑袋开花
4242:是啊是啊
7456:气死我了
748:去S吧
886,拜拜,再见
847:别生气
987:就不去,就不去
55555:哭
xxx:儿童不宜的东西
blah-blah:反复说
厚厚,吼吼,咔咔,kaka,嘻嘻,xixi:语气助词
天外飞砖:某坛主两口子发明的一种极凶猛的暗器,据说让人生不如死
rpwt:人品??
tnjjtds:?你jj?到死
rt:如题
thx:谢谢
slap:打耳光
+U 加油。
1414 意思意思。
253 mop贴图第253号。一个人在拜礼作揖。
3166 撒由那拉,再见。(日语)
3H学生 三好学生。
3q Thankyou,谢谢你。
4242 是啊是啊。
4人民 为人民。4为for
555 wuwu,呜呜呜(哭)。
7456 气死我咯。
748 去死吧。
8147 不要生气。
84 不是。类似的还有:848(不是吧)。
848 不是吧。
874 掌嘴。源自猫扑网站的贴图第874号,动态效果,画的是一个女子正在用扫把抽一个男子的嘴巴。
886 拜拜喽!
88 byebye,白白,拜拜,再见。
8错 不错。
9494 就是就是。
999 猫扑网站的贴图第999号,用于表达因极度惊讶或极度佩服。
BC 白痴
BF BoyFriend,男朋友。当然还有:
BL/GL 玻璃,同性恋。Boy’sLove(男同性恋),Girl’sLove(女同性恋)
BOT 机器人。
BTW ByeTheWay,顺便提一下。
BT 变态。例句:挂着鼻涕上网也很BT的哦。或BitTorrent一种新型的P2P下载工具。
CC ①xixi,嘻嘻,西西。嘿嘿②醋醋,吃醋。
cft Comfort,安慰,舒适。(英文)
CGP Computer Gaming Pseudodementia的缩写,电脑游戏性痴呆症.
CG ComputerGraphics,计算机所做图形。
cool毙 酷毙。有时也用:“裤”“库”都来自于"Cool"!
COSPLAY COSTUMEPLAY,扮演自己所喜欢的角色表演,来自于日本〔ko-su-pu-re〕的发音。
cow ,kao。用于骂人。
CT 警察。
CU SeeYou,再见。
DBC 大白痴
DC ①DIGITALCAMERA(数码相机)。②SEGA出的DREAMCAST著名游戏机种。
DD 弟弟。
di 结构助词“的”,专门用于句子最末,表示强调。例句:不是这样di!
DL Download,下载。有时也用“当”或“down”。
e 恶心。
eg 举例。
faint(或ft) 晕,表示不可理解的意思。例句:faint~竟然有这种事情的哦?
FC 任天堂出的8位游戏机,超级任天堂为SFC。
FOAF FriendofaFriend,一个朋友的朋友。
GF GirlFriend,女朋友。
FriendofaFriend 一个朋友的朋友。
Gay 男同性恋,也有写为“基”的。
GB 任天堂出的著名掌上游戏机(GameBoy),还有:GBA(GameBoyAdvance)。
GG 哥哥。
gl glass,同性恋
gx 恭喜。
H Hentai,色情。由它引申出来的词很多,例如:HComic(色情漫画),HCartoon(色情卡通),HGame(色情游戏)等等。
Haha 哈哈。笑声
Hehe 呵呵。笑声
hiahia 象声词,怪笑。
HIGH 高了,常用于喝酒等行为下。
hoho 爽朗的笑声。
HP 生命值。
IC ISee,我明白。例:oic(哦,我明白了)。还有:CU,"SeeYou",含有再见(SeeYouLater)之意
JJBB 结结巴巴。类似的还有:JJYY,JiJiWaWa,"唧唧歪歪“,”唧唧哇哇“。
JJ 姐姐。类似的还有:GG(哥哥),MM(妹妹),DD(弟弟)。
JR 贱人
JS 奸商。
K 象声词,咳嗽声。例句:KKK……无聊。
L 快乐。例句:我今天很L,你呢?
LBT 路边摊。
lj 垃圾。
LM 辣妹
lr 烂人。
L公(或LG) 老公。
L婆(或LP) 指老婆。
M 笨蛋、木头。例句:你真M。
md 。
me2 metoo,我也是。
MM 妹妹,美眉。
mop 猫扑,游手好闲的缩写词。来自猫扑网站,猫扑上的成员叫"Mopper"。英文原意为"拖把"
MP 没品。
msg Message,消息,信息。
N 表示思考。例句:NN
NB ①牛逼。还有:NBHH,牛逼烘烘,牛人,大牛②自然美,NaturalBeautiful。
nod 点头(动作)。
nr 脑弱。
O ①回答别人的傻话。例句:OO想吐!②有时也用来表示:“我”,"ou"。③喔。
P 否定用语。例句:你放P!
papa 怕怕。例:papaya(怕怕呀)
PC PersonalComputer(个人电脑)的缩写。
PF 佩服。
PK Person-killing,单挑,要出虚拟人命的网上决斗。
PLMM 漂亮美眉。
PMP 拍马屁。也有:PMPMP(拼命拍马屁)
PM ①PrivateMessage,私人消息,就是论坛上的悄悄话。②PardonMe,请原谅我。
PPMM ①婆婆妈妈。②漂漂美眉。
pp ①点点通软件。②屁股。
PS ①PhotoShop(一个著名图形处理工具)的缩写。
②PlayStation(SONY出的一个著名游戏机种)的缩写。
③Post�窖裕�奖省@�纾骸癙S:这只是我的个人观点……”
puke 呕吐。
PvP 由PK改名而来,因为目前韩国政府已下令游戏开发商,必须将"PK"改为"PvP"(PlayerVersusPlayer)。
pw password,密码。
py 朋友。
Q ①求人。例句:我QQ你了,把你的电话号码给我吧。
②可爱。为英文“CUTE”的音译;
③用icq聊天工具呼叫。例句:前天,我曾Q过你。
qr 穷人。
qu4 去死。
Q男,Q女 用icq或oicq聊天的男人或女人。
R 语气词,惊奇。例句:R?你是小学生。
re 回文。
rpwt 人品问题。
rq 人气。
rt 如题。用于发新帖时,当内容已经在标题上打出时,内容栏里就仅注明rt。
ry 人妖。
S 死机。例句:对不起,我刚才S了。
SB ,对某些人的蔑称,骂人用语。
sg 帅哥。可以用:ssgg表示”好帅的哥哥哦!“
sigh 叹气。
SL 色狼。
sm ①Sado-Masochi,性虐恋。S为Sadism性虐待,M为Masochism被虐待.②什么。例句:你刚才说sm?
sp support,支持。
SS SEGA出的SATURN游戏机。
ST 失态。
T 踢。例:T飞(踢飞)。
Thx Thanks
tears 流泪。
他。
。
too 表示程度。例:tooooooo……bad(太……糟糕了)
ts 同上。就是同意楼上的意见,用在回贴时。
U You,你。例如:ThankU!“谢谢你!”。还有Ur,表示:your,你的。I服了U,表示:我服了你了。
UK UnitedKillers,杀手联盟。
vs 对决。与pk不同的是,vs并不一定代表单独挑战。
W 王或者万。例:新人W。破W。
wl 网恋。
ww 弯弯,指台湾同胞。
X 错。例句:你大X特X。
Y WHY,为什么?
YK 幼齿,年幼,未成年。
yy 意*,过度欲望。不一定指下流的想入非非的,往往是为了达到思想、心理及口头上的快感。来自于《红楼梦》。
zzZZz 睡觉的状态。
…哈 语气词,例句:今天又有人病了哈。
一q爆头 一q就把对方脑袋打掉。
不睬你 不理你。(新加坡语)
东东 东西。
么么黑 非常黑暗。
亮骚 将心爱的东西给别人看。
伟哥 伟大的男人。
系咪 是不是。
做脸 整容。
偶 我。
兔爸 toolbar,工具条。
切 语气词(qie~),表示蔑视。
刷屏 指用重复的句子把聊天或论坛的一页刷一遍,以清洁版面。
压 语气词“呀”。
可爱 可怜而没人爱。
台客/台妹 土气粗俗的意思。(台语)。原指早期原台/湾人民。
吐血 形容郁闷心情。
吼吼 恐龙专用,情绪不明。
呕像 呕吐的对象。
和和 呵呵。
啊哦 唐老鸭常用语气词。
喷鼻血 形容被震惊的样子。
坛子 论坛。
型男 模特身材的男人,也有“型女”的说法。
大丈夫 没问题。(日语)
大刀 打倒。
大虾 大侠。
好康 好看。
如花似玉 丑陋。
姑狗 Google搜索引擎。也写作“辜狗”。
寒 惊叹,害怕。有时也写作“汗”。例句:楼上的观点非常可怕。寒~!
干色摸 干什么。也写作“干虾米”。
开画 公开放映。
弓虽 语气词“强”,厉害,了不起,
恐龙 kl,长相困难的女生。
惨绿 不幸。
我倒 用于表示佩服,或出其意料之外。
我闪 用于表示惹不起躲得起。
战队 指一组成员编组参加电脑游戏比赛。
打口 碟片被打了个口子的海关行为。
抛砖 跟帖。
抢一 指杂论坛里抢第一个回复位置。
抢整 qz,抢发第整数帖文章。
拍砖 指回贴时持批评态度。
捏 语气词,发音为“nie”,表示的语气接近于“呢”。
搞大 把事情弄得夸张的意思。
斑竹 版主。有时也会写成”板猪“。
暖被儿奖 指诺贝尔奖。
暴笑 巨大笑声。
有形 有派头。
板斧 版副。
楼上 楼上就是上面的帖子回复者。另外还有“楼下”、“顶楼”、“底楼”、“楼主(发帖者)”等一系列说法。
残念 ①可惜;②死亡。(日语)
母代(或无得) 没得,没有。(南京发音)。
水蒸气 比纯净水还纯的水,就是无文字及任何内容的空白帖子。
油墨 幽默。
泡菜 指在论坛里浏览。
泥巴 mud游戏。
温酒吧 Win98类似的还有:瘟都死(windows)
漫迷 漫画fan。
潜水 指呆在聊天室里不说话。
灌水 指在网络上发布一些意义不大的
文字。
灰常灰常 非常非常。
烘培鸡 HomePage,个人主页,“竹叶”。
狗狗 狗的昵称。
狼族 与色狼不同,作风正派,喜欢独断独行,虽爱女色,但从不死缠mm。
猫 Modem,调制解调器(拨号上网用的东西),
王求革圭 指球鞋。
甩q 凭感觉将准星甩出去瞄准射击。
甫士 Pose,姿势。
盲狙 不开瞄准镜,直接打狙击q的。
笨拉灯 本·拉登。
粉 很。
素 是。
素颜 没有化装的面孔。
纯净水 无内容的帖子。
练狙 练习狙击q技法。
置顶 将某个帖子放在列表的最上方。
老大 带头的。有时是被众人吹捧的人,有时是被众人暴打的人。
老斑 班主任。
肉鸡 弱机,是指网络上安全性不强,被人完全控制的机器。
菜鸟 新手。
表 不要。
衰 倒霉。
轻舞肥羊 源自痞子蔡的轻舞飞扬,用来嘲笑MM。
达人 高人。
酱紫 这样子。例句:故事的发生是酱紫的。
酿紫 那样子。
闪客 制作flash的人。
隔壁 旁边论坛或聊天室。
青蛙 qw,长相可怕的男生。
靓号 指号码不错的QQ号。
领导 老婆。
飞仔/飞女 太保/太妹。小流氓。
马桶文章 烂文章。
马甲 指一个人拥有的多个ID。
驴友 旅游者。
咸 色/情。
黑名单 BBS中被关的ID。
坑 会引起很多人回复的帖子。
小强 蟑螂。来自于周星驰的《唐伯虎点秋香》。
唔 不。
唔系 不是。广东话
……ing 表示进行时。例句:无限郁闷ing。
……的说 来自日语语法“……とぃぃます”,表示认为、觉得。例句:似乎他态度老强硬的说。
超/强/哈/巨/狂/严重… 表示特别,起夸张、加强语气作用。例句:你这人超厉害!我对你的说法严重支持!
网络术语:
1、BBS:①Bulletin Board System的缩写,指电子公告板系统,国内统称论坛。②波霸,Big-Breasted Sister的缩写。
2、斑竹:版主,也可写作板猪。由于拼音输入造成的美妙谐音。副版主叫“板斧”。
3、马甲:注册会员又注册了其他的名字,这些名字统称为马甲,与马甲相对的是主ID。
例句:青眉建议斑竹进行版务管理时,不可以用马甲发言。
4、菜鸟:原指电脑水平比较低的人,后来广泛运用于现实生活中,指在某领域不太拿手的人。与之相对的就是老鸟。
5、大虾:“大侠”的通假,指网龄比较长的资深网虫,或者某一方面(如电脑技术,或者文章水平)特别高超的人,一般人缘声誉较好才会得到如此称呼。
6、灌水:原指在论坛发表的没什么阅读价值的帖子,现在习惯上会把绝大多数发帖、回帖统称为“灌水”,不含贬义。
7、纯净水:无任何实质内容的灌水,也说水蒸气。
8、水手:喜欢灌水的人。级别高的也称水桶、水鬼、水仙。指女性灌水狂人时,还有个特定称呼:水母。
9、潜水:天天在论坛里呆着,但是不发帖,只看帖子、而且注意论坛日常事务的人。
10、打铁:写帖子,一般指有点儿重量的帖子。
11、拍砖:对某人某帖发表与其他人不同看法和理解的帖子。
例句:侠友们拍砖请注意口气和态度,否则很容易转化为人参公鸡。
12、刷屏:打开一个论坛,所有的主题帖都是同一个ID发的。
13、扫楼:也叫刷墙,打开一个论坛,所有主题帖的最后一个回复都是同一个ID的。
14、楼主:发主题帖的人。
15、盖楼:回同一个主题帖,一般粉丝比较喜欢盖楼。
16、楼上的:比你先一步回复同一个主题帖的人,与之相对的是“楼下的”。
17、几楼的:除楼主外,所有回复帖子的人,依次可称为“2楼的”、“3楼的”……
18、沙发:SF,第一个回帖的人。后来,坐不到沙发的人,声称自己坐了“床”或楼主的“大腿”~
19、椅子:第二个回帖的人。
20、板凳:第三个回帖的人。
21、地板:连板凳都没得坐的人。
22、顶:一般论坛里的帖子一旦有人回复,就到主题列表的最上面去了。这个回复的动作叫做“顶”,与“顶”相对的是“沉”。
23、走召弓虽:超强,通常用于回帖时表示对主题帖的膜拜。
24、汗:表示惭愧、无可奈何之意。衍生词有:暴汗、大汗、汗死、瀑布汗、暴雨梨花汗等。
25、倒:晕倒,表示对某帖某人或某现实很惊异。
26、寒:对某帖某人或某现象感到浑身发冷。
27、抓狂:形容自己受不了某人某帖的刺激而行为失常,处于暴走状态中。
28、踩一脚:也称踢一脚、留个爪子印等,都是跟帖之意。
29、路过:不想认真回帖,但又想拿回帖的分数或经验值。与之相对的字眼还有:顶、默、灌水、无语、飘过、路过等。
例句:在侠客社区,凡回帖只回路过、顶、默、灌水、无语、飘过、路过等字眼的行为,都会被视为故意灌水。
30、闪:离开。
31、匿鸟:隐身了。“匿”作“藏匿”讲;“了”是多音字,在句尾本该读“LE”,有人喜欢误读“LIAO”,遂谐音为“鸟”。
32、找抽帖:楼主发的帖子内容特别找抽,让绝大多数人都不待见,也称找砖帖。
33、火星帖:很久以前已经被无数人看过转过的旧帖,转火星帖的人被称为火星人。通常回帖会这样说:楼主还是快回火星吧,地球是很危险滴。(来自周星星《少林足球》)
34、恐龙:长得不漂亮的女性网民,含贬义。与之相对的是“青蛙”,形容相貌抱歉的男性网民。
35、犬科:喜欢追逐论坛里的女生的那种类型,尤其喜欢死缠烂打。
36、狼族:热爱美色,不过比犬科作风正派一点,不会纠缠。
37、……的说:动词后置的一种用法,来自日文语法。
例句:青眉要去吃饭的说。
38、……ing:动词进行时的一种用法,来自英文语法。
例句:侠友们如此支持《武侠版》和侠客社区,青眉感动ing。
39、残念:可惜之意,引申有“碎碎念”等。
40、×××××:儿童不宜的内容。
41、王道:相当于“权威、真理”之意。
42、黑旺财:旺财是《唐伯虎点秋香》里的一条狗,狗者,犬也。黑犬,就是“默”。此典出自晋江。
43、小白:①白烂的昵称,指专在网上无事生非的人。②“小白痴”的缩写。
44、小黑:黑名单。
45、浸小黑:ID被登记进黑名单。
46、小强:《唐伯虎点秋香》中的那只蟑螂,泛指生命力特别顽强的人。
47、粉丝:FANS的音译,超迷某人或某物的一类人,也称扇子、蕃薯,简称“粉”或“迷”。
48、包子:形容某人笨,或者长相欠佳。
49、蛋白质:笨蛋+白痴+神经质。
50、白骨精:白领+骨干+精英。
51、腊鸭:垃圾(来自《麦唛》系列)。“挂腊鸭”在粤语俗语中指吊颈自杀。
52、Kuso:日语“粪”的发音。起先是教游戏玩家如何把“烂Game认真玩”的意思,后来经台湾传入大陆,渐渐演化成“恶搞”之意。
53、维客:喜欢使用WIKI这种超文本技术的网络爱好者。
54、博客:一种网上共享空间,让人以日记的方式在网络上展现自己的形式。博客让两个女人飞速走红:木子美和芙蓉姐姐。
55、黑客:又称骇客,指在电脑领域有特殊才能或技巧的人。这类人运用自己的才能或技巧,要么是专门检测系统漏洞,要么有可能做有违道德或法律的事。
56、红客:具有民族主义倾向的中国网络技术爱好者,与黑客相对。
57、朋客:起源于“朋克”。电脑朋客现在越来越多的被等同于电脑罪犯了。
58、闪客:使用Flash软件做动画的人,我们看到的很多电子贺卡和网站MTV都是闪客的杰作。
59、极客:也称奇客,Geek,指有较高超电脑能力的人。
60、驴友:泛指爱好旅游,经常一起结伴出游的人。
J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。
在J2EE架构下,开发人员可依循规范基础,进而开发企业级应用;而不同J2EE供货商,同会支持不同J2EE版本内所拟定的标准,以确保不同J2EE平台与产品之间的兼容性。换言之,植基J2EE架构的应用系统,基本上可部署在不同的应用服务器之上,无需或者只须要进行少量的代码修改,即能大幅提高应用系统的可移植性(Portability)。
J2EE主由升阳与IBM等厂商协同业界共同拟定而成的技术规范,以企业与企业之间的运算为导向的JAVA开发环境。J2EE架构定义各类不同组件,如Web Component、EJB Component…等,而各类组件可以再用(reuse),让已开发完成的组件,或者是经由市面采购而得的组件,均能进一步组装成不同的系统。
对于开发人员而言,只需要专注于各种应用系统的商业逻辑与架构设计,至于底层繁琐的程序撰写工作,可搭配不同的开发平台,以让应用系统的开发与部署效率大幅提升。
J2EE的核心规范是 Enterprise Java Beans(EJBs)。EJB依照特性的不同,目前共分为三种,分别是Session Bean、Entity Bean,以及 Message Driven Bean 。其中 Session Bean 与Entity Bean 算是EJB的始祖,这两种EJB规格在EJB 1x版本推出时就已经存在,而Message Driven Bean则是出现在EJB 20的规格之中。
目前业界许多程序设计师,或者是网页设计人员,多利用JSP/Servlet的便利性,进而在J2EE服务器之上开发相关的应用,或是整合公司内部的各种资源。
Java 2平台依照应用领域的不同,共分为三大版本,分别是J2EE、标准版本J2SE(Java 2 Platform, Standard Edition)、微型版本J2ME(Java 2 Platform, Micro Edition),以及Java Card等。
那么到底什么是J2EE呢?从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。各个平台开发商按照J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。由于它们都遵循了J2EE规范,因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。
为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EE Blueprints。J2EE Blueprints提供了实施J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用J2EE Blueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。J2EE Blueprints是开发人员设计和优化J2EE组件的基本原则,同时为围绕开发工作进行职能分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。
下面我们参照J2EE Blueprints,结合最新版的J2EE规范(J2EE 14),从整体上阐述如何使用J2EE架构企业级应用。
图2 使用J2EE架构企业级应用的体系架构
图2给出了使用J2EE架构企业级应用的体系架构。J2EE将组成一个完整企业级应用的不同部分纳入不同的容器(Container),每个容器中都包含若干组件(这些组件是需要部署在相应容器中的),同时各种组件都能使用各种J2EE Service/API。J2EE容器包括:
◆ Web容器 服务器端容器,包括两种组件JSP和Servlet,JSP和Servlet都是Web服务器的功能扩展,接受Web请求,返回动态的Web页面。Web容器中的组件可使用EJB容器中的组件完成复杂的商务逻辑。
◆ EJB容器 服务器端容器,包含的组件为EJB(Enterprise JavaBeans),它是J2EE的核心之一,主要用于服务器端的商业逻辑的实现。EJB规范定义了一个开发和部署分布式商业逻辑的框架,以简化企业级应用的开发,使其较容易地具备可伸缩性、可移植性、分布式事务处理、多用户和安全性等。
◆ Applet容器 客户端容器,包含的组件为Applet。Applet是嵌在浏览器中的一种轻量级客户端,一般而言,仅当使用Web页面无法充分地表现数据或应用界面的时候,才使用它。Applet是一种替代Web页面的手段,我们仅能够使用J2SE开发Applet,Applet无法使用J2EE的各种Service和API,这是为了安全性的考虑。
◆ Application Client容器 客户端容器,包含的组件为Application Client。Application Client相对Applet而言是一种较重量级的客户端,它能够使用J2EE的大多数Service和API。
通过这四个容器,J2EE能够灵活地实现前面描述的企业级应用的架构。
在View部分,J2EE提供了三种手段:Web容器中的JSP(或Servlet)、Applet和Application Client,分别能够实现面向浏览器的数据表现和面向桌面应用的数据表现。Web容器中的Servlet是实现Controller部分业务流程控制的主要手段;而EJB则主要针对Model部分的业务逻辑实现。至于与各种企业资源和企业级应用相连接,则是依靠J2EE的各种服务和API。
在J2EE的各种服务和API中,JDBC和JCA用于企业资源(各种企业信息系统和数据库等)的连接,JAX-RPC、JAXR和SAAJ则是实现Web Services和Web Services连接的基本支持。
J2EE的各种组件
我们就J2EE的各种组件、服务和API,进行更加详细的阐述,看看在开发不同类型的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用并组合不同的组件和服务。
· Servlet
Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。
· JSP
JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。从这一点来看,非常类似Microsoft ASP、PHP等技术。借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP来合成。在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。
· EJB
EJB定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。在装配组件时,所有的Enterprise Beans都需要配置到EJB服务器(一般的Weblogic、WebSphere等J2EE应用服务器都是EJB服务器)中。EJB服务器作为容器和低层平台的桥梁管理着EJB容器,并向该容器提供访问系统服务的能力。所有的EJB实例都运行在EJB容器中。EJB容器提供了系统级的服务,控制了EJB的生命周期。EJB容器为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术环节,简化了商业逻辑的开发。EJB中定义了三种Enterprise Beans:
◆ Session Beans
◆ Entity Beans
◆ Message-driven Beans
· JDBC
JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。Java中的JDBC相当与Microsoft平台中的ODBC(Open Database Connectivity)。
· JMS
JMS(Java Message Service,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。JMS API定义了一组公共的应用程序接口和相应语法,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的SonicMQ。通过使用JMS API,开发人员无需掌握不同消息产品的使用方法,也可以使用统一的JMS API来 *** 纵各种消息中间件。通过使用JMS,能够最大限度地提升消息应用的可移植性。 JMS既支持点对点的消息通信,也支持发布/订阅式的消息通信。
· JNDI
由于J2EE应用程序组件一般分布在不同的机器上,所以需要一种机制以便于组件客户使用者查找和引用组件及资源。在J2EE体系中,使用JNDI(Java Naming and Directory Interface)定位各种对象,这些对象包括EJB、数据库驱动、JDBC数据源及消息连接等。JNDI API为应用程序提供了一个统一的接口来完成标准的目录 *** 作,如通过对象属性来查找和定位该对象。由于JNDI是独立于目录协议的,应用还可以使用JNDI访问各种特定的目录服务,如LDAP、NDS和DNS等。
· JTA
JTA(Java Transaction API)提供了J2EE中处理事务的标准接口,它支持事务的开始、回滚和提交。同时在一般的J2EE平台上,总提供一个JTS(Java Transaction Service)作为标准的事务处理服务,开发人员可以使用JTA来使用JTS。
· JCA
JCA(J2EE Connector Architecture)是J2EE体系架构的一部分,为开发人员提供了一套连接各种企业信息系统(EIS,包括ERP、SCM、CRM等)的体系架构,对于EIS开发商而言,它们只需要开发一套基于JCA的EIS连接适配器,开发人员就能够在任何的J2EE应用服务器中连接并使用它。基于JCA的连接适配器的实现,需要涉及J2EE中的事务管理、安全管理及连接管理等服务组件。
· JMX
JMX(Java Management Extensions)的前身是JMAPI。JMX致力于解决分布式系统管理的问题。JMX是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构 *** 作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的管理应用。JMX是一个完整的网络管理应用程序开发环境,它同时提供了厂商需要收集的完整的特性清单、可生成资源清单表格、图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法等。
· JAAS
JAAS(Java Authentication and Authorization Service)实现了一个Java版本的标准Pluggable Authentication Module(PAM)的框架。JAAS可用来进行用户身份的鉴定,从而能够可靠并安全地确定谁在执行Java代码。同时JAAS还能通过对用户进行授权,实现基于用户的访问控制。
· JACC
JACC(Java Authorization Service Provider Contract for Containers)在J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便将各种授权认证服务器插入到J2EE产品中去。
· JAX-RPC
通过使用JAX-RPC(Java API for XML-based RPC),已有的Java类或Java应用都能够被重新包装,并以Web Services的形式发布。JAX-RPC提供了将RPC参数(in/out)编码和解码的API,使开发人员可以方便地使用SOAP消息来完成RPC调用。同样,对于那些使用EJB(Enterprise JavaBeans)的商业应用而言,同样可以使用JAX-RPC来包装成Web服务,而这个Web Servoce的WSDL界面是与原先的EJB的方法是对应一致的。JAX-RPC为用户包装了Web服务的部署和实现,对Web服务的开发人员而言,SOAP/WSDL变得透明,这有利于加速Web服务的开发周期。
· JAXR
JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的API。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices,这里的Web Services即为注册服务。一般来说,注册服务总是以Web Services的形式运行的。JAXR支持三种注册服务类型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等)。
· SAAJ
SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一个增强,为进行低层次的SOAP消息 *** 纵提供了支持。
企业级应用示例
下面我们通过假设一个企业应用的J2EE实现,来了解各种组件和服务的应用。假设应用对象是计算机产品的生产商/零售商的销售系统,这个销售系统能够通过自己的网站发布产品信息,同时也能将产品目录传送给计算机产品交易市场。销售系统能够在线接受订单(来自自己的Web网站或者来自计算机产品交易市场),并随后转入内部企业管理系统进行相关的后续处理。
参见图3,这个企业应用可以这种方式架构。该企业应用的核心是产品目录管理和产品定购管理这两个业务逻辑,使用EJB加以实现,并部署在EJB容器中。由于产品目录和定购信息都需要持久化,因此使用JDBC连接数据库,并使用JTA来完成数据库存取事务。
图3 J2EE应用示例
然后使用JSP/Servlet来实现应用的Web表现:在线产品目录浏览和在线定购。为了将产品目录发送给特定的交易市场,使用JMS实现异步的基于消息的产品目录传输。为了使得更多的其它外部交易市场能够集成产品目录和定购业务,需要使用Web Services技术包装商业逻辑的实现。由于产品定购管理需要由公司内部雇员进行处理,因此需要集成公司内部的用户系统和访问控制服务以方便雇员的使用,使用JACC集成内部的访问控制服务,使用JNDI集成内部的用户目录,并使用JAAS进行访问控制。由于产品订购事务会触发后续的企业ERP系统的相关 *** 作(包括仓储、财务、生产等),需要使用JCA连接企业ERP。
最后为了将这个应用纳入到企业整体的系统管理体系中去,使用Application Client架构了一个管理客户端(与其它企业应用管理应用部署在一台机器上),并通过JMX管理这个企业应用。
Java学习心得
引言
软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。梦想像《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫"天神啊,请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了"东方不败",倒是成"西方失败"的几率高一点。
"不走弯路,就是捷径",佛经说的不无道理。
1.如何学习程序设计?
Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于Java,对C++等其他程序设计语言也一样管用。有编程高手认为,Java也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。
11 培养兴趣
兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。
12 慎选程序设计语言
男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。
如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对 *** 作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。
如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。
13 要脚踏实地,快餐式的学习不可取
先分享一个故事。
有一个小朋友,他很喜欢研究生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一次,他走到草原上面看见一个蛹,便取了回家,然后看着,过了几天以后,这个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便随手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。
这个故事给我们的启示是:欲速则不达。
浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故,就像当年的大跃进一样,都想大步跨入主义社会。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿我比较熟悉的大连大工IT职业培训来说吧,居然打广告宣称"20多年的计算机职业教育,辽宁省十佳学校",殊不知中国计算机发展才几年,软件发展才几年,居然去报名的学生不少,简直是藐视天下程序员。培训出来的“程序员”大多不知道OO,OP为何物?社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/Java没开始学,立马使用VC/JBuilder,会使用 VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,"我会软件开发了",简历上也大言不惭地写上"精通VC/Java"。结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《Java编程思想》仔细钻研,早知如此何必当初呀。
"你现在讲究简单方便,你以后的路就长了",好象也是佛经中的劝戒。
14 多实践,快实践
彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。
从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:"我打算去南海朝圣,你看怎么样?"富和尚说:"这里离南海有几千里远,你靠什么去呢?"穷和尚说:"我只要一个水钵,一个饭碗就够了。"富和尚为难地说:"几年前我就打算买条船去南海,可至今没去成,你还是别去吧!" 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。
这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,"君子动口不动手"对软件开发人员来讲根本就是错误的,他们提倡"动手至上",但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副"比尔盖茨"样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。
15 多参考程序代码
程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。
多多参考代码例子,对Java而言有参考文献[43],有API类的源代码(JDK安装目录下的srczip文件),也可以研究一些开源的软件或框架。
16 加强英文阅读能力
对学习编程来说,不要求英语, 但不能一点不会,。最起码像Java API文档(参考文献[44])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个"金山词霸"。看多了就会越来越熟练。在学Java的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的"周扒皮"。
17 万不得已才请教别人
笔者在Martix与Java论坛的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。
你是否在google中搜索了问题的解决办法?
你是否查看了Java API文档?
你是否查找过相关书籍?
你是否写代码测试过?
如果回答都是"是"的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。
18 多读好书
书中自有颜如玉。比尔盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔盖茨就已经读完了所有的百科全书,所以他精通天文、历史、地理等等各类学科,可以说比尔茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。
笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,"天呐,这么多书到什么时候才能看完了","学软件开发,感觉上了贼船 "。这时候,我的回答一般是,"别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的 ",学生当场晕倒。(注:这一部分学生是刚学软件开发的)
19 使用合适的工具
工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。
2.软件开发学习路线
两千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒进也不保守并非中庸之道,而是找寻学习软件开发的正确路线与规律。
从软件开发人员的生涯规划来讲,我们可以大致分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员。我们应该努力往上走。让我们先整理一下开发应用软件需要学习的主要技术。
A.基础理论知识,如 *** 作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取"用到的时候再来学"的原则。
B.一门编程语言,现在基本上都是面向对象的语言,Java/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。
C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。
D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等
E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VSNET等。
F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。
G.一种软件过程,RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。
H.项目管理、体系结构、框架知识。
正确的路线应该是:B→C→E→F→G→H。
还需要补充几点:
1).对于A与C要补充的是,我们应该在实践中逐步领悟编程理论与编程思想。新技术虽然不断涌现,更新速度令人眼花燎乱雾里看花;但万变不离其宗,编程理论与编程思想的变化却很慢。掌握了编程理论与编程思想你就会有拨云见日之感。面向对象的思想在目前来讲是相当关键的,是强势技术之一,在上面需要多投入时间,给你的回报也会让你惊喜。
2).对于数据库来说是独立学习的,这个时机就由你来决定吧。
3).编程语言作为学习软件开发的主线,而其余的作为辅线。
4).软件工程师着重于B、C、E、D;软件设计师着重于B、C、E、D、F;架构设计师着重于C、F、H。
3.如何学习Java
31 Java学习路线
311 基础语法及Java原理
基础语法和Java原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习Java也是如此,必须要有扎实的基础,你才能在J2EE、 J2ME领域游刃有余。参加SCJP(SUN公司认证的Java程序员)考试不失为一个好方法,原因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉Java基础知识;但是你千万不要认为考过了SCJP就有多了不起,就能够获得软件公司的青睐,就能够获取高薪,这样的想法也是很危险的。获得"真正"的SCJP只能证明你的基础还过得去,但离实际开发还有很长的一段路要走。
312 OO思想的领悟
掌握了基础语法和Java程序运行原理后,我们就可以用Java语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是 CBD基于组件开发的基础;属于强势技术之一。当以后因工作需要转到别的面向对象语言的时候,你会感到特别的熟悉亲切,学起来像喝凉水这么简单。
使用面向对象的思想进行开发的基本过程是:
●调查收集需求。
●建立用例模型。
●从用例模型中识别分析类及类与类之间的静态动态关系,从而建立分析模型。
●细化分析模型到设计模型。
●用具体的技术去实现。
●测试、部署、总结。
313 基本API的学习
进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的"不需要重新发明轮子"。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,Java DOC文档(参考文献44)就是这样的文档,它可以说是程序员与程序员交流的文档。
基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处理/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查Java DOC文档(参考文献44),二是使用JBuilder/Eclipse等IDE的代码提示功能。
314 特定API的学习
Java介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对一般人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行网络游戏开发,你需要深入了解网络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。
315 开发工具的用法
在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对Java技术本身的注意力。过了这一阶段你就可以开始熟悉 IDE了。
程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、 Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。
从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。
Java开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder 占有的市场份额是最大的。JBuilder在近几年来一直是Java集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的 Java IDE大战中,以其快速的版本更新击败IBM的Visual Age for Java等而成就一番伟业。IBM在Visual Age for Java上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓"柳暗花明又一村"。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。
316 学习软件工程
对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见"软件开发学习路线"小节。
32学习要点
确立的学习路线之后,我们还需要总结一下Java的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。
321勤查API文档
当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。这时候你要使用"Javadoc"工具(包含在JDK中)生成标准的Java DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下载地址:>
目前java学习除了在高校的专业中学习,还有自学和报班学习两种途径,根据每个人的情况最合适的学习方式是不同的。学习java只要掌握好方式和方法,其实学起来并不是非常难。
java学的内容主要有:
①JAVA编程基础(基础语法、面向对象、和谐特性等)
②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)
③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)
④项目实训
你可以考察对比一下开设有IT专业的热门学校,好的学校拥有根据当下大型企业需求自主研发课程的能力,建议实地考察对比一下。祝你学有所成,望采纳。
javase与javaee的区别在于领域不同和作用不同:
1、领域不同:
javase为平台标准版,可供任何领域使用。
javaee为平台企业版,主要供应企业的使用。
2、作用不同:
javase提供了开发与运行Java软件的编译器等开发工具、软件库及Java虚拟机。它也是Java2平台、企业版本和Java网页服务的基础。
JavaEE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等。
同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。
Java SE的简介:
Java se是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算,从此Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
Java语言恐怕是稳居网路应用程序语言的首选了,这都要归功于它高度的安全性以及跨平台的特性,几乎在目前所有的电脑平台上您都可以见得到Java的芳踪。
Java se用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序,Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。
Java Se的特点:
Java是一门面向对象的编程语言;
面向对象(Object Oriented) 是一种软件开发思想。它是对现实世界的一种抽象,面向对象会把相关的数据和方法组织为一个整体来看待。
Java摒弃了C++中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期
Java语言具有功能强大和简单易用两个特征,现在企业级开发,快速敏捷开发,尤其是各种框架的出现,使Java成为越来越火的一门语言。
Java是门静态语言,静态语言指的就是在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改。
Java具有平台独立性和可移植性;
Java有一句非常著名的口号:Write once,run anywhere,也就是一次编写,到处运行。
Java能够容易实现多线程;
Java具有高性能;
Java具有健壮性;
Java很容易开发分布式项目。
JavaEE的简介:
JavaEE应用程序是由组件构成的,也就是说它是基于组件开发的。组件是具有独立功能的单元,它们通过相关的类和文件组装成JavaEE应用程序,并与其它组件相交互。一个组件的更改不会影响其它组件,代码重复减少,重用率高。有利于良好的分工与协作,实现并行开发。如果是用三层结构开发,那么表示层与数据访问层相互独立,因此美工可以更方便的扩充表示层,使系统具有良好的可扩展性。
JavaEE技术内容:
JDBC:
java数据连接,是一种用于执行SQL语句的java API,可以为多种关系数据库提供统一访问。有了JDBC就不用因为不同的数据库而要写个不同的应用程序,开发人员只需要使用JDBC API写一个程序就够了。
JNDI:
java命名和目录接口,提供了一种统一的方式可以在网络上查找和访问服务,通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库链接简历所必须的信息。
在DataSource中事先简历多个数据库链接,保存在数据库连接池中,当程序访问数据库时,只用从连接池中取空闲状态的数据库链接即可,访问结束,撤销资源,数据库链接重新回到连接池。
EJB:
EJB是sun的javaEE服务器端组建模型,设计目标与核心应用是部署分布式应用程序,简单来说就是把已经编写好的程序(即类)打包放到服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。包括四种对象类型:无状态回话bean(提供独立服务),有状态回话bean(提供回话交互),实体bean(持久性数据在内存中的体现,服务器崩溃后可恢复),消息驱动bean。
RMI:
远程方法调用,能够让某个java虚拟机上的对象像调用本地对象一样的调用另外一个java虚拟机中的对象上的方法。
JSP:
Java服务器页面,是一个动态内容模板,实现了html语法中的java扩展。
Servlet:
Servlet是一种小型的java程序,它扩展了web服务器的功能,作为一种服务器端的应用,当被请求时同时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与jsp类似,不过实现的方式不同,jsp通常是大多数html代码中嵌入少量的java代码,而servlets全部由java写成并且合并成html
XML:
是一种可扩展的标记语言,被用来在不同的商务过程中共享数据,其目标是平台独立性,记得在学习xml的时候,可以自己写标签,只要有结束标签就可以识别,还是相当强大的。
JMS:
是一个java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持,消息通信可以是点对点的,也可以是发布订阅型的。
java IDL:
JavaIDL支持的是一个瞬间的CORBA对象,即在对象服务器处理过程中有效。实际上,java IDL的ORB是一个类库而已,并不是一个完整的平台软件,但它对java IDL应用系统和其他CORBA应用系统之间提供了很好的底层通信支持,实现了OMG定义的ORB基本功能。
JTS:
组件事物监听器,TPM是一个程序,它代表应用程序协调分布式事物的执行。TPM与数据库出现的时间长短差不多;在60年代后期,IBM首先开发了CICS,至今人们仍在使用。经典的(或者说程序化)TPM管理被程序化定义为针对事务性资源(比如数据库)的 *** 作序列的事物。随着分布式对象协议,如CORBA、DCOM和RMI的出现,人们希望看到事务更面向对象的前景,将事务性语义告知面向对象的组件要求对TPM模型进行扩展-在这个模型中事务是按照事务性对象的调用方法定义的,JTS只是一个组件事物监听器(有时也称为对象事务监听器(object transaction monitor))或称为CTM。
JTA:
JTA允许应用程序执行分布式事务处理—在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大的增强了数据访问能力。
JavaMail:
提供给开发者处理电子邮件相关的编程接口。
JAF:
JAF是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和 *** 作数据的接口。
以上就是关于什么是JTA全部的内容,包括:什么是JTA、jmsexecute和send的区别、JMS 是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)