‘壹’ 用java语言, 如何实现为图片添加边框素材,就是把图片和边框素材(图片)结合
用FrontPage2002来做吧,你点点下面的连接:
具体是:
Web页面可用预定义模板来创建,也可不采用模板而在空白页上自己进行设计。创建新页面的步骤如下:
在网页视图下,选择“文件”菜单中的“新建”命令,再从其子菜单中选择“网页”命令,将弹出“新建”对话框,如图所示。
若用户要新建的网页是框架,则从“框架网页”选项卡中选择某种框架样式;否则,从“常规”选项卡中选择一种所需样式,然后单击“确定”按钮。若想建立一空白网页,可在对话框的“常规”选项卡中选择Normal Page项,或直接单击常用工具栏的“新建网页”按钮。
建议逐一试用FrontPage提供的各种模板以便熟悉它们,日后你就可以自如地利用模板创建常规Web页面,能够节省许多时间。
1.在网页中插入图形
图片往往比大量的文字讲述更具吸引力和说服力,在web页面中适当地添加图片会使网页丰富多彩,但过多地加入图片将降低页面的下载速度,特别是对通过调制解调器访问web页的用户。大多数图形都是采用压缩格式,有的调制解调器不具有压缩功能,这种调制解调器速度更慢。因此用户在加入图片时,应认真选择和进行规划。虽然图形可使web页更有趣味,但应适度使用(使用较少颜色,缩小高度和宽度或裁剪图形、降低图形的分辨率,尽可能地减少图形文件大小,如用压缩格式的文件类型)。
Web页面所使用的两种图片格式分别为GIF和JPEG,用户可选择“插入”菜单中的“图片”命令,再从其子菜单中选择“来自文件”命令,打开“图片”对话框,“图片”对话框提供了“扫描”、“使用您的web例览器来选择网页或文件”、“剪贴画”和“在您的计算机上选择一个文件”四种途径插入图片。
对于一些非GIF和JPEC格式的图片,FrontPage可以自动地将这些文件转换成GIF或JPEG格式。
2.在网页中插入水平线
水平线可以在网页上清晰地划分界限,而且对用户网页的布局起着重要的作用。添加一条水平线,可以通过“插入”菜单中选择“水平线”命令添加。在默认状态下水平线是灰色的,用户可以像改变文本颜色一样改变水平线的颜色。改变水平线的颜色有两种方法(必须在不加主题的情况下):
(1)双击该水平线,将显示“水平线属性”对话框。在对话框的“颜色”项,选择下拉列表,从中选择合适的颜色,单击“确定”按钮。
(2)用鼠标右键单击这条水平线,从快捷菜单中选择“水平线属性”命令,再从对话框中选择一个合适的颜色。
使用框架
--------------------------------------------------------------------------------
框架是把Web浏览器的视窗分成几个部分,每个部分都是独立的Web页面,这样便可同时显示多个页面。
可以很容易地用FrontPage创建一个多框架的web页面。为了创建具有框架的Web页面,可从“文件”菜单的“新建”子菜单中选择“网页”命令,弹出“新建”对话框,选择“框架网页”选项卡。
在左边的列表中可选择不同类型的框架模板,选定模板后,按“确定”按钮即可创建一个具有框架的网页。
在创建有框架的Web页面时,应注意有些web浏览器不支持框架。虽然使用不能显示框架的浏览器的用户已很少,为确保这些用户仍然能够浏览到Web站点上的内容,可以填上要告诉那些低版本浏览器的使用者的话,例如请对方更换浏览器等。
在新建的框架的窗口中,单击“设置初始页”按钮将会弹出“创建超链接”对话框,可以链接到一个指定页面;单击“新建网页”按钮将创建一个新页面,然后在该页面内对该页进行编辑。在编辑页面时,若感觉页面被放在一个狭窄的框架中太拥挤,可选择“框架”菜单中的“在新窗口中打开网页”命令,这样便打开一个新的满屏窗口,可以自由地在页面中增加内容。
利用FrontPage的框架页面模板在Web页面上引入了框架布局,我们还可以在此基础上,根据需要进行进一步的设计。
1、增加新框架
要给框架页面增加新框架,就是像拆分表格的单元格一样,把一个框架分为两个框架。 其操作如下:
(1)按住Ctrl键,将鼠标放在框架边框上,当鼠标变为上下箭头时,可把边框拖到一个新位置,当松开鼠标按钮时,一个新的空白内容的框架就形成了。
(2)也可以通过命令来操作:首先单击要拆分的框架内部,选“框架”菜单中的“拆分框架”命令,在弹出的“拆分框架”对话框中单击“拆分成列”或“拆分成行”单选按钮,单击“确定”按钮即可。
2.删除框架
若框架页面看起来太乱,可删除某些框架。要删除一个框架,可先单击该框架选择它,再选择“框架”菜单中的“删除框架”命令即可。
3.改变框架属性
在设置好框架的整体布局后,我们还可以对每一框架的具体属性进行设置,操作如下:
(1)单击需设置属性的框架,选择“框架”菜单中的“框架属性”,则弹出“框架属性”对活框。
(2)在对话框的“名称”文本框中可输入框架名,这样便于识别不同的框架;在“选项”区域中,若选中“在例览器中可以调大小”复选框,则客户在浏览站点时,可重新定义框架尺寸,通过在“显示滚动条”下拉列表框中选择不同的描述项,可设置让滚动条是否出现。
(3)在“框架大小”区域中,可设置框架大小,可以定义一个绝对像素值或相对于浏览器窗口的百分比,若要用浏览器来设置相对于该页面中框架的尺寸,可选“相对”;在“边距”区域中,可设置内容页面与框架边框分隔的像素数值。
(4)要改变开始页面,可以在“初始网页”文本框中输入一个新的页面名字或URL。
(5)单击“框架网页”按钮,则弹出“网页属性”对话框。
(6)在该对话框的“框架”选项卡中,在“框架间距”文本框中,可输入以像素为单位的边框宽度;若要使框架边框消失,则不要选中“显示边框”复选框。
(7)单击“确定”按钮,关闭“网页属性”对话框,再单击“确定”按钮,关闭“框架属件”对话框,完成框架属性设置。
动态网页
--------------------------------------------------------------------------------
DHTML是动态网页的意思,它其实并不是一个标准的术语。事实上没有一种技术叫作DHTML。DHTML是利用CSS(层叠样式表),JavaScript,HTML等技术而建立的能与访问者产生互动的网页。比如在动态网页里,当访问者单击了某一张图片后,这张图片会自动的移动,这就是DHTML效果。也就是说,当网页下载完毕后,它无需再与服务器连接就能产生变化了。FrontPage2000提供了一套容易制作动态网页的方法,你可以建立起属于自己特色的动态网页。
1、使用DHTML的基本步骤
1).在页面点选需要使用DHTML的对象,比如文本,图片。对于文本需要拖曳鼠标选定;
2).在DHTML工具栏,选择通过开启的下拉列表选择一种事件,文本和图片所具有的事件是不同的;接下来再应用下拉列表选择一种效果;最后选择该效果的的实现方法;
3).当你为对象使用了DHTML后,保存该页面并预览,你会发现你选定的对象按照你设置的DHTML的效果出现;
4).如果想删除某一个对象的DHTML效果,先选定该对象,然后单击DHTML工具栏上的删除效果图标即可。
2、DHTML的事件
在DHTML制作中,我们听得最多的是“事件”这个术语。什么是“事件”呢,顾名思义,就是发生的一件事情,比如你用手打开门,那么这就是一个事件。换到网页制作中,开门变成了单击,也就是说,访问者单击了一个链接,那么出现了事件的结果,门被打开了。
在FrontPage2000中,当我们打开DHTML效果工具栏后,点选文本或者图片会产生不同事件。但它们的施用方法是一样的,下面我们以文本举例:
我们先在编辑器里输入一段文本,比如:网页陶吧,然后继续下面的三个步骤:
选定一段需要产生DHTML效果的文本,这里是:网页陶吧。从DHTML效果工具栏的开启下拉列表选择一个事件。这里对于文本我们只有“网页加载”这个事件。“网页加载”就是当网页第一次装入的时侯发生的事件,它不需要用户利用鼠标去触发它,而只需要访问者利用浏览器打开它的时侯就会产生预设的动态效果。
选择好事件后,我们要在应用下拉列表里选择一个该事件的应用效果。在该列表下有七种可以采用的效果,我们选择飞入。
对于应用效果会有不同的方法产生。比如当你选择的应用效果是“飞入”的时侯,文本可以从底部飞入,可以从左边飞入,也可以从右边飞入,这些就是方法。在这个下拉列表里并没有注明这个术语。有的应用效果是没有方法的,比如波动。我们这里选择从底部飞入。
最后保存该页面并预览,你会发现网页陶吧这个四个字在网页第一次加载后从底部飞入。当然,你也可以尝试其它DHTML效果。对于选定图片,你会在DHTML效果工具栏的开启下拉列表看到新的事件,单击和鼠标悬停,它们会有各自的应用效果和实现方法。你可以每一个尝试一下,这样你就能明白这些事件和应用效果和方法之间的关系。
3、DHTML的小技巧
DHTML兼容性
利用FrontPage2000制作的DHTML网页只能被InternetExplorer4.0或以上版本完全正常浏览。对于图片的DHTML效果,Netscape Communicator 4.0或以上版本也可以浏览。
禁止DHTML
如果想禁用DHTML效果,点选菜单工具/网页选项,在打开的对话框里选择兼容性标签,取消动态HTML前的复选框里勾,这样DHTM效果被禁用。
快速使用DHTML
一般情况,在你没有选定某一个对象的情况下,你只需要把鼠标移动到对象的左边或者右边单击一下就可以使用DHTML效果了。
4、网页过渡
网页过渡是指当你进入或者离开一个网页的时侯所产生的效果的这个过程。比如你从某一页进入另一页,你会发现当前页慢慢向中间合拢,同时出现了另一个新的页面,直到当前页合拢消失而最后出现新的页面。如果你想使用网页过渡,可以按照以下步骤:
1).打开想使用过渡效果的页面,或者新建立一个页面。点选菜单格式/网页过渡,打开网页过渡对话框;
2).在事件下拉列表里选择一个事件,我们选择进入网页。大家要注意,当你为某页和站点都设置了过渡效果时,网页将比站点过渡效果优先;
3).在周期文本框里输入持续的时间,然后在过渡效果列表框里点选一个效果,单击确定。利用浏览器打开该页面,因为我们选择的网页过渡是进入网页,所以当你打开该页时你就能看到过渡效果了。
利用DHTML效果的确是吸引访问者的有力利器,但如果你不愿意和复杂的代码打交道,那么FrontPage2000为你预设了许多DHTML的效果。你要做的仅仅是选定需要动态效果的对象,比如文字,图片,然后利用“傻瓜”式的操作就可以让你的网页动起来。
Web页有自己的一组属性,通过选择“文件”菜单中的“属性”或通过鼠标右键单击页内任何位置,选择快捷菜单中的“网页属性”命令,可以打开“网页属性”对话框,在“常规”选项卡中,各项设置含义如下:
·位置:指出页的完整URL。
·标题:显示的页标题,即在HIML中显示在<head>元素中的<tit1e>标签内。
·基位置:在此位置可输入一个URL,可将这页中使用的相对URL的超链接总指向同一正确的目标,通过对一个URL的说明,可以在不移动相对URL中所有目标的情况下,移动这个页。
·默认的目标框架:定义不规定框架的页中所有超链接的默认框架。
·背景音乐:加入背景音乐,当浏览器打开该页时,会同时播放音乐。
在其它选项卡中还可对页边距、语言等系统参数进行设置。
建立超链接
--------------------------------------------------------------------------------
超链接(HyperLink)的出现使网上浏览变得更加便捷,只须用鼠标轻轻点击,便能轻松地从一个页面跳转到另一个页面,从一个Web站点跳到另一个Web站点,从一个国家跳到另一个国家。超链接就是一些特殊的文本或图像,是其它页面的入口。
1.与当前web站点的页面建立超链接
(1)在FrontPage中打开要建立超链接的页面(若是新建页面,则要肯定该页面己被保存),选中超链接源,超链接源可以是一个字符、一个单词、一句话或一幅图片等。
(2)选择“插入”菜单中的“超链接”命令,或单击“常用”工具栏的“超链接”按钮,则弹出“创建超链接”对话框(如图),在该对话框中列出了当前FrontPage中打开的Web站点中的文件夹和文件。
(3)在该对话框的文件列表中,选择要建立链接的目标文件。
(4)单击“确定”按钮,超链接建成。
2.与本机中的其它文件建立超键接
(1)选择超链接源,打开“创建超链接”对话框。
(2)在该对话框中单击“制作一个链接到您计算机上文件的超链接”按钮,然后从弹出的对话框中找到自己所要链接的文件,选中它。
(3)单击“确定”按钮,超链接建成。
3.与world wide web上某一站点建立超链接
(1)在FrontPage中打开欲建超链接的页面,选定超链接源。
(2)选“插入”菜单中的“超链接”或单击常用工具栏的“超链接”按钮,弹出“创建超链接”对话框。
(3)在“URL”文本框中,输入超链接目标的URL。
(4)单击“确定”按钮。
格式化文本
--------------------------------------------------------------------------------
1.输入文本
从总体而言,文本仍是网页中的主体内容,在FrontPage中输入文本与在Word中输入文本非常类似。
(1).需要加入空行或换段时才使用Enter键,当输入文本达到所定义的右边界时,将自动换行。若录入文字有错可按Backspace键清除错误,重新录入。
(2).可在文本中任意位置处插入新文本内容,操作时把鼠标指针定位到欲加文本处即可添加文本。
(3).可进行覆盖式录入,即先用鼠标选中要替换的文本,然后直接录入文本。
(4).可通过单击常用工具栏的“显示所有”按钮,让段落标记在屏幕上显示或隐藏,借助段落标记可清楚地看到段与段之间的空行。
2.文本的选择
(1).选择一个单词或多个单词:选择一个单词只需在该单词上双击鼠标即可,按住鼠标左键在要选单词上拖动即可选择多个单词。选择字与选择多个单词的方法相同。
(2).选择一行文字:一行文字就是在屏幕上占据一行空间的文本。将鼠标箭头移到行的最左边,当光标箭头变为指向左边时,单击鼠标左键,便可选择该行。
(3).选择一个段落:将鼠标箭头移到该段落的最左边,当光标箭头变为指向左边时,双击鼠标左键,或按下ALT键,再用鼠标单击想要选择的段落,即可选择该段落。
3.删除、拷贝和移动文本或图片
(1).删除:删除插入点左侧的一个字符,按Backspace键;删除插入点右侧的一个字符,按Delete键;删除插入点右侧的一个单词,按Ctrl+De1ete键;剪切所选内容并保行到“剪贴板”,按Ctrl+X键;删除所选内容按De1e1e键或选择“编辑”菜单中的“删除”命令。
(2).拷贝:拷贝所选文本或图形到剪贴板,方法是:选中文本或图形,然后按Ctrl+C键或从菜单上选择“编辑”菜单中的“复制”菜单命令,也可直接单击工具栏中的“复制”按钮。
(3).移动文本或图片:选择想要移动的文本或图片,再拖曳到要插入的位置,释放鼠标,所选对象就移到目的地。如果先将选择的文本或图片“剪切”,然后再“粘贴”到指定区域,也可将其移动。
(4).通过“撤销”取消误操作:如果用户在不小心的情况下错误地执行操作,单击工具栏上的“撤销”命令按钮,可以取消用户执行过的操作,或从菜单栏选择“编辑”菜单中的“撤销”菜单命令,或按Cir1+Z键。
4.加入标题
出于页面内容层次的需要,有时在页面中要加入一些小标题。 HTML语言规范采用6级标题,各级标题采用文字不同字号来区分,其中标题1为大标题,其它依次为中小标题。要设定某一级标题,可以在FrontPage格式工具栏中的“样式”下拉列表中选中一个标题等级,然后在光标处输入标题文字即可;或者先输入文字,并选定该文字,然后在“样式”下拉列表中选定某一级标题。标题结束后,将下拉列表中的格式改回原来的“普通”,再进行其它内容的输入。
5.改变字体及设置字体效果
FrontPage在通常情况下,字体为“Times New Roman”。若用户的操作系统是中文Windows95/98或Windows NT,中文默认字体为“宋体”,文字大小采用默认的字号。若要设定不同的字体,可先选择要改变的文字,然后在格式工具栏里的“字体”下拉菜单中选择一种字体,或从菜单栏选择“格式”菜单中的“字体”菜单命令,通过“字体”对话框来设置,并可设定字体样式、大小等。当字体改变后,形式将一直保持,直到用户又重新设置新的字体为止。
(1).设置字体颜色:选中文字,单击格式工具栏上的“文本颜色”按钮的下拉箭头,就会弹出其下拉列表,在“标准颜色”中选择所需颜色;若没有,可选择“更多的颜色”命令,然后从弹出的对话框中选择。
(2).设置字体样式:要对需要的文字进行粗体、斜体和下划线处理,只要选择要处理的文字,从格式工具栏上单击“加粗”、“斜体”或“下划线”按钮即可。想解除此效果,可以选中文字,再次按相应的按钮就可以解除效果,恢复到正常字体。在制作网页时,一般不采用“下划线”效果,因为下划线在一些网页中都表示有超链接。
(3).字体加线效果:共有两种:“下划线”可以在选中的文字下面划一条线;“删除线”在文字中间贯穿划一条线。
(4).特殊的文字风格:当选中的文字需要使用某些特殊风格,如“闪烁”风格,可通过选择“字体”对话框中“字体”选项卡(如图)的“效果”区域的所需选项,但有的文字特殊效果只有在浏览器中才能体现出来。
6.文本的缩进
文本的缩进就是使文本左边、右边显示空白,这种效果有利于对关键段落加强说明。要对一个已有的段落运用缩进的方式,首先选中段落,然后在格式工具栏上单击“增加缩进”按钮,段落左边和右边分别缩进一段距离,连续按“增加缩进”按钮,缩进将进一步加大。这种在文字两边同时缩进的方式也称之为双向缩进。若缩进的空间太大,可以通过单击“减少缩进”按钮来减少缩进的空间。
7.文本对齐方式
若输入的文字是从该页的左边距开始,并逐渐向右延伸,且到了行满以后又折回下行左边(左边距处)重新开始,这就是左对齐。有些文字需要居中方式,比如标题之类的文字;而有些文字需要放到右边,这些可通过格式工具栏上的“向左对齐”、“居中”和“向右对齐”按钮来实现:,不同的对齐方式可以使文本呈现不同的显示样式,而且可以清楚地表明用户想要说明的问题,使网页整体保持协调。 要设定文本的居中、左齐或右齐方式,须先选择好要设置的文本,再单击相应按钮即可。如果用户想回到原始状态的对齐的方式,应先选定该文本,再单击格式工具栏上相应的对齐按钮。
8、加入项目符号或列表编号
有一些列表前面有加圆点的符号,说明一条条的列表内容,这在专业排版中称为项目符号,在Web页面中加入项目符号或列表编号可使内容有条理、更清楚,可以通过列表把大量内容简要地描述出来,便于读者抓住重点。还有另外一种形式即列表编号,可以用来描述一个问题的处理步骤和顺序,这两种处理形式在FrontPage中运用起来很方便。
加入项目符号或列表编号与在Word中的操作很类似。先选定文本,用户可以在格式工具栏按相应的按钮,或选“格式”菜单中的“项目符号和编号方式”命令,打开项目符号和编号方式对话框(如图),从中选定不同格式的列表项目。
在FrontPage中新建的两个文本行之间都有一个空行,如果用户在输入或添加项目时不想每两行之间都出现一个空行,可以在格式工具栏上单击“项目符号”或“编号方式”按钮。该按钮为下凹状后同时出现第一个项目符号,输入需要的文字后,按“回车”键,然后在自动出现的下一个项目符号后继续输入。
FrontPage还可以通过提供列表编号或项目符号的方式对列表项进行排列。操作方法与上一段所述相同。
如果在所有项目输入完毕后,以下的内容不再希望添加编号或项目符号,可两次回车,则停止编号或停止添加项目符号。若想改变编号的形式或不想从1开始,可通过在列表符号上单击鼠标右键,在弹出的快捷菜单上选择“列表属性”命令,在弹出的“列表属性”对话框中选择“号码”选项卡,选择所需的编号风格,再在右边的“初始号码”微调器中调整起始编号,在调好之后单击“确定”按钮即可。
‘贰’ java 目前市面上比较火的框架有哪些
Java 始终排在第一位,这使它成为有史以来最着名的软件编程语言之一。及时的更新和新版本发布使它成为一种充满活力的、有竞争力的编程语言。
2020年最常用的java框架
十大常用框架:
一、SpringMVC
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
一、SpringMVC
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
模型(Model )封装了应用程序的数据和一般他们会组成的POJO。
视图(View)是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释。
控制器(Controller )负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。
Spring的web模型 - 视图 - 控制器(MVC)框架是围绕着处理所有的HTTP请求和响应的DispatcherServlet的设计。
Spring Web MVC处理请求的流程
具体执行步骤如下:
1、 首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;
2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;
3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;
4、 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。
二、Spring
2.1、IOC容器:
IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IOC容器进行组装。在Spring中BeanFactory是IOC容器的实际代表者。
2.2、AOP:
简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系
AOP用来封装横切关注点,具体可以在下面的场景中使用:
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading懒加载
Debugging 调试
logging, tracing, profiling and monitoring记录跟踪优化校准
Performance optimization性能优化
Persistence 持久化
Resource pooling资源池
Synchronization同步
Transactions 事务
三、Mybatis
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
总体流程:
(1)加载配置并初始化
触发条件:加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求
触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
©获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(E)释放连接资源。
(4)返回处理结果将最终的处理结果返回
MyBatis 最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。
四、Dubbo
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用协议)远程服务调用方案,以及SOA服务治理方案。简单的说,bbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有bbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。
1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
2、软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
3、 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
五、Maven
Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包。但是对于我们程序员来说,我们最关心的是它的项目构建功能。
六、RabbitMQ
消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。
RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。
Erlang是一门动态类型的函数式编程语言。对应到Erlang里,每个Actor对应着一个Erlang进程,进程之间通过消息传递进行通信。相比共享内存,进程间通过消息传递来通信带来的直接好处就是消除了直接的锁开销(不考虑Erlang虚拟机底层实现中的锁应用)。
AMQP(Advanced Message Queue Protocol)定义了一种消息系统规范。这个规范描述了在一个分布式的系统中各个子系统如何通过消息交互。
七、Log4j
日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
八、Ehcache
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。
优点:
1、 快速
2、 简单
3、 多种缓存策略
4、缓存数据有两级:内存和磁盘,因此无需担心容量问题
5、 缓存数据会在虚拟机重启的过程中写入磁盘
6、可以通过RMI、可插入API等方式进行分布式缓存
7、 具有缓存和缓存管理器的侦听接口
8、支持多缓存管理器实例,以及一个实例的多个缓存区域
9、提供Hibernate的缓存实现
缺点:
1、使用磁盘Cache的时候非常占用磁盘空间:这是因为DiskCache的算法简单,该算法简单也导致Cache的效率非常高。它只是对元素直接追加存储。因此搜索元素的时候非常的快。如果使用DiskCache的,在很频繁的应用中,很快磁盘会满。
2、不能保证数据的安全:当突然kill掉java的时候,可能会产生冲突,EhCache的解决方法是如果文件冲突了,则重建cache。这对于Cache数据需要保存的时候可能不利。当然,Cache只是简单的加速,而不能保证数据的安全。如果想保证数据的存储安全,可以使用Bekeley DB Java Edition版本。这是个嵌入式数据库。可以确保存储安全和空间的利用率。
九、Redis
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis数据库完全在内存中,使用磁盘仅用于持久性。相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。Redis可以将数据复制到任意数量的从服务器。
1.2、Redis优点:
(1)异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。
(2)支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表,集合,有序集合,散列数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的数据类型更好。
(3)操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。
(4)多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。
1.3、Redis缺点:
(1)单线程
(2)耗内存
十、Shiro
Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证,授权,企业会话管理和加密等。Shiro的具体功能点如下:
(1)身份认证/登录,验证用户是不是拥有相应的身份;
(2)授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;
(3)会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;
(4)加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;
(5)Web支持,可以非常容易的集成到Web环境;
Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;
(6)shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;
(7)提供测试支持;
(8)允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;
(9)记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。
文字描述可能并不能让猿友们完全理解具体功能的意思。下面我们以登录验证为例,向猿友们介绍Shiro的使用。至于其他功能点,猿友们用到的时候再去深究其用法也不迟。
十一、设计模式
这个算不上框架,可自行忽略,不过我认为设计模式的思想很有必要了解一下。
思想:
开闭原则:
开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码。
针对接口编程,针对接口编程,依赖于抽象而不依赖于具体。
尽量使用合成/聚合的方式,而不是使用继承。
一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
使用多个隔离的接口,比使用单个接口要好。
里氏代换原则:
(1)子类的能力必须大于等于父类,即父类可以使用的方法,子类都可以使用。
(2)返回值也是同样的道理。假设一个父类方法返回一个List,子类返回一个ArrayList,这当然可以。如果父类方法返回一个ArrayList,子类返回一个List,就说不通了。这里子类返回值的能力是比父类小的。
(3)还有抛出异常的情况。任何子类方法可以声明抛出父类方法声明异常的子类。 而不能声明抛出父类没有声明的异常。