barriers / 阅读 / 详情

求助:stm32上移植ucos-ii出现硬件错误 OSStartHang

2023-06-11 09:00:53
TAG: tha ssta
共1条回复
左迁

这个么,有两种原因

1. 如果你是连JTAG调试时偶尔出现的这种情况,不连JTAG板子自己跑时没问题,那么你可以忽略这个问题,因为CONTEX-M3的内核用JTAG调试时偶尔会这样,具体原因不详,可能是JTAG链不够健壮吧。

2. 如果每次程序跑起来都这样或经常这样,那么就是你程序的问题了。设断点仿真一下,看执行到哪一步死掉的,比如说开中断的时候,比如说初始化某个特殊外设的时候,比如说执行某个特定代码的时候,这个就只能你自己试了。另外,不好设断点的地方,可以用IO口接几个LED来进行程序执行状态的显示,就是到哪里亮哪个灯呗。

相关推荐

LaTeX, TeX, MacTeX, ConTeX之间到底啥关系啊?求简述。

TeX是一种字处理软件, 跟word很类似,但是一方面是开源免费的,另一方面数学公式处理的比较好,所以很多期刊都只收TeX格式的投稿。TeX虽然功能很强大,但是不易用,需要使用者学习很多的命令,而因为TeX是开源的,因此衍生了很多版本,最流行的就是LaTeX,LaTeX对很多命令和宏进行了封装,易用性得到了提高。MacTeX,顾名思义,是苹果Mac操作系统下的Tex软件。ConTeX,与LaTeX一样,也是TeX的衍生版本,但是不如LaTeX应用范围广。
2023-06-10 16:58:291

android中的context函数是起什么作用的?为什么在每次遇到contex()函数的时候都可以用this这个指针代替,

2023-06-10 16:58:351

大幅扫描仪有什么著名品牌

有colortrac(卡莱泰克)、contex(康泰克斯)、Graphtec(日图)三个品牌。我们用的是COLORTRAC的,据说是紫光图文代理的 ,尤其是扫描后直接修图,不用调用第三方软件,对于我们做数据加工的来说 太方便了。节省不少时间,而且使用过程中故障很少 我用的是GX42,我们一天扫描800张大图纸,已经使用2年了 没有出现什么大的问题。我强力推荐此品牌。
2023-06-10 16:58:453

contex-M抢占优先级作用

高优先级的线程要抢占低优先级线程的cpu的执行权。但是只是从概率上讲,高优先级的线程高概率的情况下被执行。并不意味着只有当高优先级的线程执行完以后,低优先级的线程才执行。从而印证了线程优先级的高低是概率问题,并不是一定会执行完,低优先级的线程才会执行。就如转幸运大转盘,就算三分之二都是中奖,仍然有可能好几次都不中奖。1、抢占优先级比子优先级的优先权更高,这意味抢占优先级更高的中断会先执行,而不管子优先级的优先权,数值越低优先级越高。2、同理,如果抢占优先级相同,那么就会比较子优先级,子优先级更高的中断将会先被执行,数值越低优先级越
2023-06-10 16:58:521

嵌入式contex A、R、M三个系列汇编指令集通用吗?

它们的汇编不完全通用,即使是a系列不同的cpu支持的汇编指令都有所不同。
2023-06-10 16:58:581

contex i3620s扫描仪与电脑连接后 显示找不到这台扫描仪是怎么回事

这个问题我也遇到过,扫描仪找不到,有两种可能:1、你的电源没有插好,所以计算机找不到你要的设备。2、你的驱动程序有问题;办法就是:1、把电源再插一下,看看你扫描仪或打印机的显示灯亮不亮。2、打开添加删除程序对话框,(双击我的电脑,打开控制面板,双击添加删除程序)看看里面有没有你扫描仪和打印机的驱动程序,如果有的话,你把它删除掉(可能是以前的驱动有问题,)再安装一遍就行了,我以前就是用这种方法排除这种故障的。
2023-06-10 16:59:071

本人刚学完51单片机,多方面询问,大家推荐我学习contex-m0,请问如何学习contex-m0,上手较快。

1,楼主,你首先要学习C语言基础,就相当于80%会单片机了,因为现在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C语言。2,先看内核8051的单片机:台湾宏晶的STC89C51-DIP40/或其它如新茂,到网上买一个开发板,价格不会超过200元。3,看一下单片机功能:包换内部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。4,编译环境、编程软件KEIL。5,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很激动,这时你真正学会了单片机,你成功了!!!!!。6,单片机C语言举例:sbit SPEAK = P1^5; //IO口定义为蜂鸣器控制 如果蜂鸣器正极接电源,SPEAK =0;蜂鸣器就会响,你看就是这么简单。unsiggne char temp;//定义TEMP为单字节变量。sfr PORTA P1;//将P1口定义为PORTA 7,当你过渡到ARM时,你就要学习LINUX和WINCE这两个最基本的操作系统运用在单片机上。8,同样的理,你也要买ARM2410/2440为代表的开发板,慢慢按照说明书一步一步地操作,练习,不停地做实验,就学会。9,当然,你得打一份工作,关于我上所说的,开始工资不要要求太高,等你做完几个项目后,你真正学会了,才跟老板或上司提,这样继续或或另寻高就才有资本。10,你也抽点时间看看《郭天祥十天学会单片机和c语言编》一书,巩固一下理论知识。总结:多做开发板上的实验,你要多参与这样的项目开发,慢慢就会了。
2023-06-10 16:59:161

Contex A8是哪个方案

Cortex-A8ARM首款超标量CPU,双发射顺序结构,带来2.0DMIPS/MHz的效能。普遍带有256KB的L2缓存,加上600MHz-1GHz的高频率,相对ARM9和ARM11有显著的提升。Cortex-A8标配Neon单元,通过SIMD指令集大大加强浮点性能,可以实现不少DSP的功能。与此同时,相对高昂的授权费用和较大的核心面积,使得Cortex-A8 SOC的成本相对较高,作为定位中高端的产品出现。高通QSD8x5065nm工艺Scorpion 1GHz,Linpack 7-7.5MFlops(2.1系统)RAM: 256/512M mDDR,32bit视频子系统:高通QDSP6000支持720p H.264,但一般只有480p H.264流畅(BP或者MP)通过软件解码能勉强支持480p多格式流畅3D加速: Adreno 200(AMD Z430)架构:IMR,统一渲染架构特性:OPENGL ES2.0/1.1,OPENVG三角形生产率:22M像素填充率:133M代表机型:google N1, Dell streak个人观点:最早的1GHz芯片,性能挺强劲,高端手机标配。浏览网页什么的自然不用说,系统也巨流畅。3D的Adreno 200不算强,因为高通的占有率挺高,游戏厂商都会做相应的优化,基本不用担心有游戏跑不了。视频通过DSP解码,高通的DSP虽然强劲,但是也只能到720p,实际也就576p以下能流畅。而且高通只做了H.264的codec,并且大部分厂商只支持baseline profile。有些机型能支持High Profile的解码,以及WMV的解码,不过兼容性有待提升。得益于Cortex-A8附带的Neon核心,处理器的浮点性能大大加强,可以通过软件解码处理各种编码的视频。不过性能还是有限,在1GHz高主频的CPU上,480p能基本流畅,不过高码率的片段,还是会掉帧甚至卡顿。此外该芯片集成了基带,所以拿它做的东西,肯定是可以打电话的,于是价格也不会太便宜。性能★★★★★视频★★☆☆☆
2023-06-10 16:59:251

contex chameleon g600能在win7上用吗

应该是可以的。首先你可以从厂家或者产品官方网站上找到该款型号的对应驱动程序。每个驱动都有对应的版本,就是可以在那个平台上使用,比如win7/winXP等。如果有win7系统的驱动就可以用,没有的话就没有办法了。
2023-06-10 16:59:321

contextM3内核 arm架构 stm32芯片 哈佛结构是什么关系?

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构与冯·诺依曼结构处理器相比,处理器有两个明显的特点:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
2023-06-10 16:59:423

contexutalism在语言学中是什么意思?

语境主义是语言学中的一种理论,它认为语言是由多个相互作用产生意义的语境组成的。
2023-06-10 17:00:002

有C# 使用contexmenustrip控件 改变窗体的颜色

你这个的问题是,你的ClickMenuItem(object sender,EventArgs e)这个函数并没有和你的快捷菜单的项目关联起来。 换句话说,当你点击你的菜单选项的时候,没有走进这个函数里面。所以其实你的函数是对的。但是没执行。解决的办法是为每个选项建立和这个函数的关联 方法:1、选中contextMenuStrip12、打开设计器界面中的菜单,在菜单选项上点右键,属性。3、在事件(一个黄色闪电的图标)栏里,找到Click,点击下拉,选择你的这个函数。4、为4个选项都设置这样的关联。你的函数就会被执行了。 谢谢采纳
2023-06-10 17:00:061

急!急!哪位朋友能有CONTEX IQ4400的扫描驱动程序?能发一份吗?多谢^_^

你可以尝试使用360驱动大师来更新一下驱动看看。
2023-06-10 17:00:142

安装avg的时候提示contex64.dll是无效的镜像文件怎么办

会影响使用的.经核实,你可能写错了,应该是 context64.dll 对不对? 如果是的话自己从网上下载这个.dll来复制进system 32 就可以了,再装一次.
2023-06-10 17:00:211

android中怎样获取Context

直接传你那个Activity的名字加上.this,比如你的activity叫MyActivity则在传context参数的时候,参数写MyActivity.this即可传Context过去。
2023-06-10 17:00:301

arm 与Cortex是什么关系?

ARM V5是ARM架构。CONTEX是ARM的一个系列,分别对应A,R,M三种,应用于不同方向
2023-06-10 17:00:393

怎么拿到applicationcontext

方法如下:实现1.创建一个类让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.示例代码:import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;public class MyApplicationContextUtil implements ApplicationContextAware {private static ApplicationContext context;//声明一个静态变量保存public void setApplicationContext(ApplicationContext contex) throws BeansException {this.context=contex;}public static ApplicationContext getContext(){return context;}public final static Object getBean(String beanName){return context.getBean(beanName);}public final static Object getBean(String beanName, Class<?> requiredType) {return context.getBean(beanName, requiredType);}}2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.例:<!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性--><bean class="org.ing.springutil.MyApplicationContextUtil"></bean>3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.
2023-06-10 17:00:461

arm 芯片 嵌入式

蓝色的是经典的处理器类型,用于移动设备,比如手机,XPad等等,中间的绿色的用于嵌入式系统,比如高档汽车中控系统,机械臂等等,而黄色的是应用处理器,用于高端手机和手持仪器,电子钱包和金融事务处理器,这里所谓的“应用”,指的是运行像办公软件,导航软件,网页浏览器等....图中横坐标是性能,纵坐标是功能....图中你会发现有Contex-A,Contex-R,Contex-M三个系列,代表3个款式(A,R,M)...A系列是应用型处理器,而R系列是硬实时高性能处理器(注意是实时....要求处理器能在短时间快速做出反应),而M系列侧重低功耗,低成本.图中的处理器以架构分类可以这样分:(1)ARM7,ARM9属于v4T或v5E架构(2)ARM11属于v6架构(3)Contex属于v7架构ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)架构上v5E相比v4T则是在于v5E新加入的增强型DSP(数字信号处理)指令,v4T则是Thumb指令集的加入,v6架构则是开始支持SIMD以及Thumb2的问世新指令的加入,增强了处理器的性能或实时性,这样,您该看懂图片的意思了吧
2023-06-10 17:00:551

vs2005 vb.net server.mappath 显示没有声明 imports System.Web.HttpContex 是错的

你没在调用server.mappath的文件中声明吧,如果没有声明,就要用全称,比如:System.Web.httpcontex.server.mappath。如果想省事些,直接在文件头部声明上:imports system.web
2023-06-10 17:01:131

我以前是从事地基测绘工作的,由于大江南北的工作不固定,所以想转行室内设计。以前在校学的是土木工程

05年7月19日伯灵顿,马萨诸塞州,美国和丹麦ALLEROD - Contex的扫描技术和Z公司今天宣布,两家公司将合并,以创建工程市场在全球领先的色彩扫描和三维打印解决方案,包括计算机辅助设计(CAD),??地理信息系统(GIS)和建筑,工程和施工(AEC)伯灵顿,马萨诸塞州,美国和丹麦ALLEROD - 地理信息系统(GIS)和建筑,工程和施工(AEC)的,该交易预计将在2005年第三季度,该交易预计在2005年第三季度结束。财务条款尚未披露。财务条款尚未披露。3D扫描仪,三维扫描仪合并后的公司年收入将超过1亿美元(8400万欧元),分布在80多个国家,超过400Contex的扫描技术公司的首席执行官和斯蒂恩博格说,“这次合并是令人兴奋的,因为我们领先的二维扫描和数据生命周期管理产品结合Z公司的3D打印机提供了一个完整的解决方案,数据收集,存储,处理和输出,”合并后的公司的首席执行官。 “我们的研究表明,Z公司的技术优势,速度快,成本低,色彩快速的市场认可和公司的快速增长背后的驱动程序。凭借强大的财政支持,我们的主要投资者,EQT和Z公司的优秀团队,Z Corp的将是我们在三维空间中的未来增长的引擎。“凭借强大的财政支持,我们的主要投资者,殷拓集团和于公司的优秀团队,Z公司的将是我们在三维空间中的未来增长的引擎。“Contex的扫描仪,数字化采集的文件,图纸和其他2D输入,以便查看,编辑,存档,转换,文件或打印输出数据。 Z Corp的市场是世界上最快,成本最低,只有全彩色三维打印机 - 机械,很像传统的打印机生产的电子产品设计的物理原型生产纸张的电子文档的输出。于公司的市场是世界上最快,成本最低,只有全彩色三维打印机 - “Z Corp的”颜色优势是决定性的,“博格继续。于公司的“颜色优势是决定性的,”博格继续。“我们有信心,颜色将作为3D打印机是必不可少的,因为它是在2D打印机和扫描仪。我们期待着将这些产品推向工程市场的主流。“我们期待着将这些产品推向工程市场的主流。”滨海Hatsopoulos,Z Corporation的创始首席执行官将接受一个座位上Contex的董事会董事,并加入前Z Corporation的主席沃尔特Bornhorst Contex的投资者。滨海Hatsopoulos,Z公司的创始首席执行官将接受一个座位上Contex的的董事会董事,并加入前Z Corporation公司的主席沃尔特Bornhorst Contex的的投资者。汤姆粘土将继续保留其公司名称,品牌,研发基础设施,和销售,Contex的子公司,独立运作的Z公司的主席,Hatsopoulos视为一个绝佳的机会,为客户,员工和业务合作伙伴的合并。 Hatsopoulos视为一个绝佳的机会,为客户,员工和业务合作伙伴的合并。“结合Z Corp的金融实力和市场Contex的存在,使我们的理想位置,以推动未来的增长,”她说。 “结合?粘土补充,组合将帮助Z Corporation公司迅速扩大其产品。粘土组合将帮助于公司公司迅速扩大其产品。“这次合并使我们以建立与资源一个更强大的公司,以加快研发和成长市场为主流的3D印刷,“他说。“我们早就意识到,我们的3D打印机的最有用的素质的速度快,很大一部分质量和颜色,阿姆斯特朗,美国NIKE的科技计划经理说:”丹。 “这就是为什么我们把它推荐给我们的NIKE公司的网络,并已超过其他所有RP设备相结合的Z Corporation的三维打印机。公司的三维打印机,这是毫不奇怪,Z Corporation公司是第一个技术,采取这一步。“这是毫不奇怪,Z Corporation的公司是第一个游戏,采取这一步。”分析人士说,合并是刚刚最新的Z Corp的三维打印在一般的进展值得注意的例子。分析人士说,合并是刚刚最新的于公司的三维1 1#打印在一般的进展值得注意的例子。“Z Corporation公司一卷其新的频谱Z510彩色打印机,令人印象深刻的速度和颜色和市场反应良好,说:“行业分析师Terry沃勒斯沃勒斯“要选择的公司,由Contex的确认,其产品有望进入主流。”要选择的公司,由Contex的的确认,其产品有望进入主流。“关于Contex的关于Contex的扫描技术的扫描技术Contex的扫描技术是宽幅彩色和单色扫描仪和先进的扫描和复制软件,这些产品的创新开发的领先制造商。 Contex的创建大幅面,CAD,地理信息系统,图形艺术,文件档案,复印店,POP /展览供应商,印前,注册和广告牌制作,建筑和工程处的解决方案。 Contex的的建立大幅面,CAD计算机辅助设计,地理信息系统,图形艺术,文件档案,复印店,POP /展览供应商,印前,注册和广告牌制作,建筑和工程处的解决方案。上下文扫描技术的全资殷拓集团。上下文扫描游戏全资拥有的EQT。
2023-06-10 17:01:222

求蛋白质粉搭的营养早餐

鲜奶1份(225ml包装的就可以)蛋白粉1勺熟鸡蛋1个中等大小苹果1个香蕉1个用搅拌机打成泥,就可以喝了。再配上1对倍立健。
2023-06-10 17:01:303

.Net中 DataContex可不可以绑定多个类

不可以,你可以吧数据 整合下
2023-06-10 17:01:371

C#语言中调用DataGridView控件增加和删除的触发事件方法

首先在程序中添加一个ContexMenuStrip1控件,给该控件添加删除项, 把 datagridview的ContexMenuStrip属性项绑定为你所添加的ContexMenuStrip1控件,然后就是你自己编写程序来操作删除具体的东西了
2023-06-10 17:01:431

Useless use of numeric gt (>) in void contex “Perl 问题”

这位同学, 你的问题可多了, 不过首先, 你在 第二个sub calculate 之前, 还少了个 } 而你不想看到 Useless use of numeric... 只要不加 -w 就可以了. 到我看到的问题了.1. 你写了两次 sub calculate {...}, 你想干甚麼 ? 而根据perl 的逻辑, 你第一次写的 sub calculate 将完全作废2. 你的变量命名完全没有意思, 实在看不出你想做甚麼.3. our 不是这样用的, 用 my 即可4. if($similarity[$a][$b]>$sim[$a][$e],$a!=$b,a!=$s_1&&$b!=$s_2)... 这里出现两个问题, 首先, 这样的 "," (逗号)的出现不知道你想做的是甚麼, 另外, a!= , 你少了个 $, a 将会被视为 &a() 涵数5. 留意一下你想表达的逻辑, !$similarity[$s_2=0][$b]==0 $s_2=0 是甚麼 ? ! xxx ==0, 其实是不是 xxx != 0 ?6. 最後(暂时), my $a; my $b; ... my $j; 其实可以写成一行: my ( @similarity_entropy, @sim, @similarity, $s_1, .... $j ) ;
2023-06-10 17:01:531

Babolat网球拍系列有什么区别么?~

BABOLAT最主要是它的WOOFER线孔和AERO拍框 PRINCE最主要是大孔设计 使挥拍更快 HEAD最主要是以前的流金和现在的MicroGel科技
2023-06-10 17:02:113

基于speech SDK的C# 语音识别程序代码!求大神给我解释一下下面的一段代码! 急需啊!!! 谢谢了!

参考答案 人生的悲哀是你遇上了一个对你很重要的人,他是你的一切。然而,你却没有办法留住。
2023-06-10 17:02:193

蔡司镜片的特点是什么?

蔡司镜片以高科技含量与绝佳品质享誉全世界,品牌形象无可挑剔,但因其价格昂贵,消费群体仅局限于上层人物与成功人士的富裕阶层圈子。尊贵的品牌历史世界光学界的权威德国蔡司ZEISS公司由卡尔.蔡司先生与欧尼斯.阿贝先生创建于1846,蔡司产品的品质多年来受到专业人士及市场的高度评价,尖端科技、望远镜、显微镜、专业照相机镜头、天文望远镜、星象仪、眼科仪器、高精度电脑手术仪器、美国阿波罗飞船登月,无一高科技领域没有蔡司的身影,二十多位诺贝尔奖得奖者都曾使用蔡司产品,蔡司是全球公认的最佳品牌20世纪最伟大的科学家爱因斯坦在1925年写给友人的信中强调“蔡司”镜片代表最高品质与值得信赖,其强调“……要达到万分之一原来的精确度的时候,研磨技术上是如此困难,只有蔡司能够做得到,因此,每一台回转仪都必须送到蔡司公司做镜表研磨……”在德国,Benz(奔驰)、Audi(奥迪)等世界一流的车厂里,为保证严谨设计之车体每一个部位都精密无误,达到车体完美的紧密装配境界,都采用蔡司公司制造的三度空间测量仪来检测车体,只有蔡司才能满足其对完美品质的要求。蔡司公司研磨的镜片就是品质与质量的象征,所有使用蔡司镜片的照相机镜头都身价不菲,Hvasselblad(苏哈)、Contex(康钛)、日本SONY(索尼)的所有高端镜头及摄像器材都采用了蔡司的镜头,去年日本在摄影界出了一本书,<ONLY ZEISS>,意思是只有蔡司才是最好的!1988年德国政府为纪念卡尔.蔡司先生给光学领域带来的伟大成就,发行了以蔡司先生的头像为图案的10马克硬币。精细研磨误差极低蔡司镜片的精密度之高与误差之小达到了令人难以置信的地步,拿镜片研磨的光滑度来做例子:如果我们将直径70毫米的镜片放大成直径26公里的湖面,湖面上的水波波纹,波峰到波谷的差距不超过0.1米!蔡司镜片的表面被精密的区分为5万个点,而这些点代表着800个数学方程式的组合,每个点的允许误差被严格控制在0.1微米以内,如此严格的品质管理保证了蔡司镜片的完美品质,每一片镜片都是精雕细琢的完美艺术品。严格控制的色散系数(阿贝数)阿贝数就是色散系数,大家都知道光线经过三棱镜可以分解成红、橙、黄、绿、青、蓝、紫。色散系数反映镜片的分光能力,色散现象最早由蔡司公司的创始人之一欧尼斯.阿贝先生发现并对色散系数设定了界定的参数,故色散系数被称为“阿贝数”。对眼用镜片来说,镜片的色散越低越好,色散系数值越大越好,如果色散强烈会出现棱镜效应,人会感到色彩斑斓,致使头晕脑涨等不适感,因此色散系数就成为衡量镜片优劣的重要指标之一,蔡司镜片特别注意阿贝数的控制,色散远远低于其他品牌相同折射率的镜片,呈现完美的视觉。极高的镜片透光率蔡司镜片的严格品质管理保证了极高的镜片透光率,加减反膜的蔡司树脂镜片透光率达到99.4%,玻璃镜片的透光率更是达到了不可思议的99.8%,人的肉眼已经无法感受到戴了镜片还是没戴镜片,如此高的精确度只有宇航科技的才有实际意义,只有蔡司这位光学界的泰斗才有如此高的标准与要求,带给您非同寻常的极至享受。完美的多波长莲花镀膜技术为保证镜片得最佳成像品质,同时使镜片使用寿命更长体现使用价值,蔡司采用了最新的镀膜与材质设计,独特的专门技术,融合纳米科技,推出莲花膜系列镜片。革命性的防水耐磨耐脏膜层,使水珠与镜片表面接触的角度大于110度,当水珠溅到镜片上时就像打到莲花荷叶上一般滑落,时刻保持镜片清洁。加膜镜片都经过5重膜层牢度测试:高温测试(Exposure to heat)——长达6小时的高温煎熬抗刮测试(Exposure to friction)——累计100小时的摩擦气候测试(Weather test)——阳光,湿气超过200小时的模拟测试盐水测试(Sslt water test)——将镜片放置在100摄氏度的盐水中数分钟附着力测试(Test:cross-hatch cutter)——将膜层切割呈井字装并撕扯数次只有最完美品质的镜片才能被打上尊贵的蔡司(ZEISS)标志
2023-06-10 17:02:292

ARM7,ARM9,ARM11等有啥区别?

arm系列从arm11开始,以后的就命名为cortex,并且性能上大幅度提升。从cortex开始,分为三个系列,a系列,r系列,m系列。m系列与arm7相似,不能跑操作系统(只能跑ucos2),偏向于控制方面,说白了就是一个高级的单片机。a系列主要应用在人机互动要求较高的场合,比如pda,手机,平板电脑等。a系列类似于cpu,与arm9和arm11相对应,都是可以跑操作系统的。linux等。r系列,是实时控制。主要应用在对实时性要求高的场合。arm7和m3,m4是同一类型。这三个里面,arm7是最早的arm产品。m3是cortex m系列的过渡品,其低端市场被cortex m0的高端替代, 其高端市场又被cortex m4的低端取代。现在m系列,是m4内核的。典型的芯片是st公司和飞思卡尔公司的。arm9 和cortex a8 是一个类型的,都是跑操作系统的,现在的高端手机,三星,htc等智能手机,就是用的cortex a8,cortex a9 内核的芯片作为cpu。(1)ARM7,ARM9属于v4T或v5E架构(2)ARM11属于v6架构(3)Contex属于v7架构ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)架构上v5E相比v4T则是在于v5E新加入的增强型DSP(数字信号处理)指令,v4T则是Thumb指令集的加入,v6架构则是开始支持SIMD以及Thumb2的问世.
2023-06-10 17:03:034

spring中如何加载多个配置文件

Spring加载多个配置文件的方式 1.第一种,使用数组代码ApplicationContextcontex=newClassXmlApplicationContext(newString["a1.xml","a2.xml"]); 2.第二种,只用通配符代码ApplicationContextcontex=newClassXmlApplicationContext("a*.xml");//但此种方法只对文件系统中的xml文件有效,针对jar包中的无效 3.第三种,引入代码ApplicationContextcontex=newClassXmlApplicationContext("a1.xml");//在a1.xml中<importresource="a2.xml"///执行resource路径为相对a1.xml的路径
2023-06-10 17:03:101

求助tomcat启动时报错:javax.naming.NameNotFoundException: Name chatroom is not bound in this Contex

版本不兼容吧,换个版本试试。
2023-06-10 17:03:182

msd 6a638是什么架构的cpu?性能如何?是32位的还是64位的?

电视优点:SUHD量子点出色的画质表现,整体感觉不错;边框非常非常窄,侧面非常非常薄;缺点:价格略高,另外目前受限于片源问题,无法发挥出机器自身的性能优势;总结:整体来说性价比可以,还是非常不错的的一款电视。
2023-06-10 17:03:274

如何用jquery $.ajax向aspx页面传递json格式数据

后台返回值后,$.ajax中sucess会接收success:function(d){ var datas=eval("("+d+")");var s=""; for(var i=0;i<datas.length;i++){ s+=datas[i]["contex"]+datas[i]["Number"]; }alert(s);}
2023-06-10 17:03:372

XmlWebApplicationContext spring里的怎么用,请个例题

ApplicationContext ac = new FileSystemXmlApplicationContex("src/applicationContext.xml"); //获得映射文件ClassPathXmlApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); //这步不需要一般applicationContext.xml这个文件大多放在/WEB-INF路径下所以可以这么写:ApplicationContext ac = new FileSystemXmlApplicationContex("/WEB-INF/applicationContext.xml"); //获得映射文件Library lib = (Library)ac.getBean("targetbean"); //获得映射对象
2023-06-10 17:03:431

Android中getContext().getContentResolver().notifyChange(uri, null);

getContext()方法获得调用update()方法的Context对象,再利用这个Context对象来获取一个ContentResolver的对象。notifyChange()方法则用来通知注册在此URI上的观察者(observer)数据发生了改变
2023-06-10 17:03:512

翻译现代语言学名词解释

1.语言学,是对语言科学地进行研究的学科。2.音素,说话时发出的声音。
2023-06-10 17:04:002

感觉|《心理学与生活》04

感觉 (sensation)是感受器——眼、耳等器官中的结构——所产生的表示身体内外经验的神经冲动的过程。 感觉的双重功能:生存和耽于声色。感觉有助于生存,例如对危险的声音警示,对危难的迅速躲避,和对适应感觉的趋向等。感觉也同时会使你耽于声色。耽于声色是指追求对感觉的一种满足感;它是对视、听、触、味和嗅等感觉的快乐体验的追求。 人类对外部世界的经验一定是相对准确和没有错误的。否则,人类将无法生存。 由于感觉过程的重要性,因此在心理学研究的历史中,感觉始终是一个重要的主题。实验心理学建立伊始,冯特就提出, 感觉和情感是复杂经验建立的基本过程 。 工厂的火灾报警器要多响工人才能在喧嚣的机器声中听到它?飞机控制板上的警示灯要多亮才能看起来比其它的灯亮两倍?咖啡中加多少糖才能感觉到甜?为了回答这些问题,我们必须能够测量感觉体验的强度。这是 心理物理学 (psychophysics)的中心任务,研究++物理刺激和刺激所产生的心理行为和体验的关系++。心理物理学是心理科学中最古老的领域。 心理物理学历史上最重要的人物是德国物理学家费希纳。费希纳提出了心理物理学这个概念,并提出测量物理刺激强度(用物理单位测量)和感觉体验大小(用心理单位测量)之间关系的方法。研究者确定阈限并建立感觉强度和刺激强度之间关系的心理量表。 绝对阈限 (absolute threshold)——产生感觉体验需要的最小的物理刺激量。 绝对阈限研究的结果总结为 心理测量函数 (psychometric function):表示每一种刺激强度(横坐标)下刺激被觉察到的百分数(纵坐标)的曲线。 因为刺激不能在任何强度下都能被清楚地觉察到,所以绝对阈限的操作定义是: 有一半次数能够觉察到感觉信号的刺激水平。 感觉适应 (sensory adaptation)是指感觉系统对持续作用的刺激输入的反应逐渐减小的现象。例如,你可能没有注意到,在户外呆一段时间后,太阳光看起来就不那么耀眼了。 适应机制使你更加快速地对新信息源挑战产生注意和做出反应。 阈限测量也受到 反应偏差 (response bias)的影响,即由一些与刺激的感觉特性无关的因素所引起的观察者以特定方式进行反应而产生的系统趋势。 信号检测论 (signa detection theory,SDT)是针对反应偏差问题的一种系统研究方法。信号检测论并不严格地关注感觉过程,而是强调刺激事件出现与否的决策判断过程。SDT区分出感觉觉察的两个独立的过程: 差别阈限 (difference threshold),是你能够识别出的两个刺激之间的最小物理差异。 差别阈限的操作定义是:有一半次数觉察出差异的刺激值。差别阈限值也被称为 最小可觉差 (just noticeable difference, JND)。 韦伯定律 (Weber‘s law):刺激之间的JND与标准刺激强度比值是恒定的。 感觉心理学 (sensory physiology)研究物理事件到中枢事件的转换机制。这个研究领域的目的是为了揭示从物理能量到感觉体验之间一系列事件链条中中枢水平的变化。我们把从一种物理能量形式(如光)到另一种形式(如神经冲动)的转化称为 换能 (transduction)。 因为所有的感觉信息都要转换成一定形式的神经冲动,大脑的不同皮层区域负责不同的感觉,因此大脑能够区分不同的感觉。对于每一种感觉,研究者都试图发现物理能量是如何转换成神经系统的电化学活动,从而产生不同性质的感觉和不同数量的感觉的。 视觉是人类和其他动物最为复杂、高度发展和重要的感觉。视觉能力好的动物具有极大的进化优势。 光线进入到角膜,眼睛前面透明的凸起。然后光线通过眼前房,里面充满了眼房液。之后光线通过瞳孔,不透明的虹膜上的开口。为了汇聚光线,豆状晶状体通过改变形状聚焦物体,变薄聚焦远处物体和变厚聚焦近处物体。对于人眼,可以利用虹膜内肌的舒张和收缩改变瞳孔大小,瞳孔是光线进入眼睛的小孔。光线通过玻璃体液,最后投射到视网膜。 瞳孔是虹膜上的开口,光线通过它进入眼睛。虹膜使得瞳孔舒张和收缩以控制进入眼睛的光线量。通过瞳孔的光线经晶状体聚焦到视网膜;晶状体倒置客体,在视网膜上形成倒置的图像。由于晶状体具有对近处和远处客体聚焦变化的能力,所以是人眼中非常重要的构造。睫状肌可以改变晶状体的厚度,我们把这种化学特性称为调节。 我们用眼看,用脑觉察。人眼聚集光线,并聚焦,再向大脑传递神经信号。因此,眼睛的关键作用是把光波转换为神经信号。这个过程是在眼球后壁的 视网膜 (retina)上完成的。在显微镜下,能够看到视网膜分为几层,分别由不同的神经细胞组成。 从光能到神经反应的基本变化是通过视网膜上对光敏感的锥体和杆体细胞完成的。 视网膜中心一个很小的区域是 中央凹 (fovea),这个部位只有锥体细胞,没有杆体细胞。中央凹是视觉最敏锐的区域——对颜色和空间细节的检测都十分准确。 双极细胞 (bipolar cells)是一种神经细胞,它整合感受器的神经冲动,并传递到神经节细胞。每个 神经节细胞 (ganglion cell)都将整合一个或多个双极细胞的冲动,形成单一的发放频率。双极细胞的轴突形成视神经,视神经把眼睛外面的视觉信息传递到大脑。 每一只眼睛的视网膜上存在视神经离开视网膜的区域。这个区域称为 视盘或盲点 (blind spot),此处没有感受细胞。 大多数视觉信息的最后目的地是大脑枕叶称为初级 视皮质 (visual contex)的区域。 当你的大脑对光源中编码的信息进行加工时,便产生了颜色感觉。 你所看见的光线只是电磁波谱中一个很小的范围。可见光的波长为400纳米到700纳米。光线在物理上是用波长而不是颜色来描述的:颜色只是你的感觉系统对波长的描述。 所有的颜色体验都可以从三个维度来描述:色调、饱和度和明度。 颜色视觉的第一个科学理论是由扬爵士(Sir Thomas Young)于1800年提出来的。他认为正常人的眼睛具有三种类型的颜色感受器,产生心理上的基本感觉:红、绿和蓝。同时他还认为,所有其他的颜色都是由这三种颜色相加或者相减混合得到的。扬的理论后来得到赫尔姆霍兹(Hermann Von Helmholtz)的修正和扩展,最终形成了著名的扬-赫尔姆霍兹 三原色理论 (trichromatic theory)。 海林(Ewald Hering)在18世纪晚期提出他的 拮抗加工理论 (opponent-process theory),所有视觉体验产生于三个基本系统,每个系统包含两种拮抗的成分:红对绿,蓝对黄,或者黑(没有颜色)对白(所有颜色)。 对颜色世界的观察只是视觉系统所应对的复杂任务中一个很小的部分。不同种类的神经细胞有各自独特的性质,可以产生对颜色、形状、对比度、运动和结构的知觉。 为什么拍拍双手、吹口哨会产生声音呢?因为它们使物体产生了振动。振动的能量传递到周围的介质中——通常是空气——因为振动的物体推动介质中的分子前后运动。导致的压力的微小改变约以速率为1100英尺/秒的叠加正弦波的形式从振动物体上扩散出去。真空中不能传播声音。 正弦波有两个基本的物理特性决定声音的作用形式:频率和振幅。 频率和振幅这两个物理性质形成了声音的三个心理参数:音高、响度和音色。 要想听到声音必须发生四个基本能量的转换: 地点说 (place theory)最初是由赫尔姆霍兹于1800年提出,后来经过贝克西修正。地点说是基于当声波经过内耳时基底膜随着运动这一事实而提出的。不同的频率在基底膜的不同位置上产生它们最大的运动。 频率说 (frequency theory),通过基底膜振动的频率来解释音调。 气味——无论好的还是坏的——首先与嗅绒毛膜上的感受蛋白相接触就能闻到。只要有8个物质分子就可以发起一个神经冲动,不过至少要刺激40个神经末梢才能闻到那个物质的气味。一旦启动,这些神经冲动将嗅觉信息传递到位于感受器上方和大脑中前额叶下部的 嗅球 (olfactory bulb)。 嗅觉是比较少的需要不断更新嗅神经的神经系统之一。当嗅神经细胞老化并且死亡,它们将被与嗅球形成联结的新细胞所替代。 嗅觉很可能是作为侦查和定位食物的系统来进化和发展的。 尽管一些食物和酒类的美食家具有辨别微小和复杂味觉得超常能力,但很多时候他们主要依靠的是嗅觉而非味觉。 你舌头的表面布满了乳头,这使得舌头表面起伏不平。大部分乳头中含有称作味蕾的成束的味觉感受细胞。味觉感受器的单细胞记录结果表明,单个感受细胞对于四种基本味觉:甜、酸、苦和咸中的某一个反应强烈。 你的味觉感受器每隔几天都要更新一次,甚至比起嗅觉感受器的更换更为频繁。 皮肤是一个特别多功能的器官。除了能保护你免受表面的损伤,保持体液和帮助调整体温,它还包含了产生压力、温暖和寒冷感觉的神经末梢。 前庭觉 (vestibular sense)告诉你你的身体——特别是头部——是如何根据重力作用确定方向的。这些信息的感受器是位于内耳中充满液体的导管和囊中的小纤毛。 人们之所以在移动的汽车上看书会感到恶心,是因为视觉提供的是静止的信号,而前庭觉提供的信号却是移动的。 动觉 (kinesthetic sense)为我们提供运动过程中身体状态的反馈信息。没有它,你就不能协调很多自主的运动。 痛觉 (pain)是身体对有害刺激的反应,所谓有害刺激就是那些强度足够导致组织损伤或避免导致损伤的刺激。 痛觉是重要的防御信号——警示你远离伤害。 人们会经受两种疼痛:伤害性疼痛和神经痛。 伤害性疼痛 (nociceptive pain)是由外部有害刺激引发的负性感觉;例如,手碰触火炉,躲避可以终止这种疼痛。 神经痛 (neuropathic pain)是由神经的不正常功能或过度激活造成的。比如,意外事故或癌症引发的神经受伤和神经疾病。用镇静神经的药物或其他治疗可以缓解这种疼痛。 心理过程在痛觉感受中的重要性可以用两个极端的例子来说明:
2023-06-10 17:04:071

wpf streamgeometrycontex可以设置画笔颜色吗

查看回滚段名称及大小 select segment_name, tablespace_name, r.status, (initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id =
2023-06-10 17:04:321

英语语言学中的linguistic context 是什么?与situational contex

linguistic context 又叫syntactic context
2023-06-10 17:04:411

工具类实现ApplicationContextAware后无法取得spring容器的bean?

方法如下:实现1.创建一个类让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.示例代码:import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;public class MyApplicationContextUtil implements ApplicationContextAware {private static ApplicationContext context;//声明一个静态变量保存public void setApplicationContext(ApplicationContext contex) throws BeansException {this.context=contex;}public static ApplicationContext getContext(){return context;}public final static Object getBean(String beanName){return context.getBean(beanName);}public final static Object getBean(String beanName, Class<?> requiredType) {return context.getBean(beanName, requiredType);}}2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.例:<!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性--><bean class="org.ing.springutil.MyApplicationContextUtil"></bean>3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.
2023-06-10 17:04:491

winform 中如何在Datagridview_CellEnter事件里面删除数据后刷新数据源

你这个事件是,当单元格获得输入焦点时触发,你在事件里面直接删除就可以了 private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) { dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 100; }我这个程序是,一旦某个单元格获得输入焦点,立刻清空当前值,置为100.
2023-06-10 17:04:552

蔡司的镜片有什么优点?

蔡司镜片以高科技含量与绝佳品质享誉全世界,品牌形象无可挑剔,但因其价格昂贵,消费群体仅局限于上层人物与成功人士的富裕阶层圈子。尊贵的品牌历史世界光学界的权威德国蔡司ZEISS公司由卡尔.蔡司先生与欧尼斯.阿贝先生创建于1846,蔡司产品的品质多年来受到专业人士及市场的高度评价,尖端科技、望远镜、显微镜、专业照相机镜头、天文望远镜、星象仪、眼科仪器、高精度电脑手术仪器、美国阿波罗飞船登月,无一高科技领域没有蔡司的身影,二十多位诺贝尔奖得奖者都曾使用蔡司产品,蔡司是全球公认的最佳品牌20世纪最伟大的科学家爱因斯坦在1925年写给友人的信中强调“蔡司”镜片代表最高品质与值得信赖,其强调“……要达到万分之一原来的精确度的时候,研磨技术上是如此困难,只有蔡司能够做得到,因此,每一台回转仪都必须送到蔡司公司做镜表研磨……”在德国,Benz(奔驰)、Audi(奥迪)等世界一流的车厂里,为保证严谨设计之车体每一个部位都精密无误,达到车体完美的紧密装配境界,都采用蔡司公司制造的三度空间测量仪来检测车体,只有蔡司才能满足其对完美品质的要求。蔡司公司研磨的镜片就是品质与质量的象征,所有使用蔡司镜片的照相机镜头都身价不菲,Hvasselblad(苏哈)、Contex(康钛)、日本SONY(索尼)的所有高端镜头及摄像器材都采用了蔡司的镜头,去年日本在摄影界出了一本书,<ONLY ZEISS>,意思是只有蔡司才是最好的!1988年德国政府为纪念卡尔.蔡司先生给光学领域带来的伟大成就,发行了以蔡司先生的头像为图案的10马克硬币。精细研磨误差极低蔡司镜片的精密度之高与误差之小达到了令人难以置信的地步,拿镜片研磨的光滑度来做例子:如果我们将直径70毫米的镜片放大成直径26公里的湖面,湖面上的水波波纹,波峰到波谷的差距不超过0.1米!蔡司镜片的表面被精密的区分为5万个点,而这些点代表着800个数学方程式的组合,每个点的允许误差被严格控制在0.1微米以内,如此严格的品质管理保证了蔡司镜片的完美品质,每一片镜片都是精雕细琢的完美艺术品。严格控制的色散系数(阿贝数)阿贝数就是色散系数,大家都知道光线经过三棱镜可以分解成红、橙、黄、绿、青、蓝、紫。色散系数反映镜片的分光能力,色散现象最早由蔡司公司的创始人之一欧尼斯.阿贝先生发现并对色散系数设定了界定的参数,故色散系数被称为“阿贝数”。对眼用镜片来说,镜片的色散越低越好,色散系数值越大越好,如果色散强烈会出现棱镜效应,人会感到色彩斑斓,致使头晕脑涨等不适感,因此色散系数就成为衡量镜片优劣的重要指标之一,蔡司镜片特别注意阿贝数的控制,色散远远低于其他品牌相同折射率的镜片,呈现完美的视觉。极高的镜片透光率蔡司镜片的严格品质管理保证了极高的镜片透光率,加减反膜的蔡司树脂镜片透光率达到99.4%,玻璃镜片的透光率更是达到了不可思议的99.8%,人的肉眼已经无法感受到戴了镜片还是没戴镜片,如此高的精确度只有宇航科技的才有实际意义,只有蔡司这位光学界的泰斗才有如此高的标准与要求,带给您非同寻常的极至享受。完美的多波长莲花镀膜技术为保证镜片得最佳成像品质,同时使镜片使用寿命更长体现使用价值,蔡司采用了最新的镀膜与材质设计,独特的专门技术,融合纳米科技,推出莲花膜系列镜片。革命性的防水耐磨耐脏膜层,使水珠与镜片表面接触的角度大于110度,当水珠溅到镜片上时就像打到莲花荷叶上一般滑落,时刻保持镜片清洁。加膜镜片都经过5重膜层牢度测试:高温测试(Exposure to heat)——长达6小时的高温煎熬抗刮测试(Exposure to friction)——累计100小时的摩擦气候测试(Weather test)——阳光,湿气超过200小时的模拟测试盐水测试(Sslt water test)——将镜片放置在100摄氏度的盐水中数分钟附着力测试(Test:cross-hatch cutter)——将膜层切割呈井字装并撕扯数次只有最完美品质的镜片才能被打上尊贵的蔡司(ZEISS)标志
2023-06-10 17:05:068

win10下如何用C#开发语音识别

使用第一种方式,需要注意在COM选项卡里面的Microsoft Speech object library引用 C#代码 public class SpRecognition { private static SpRecognition _Instance = null; private SpeechLib.ISpeechRecoGrammar isrg; private SpeechLib.SpSharedRecoContextClass ssrContex = null; public delegate void StringEvent(string str); public StringEvent SetMessage; private SpRecognition() { ssrContex = new SpSharedRecoContextClass();
2023-06-10 17:05:481

蔡司眼镜片哪个系列比较好

都不错,但是要好清洗 超耐磨镜片还是冈司镜片好
2023-06-10 17:05:582

关于SSH框架Spring2.0配置文件Attribute "xmlns" must be declared for element type "beans".

意思是你的Spring的配置文件错误了。违背了DTD的声明格式。其正确形式应该如下所示:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/contexxsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xshttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd></beans>
2023-06-10 17:06:051

android 的getcontent()

什么啊, 你写的是什么啊?你要说的是getContext()与getContextResolver().notifyChange()吗,getContex()在不同的类下面有不同的作用,一般是返回一个带有相应资源的Context对象。getContextResolver().notifyChange()是获得一个ContextResolver对象并且更新里面的内容。
2023-06-10 17:06:141

浙江大学地球科学系

学校隶属关系:国家教育部电话:0571-87951336学校所在地:浙江省杭州市浙大路20号 传真:0571-87951336邮政编码:310027 网址:http://www.css.zju.edu.cn一、专业设置(1)地球科学(理学)本科专业设置地质学类:地质学、地球信息科学与技术。地理科学类:资源环境与城乡规划管理、地理信息系统。大气科学类:大气科学。(2)地矿学科(工学)本科专业设置地球探测与信息技术专业方向。(3)地学类相关学科本科专业设置环境科学专业方向。(4)培养地学研究生学科、专业设置地质学学科:构造地质学(硕士、博士 学位授权专业),地球探测与信息技术(硕士学位授权专业),矿物学、岩石学、矿庆学(硕士学位授权专业),地球化学(硕士学位授权专业),地质工程(工程硕士学位授权专业)。地理学学科:自然地理学(硕士学位授权专业),人文地理学(硕士学位授权专业),地图学与地理信息系统(硕士学位授权专业),历史地理学(硕士学位授权专业)。大气科学学科:气象学(硕士学位授权专业)。(5)培养地学相关学科研究生学科、专业设置环境科学(硕士、博士学位授权专业)。二、地质类教师队伍现状及队伍建设1.教师队伍表1 教师队伍状况一览表2.教授及研究方向徐世浙,中国科学院院士,博导,从事地球物理学研究。1936年10月出生。1952年10月至1956年4月在长春地质学院地球物理专业学习。1956年4月至1974年8月任长春地质学院物探系助教;1974年8月至1983年11月任中国科技大学地质系助教、讲师、副教授;1983年11月至1998年12月任青岛海洋大学地质系系主任、校学术委员会副主任、研究生部主任、山东省第七和八届人大常委,1985年晋升教授,期间于1988年9月至1989年10月在美国夏威夷大学地球物理研究所做访问研究;1999年1月至今任浙江大学地球科学系教授、博士生导师。2001年12月当选为中国科学院院士。徐世浙教授在计算地球物理领域,进行了系统、创造性的工作。20世纪60年代中期,根据复变函数理论,用保角变换坐标网的方法,首次解决了任意地形二维位场的曲线延拓和电阻率法的地形改正问题,1978年获中国科学院重大科技成果奖;他是国际上最早将力学中的边界单元法应用于地球物理勘探的学者之一,他的研究成果使得我国在这一领域的成就居国际领先地位;曾多次获得省部级科技进步奖;他的三部计算地球物理系列专著受到国内外专家的高度评价,其中2001年在美国Tulsa,Sociaty of Exploration Geopbysicist出版的《The boundary element method in geophysics》是该领域国际上的首部著作,被评价为“是对地球物理学的一个重要贡献”(摘自英文版序);他还编著了我国第一部古地磁学专著《古地磁学概论》,对我国开展古地磁工作起到了重要的推动作用。杨树锋教授,博导,从事构造地质与板块构造研究。陈汉林教授,博导,从事板块构造、造山带与盆地构造研究。陈桥驿教授,博导,从事历史地理学研究。方大钧教授,博导,从事构造地质、古地磁学研究。汪新教授,博导,从事地球物理、盆地构造研究。刘南教授,博导,从事地理信息科学研究与软件开发。高坤教授,博导,从事大气物理、天气预报研究。叶瑛教授,博导,从事岩石矿物、海洋地质研究。翁焕新教授,博导,从事环境地球化学、生物地球化学研究。郭德方教授,博导,从事遥感地质研究。沈忠悦教授,博导,从事岩石矿物、古地磁学研究。瞿国庆教授,从事大气物理、大气预报研究。邹乐君教授,从事遥感、地理信息系统研究、3S软件平台开发。肖安成教授,从事盆地构造、石油地质研究。沈晓华教授,从事遥感、地质灾害、构造数值分析研究。刘仁义教授,从地理信息科学研究与软件开发。3.教师队伍建设的重要举措引进双聘院士金翔龙院士、汤中立院士、苏纪兰院士,增强了教师队伍,扩大了对外交流与合作。此外,引进高级人才、选派青年教师出国进修,提高教师队伍素质,建立和完善学术梯队。近年来,引入双聘院士3人,聘任院士作兼职教授十余人。三、人才培养本科地质类招生每年30人。毕业生有75%进入研究生阶段深造,其他进入与地学相关领域的科研院所、政府机关、企事业单位从事科研、管理等工作。地质类研究生每年招收硕士生50~60人,博士生10~15人,工程硕士生30人。部分研究生为企业定向委培,毕后回原单位工作。其余毕业生进入相关领域的科研院所、政府机关、企事业单位从事科研、管理等工作。历届毕业生中,有3人获侯德封奖,1人获得美国矿物学家大奖;现有3人任中科院研究所所长,6人任石油企业的总地质师。四、办学优势与特色1.办学特色浙江大学重视基础教学,以多学科交叉宽知识面教育为基础,体现新技术与传统学科的结合。2.教育教学改革的重大举措和成效针对学科发展和人才需求现状,本系创建了地理信息系统和地球信息科学与技术2个本科教育新专业,新增了工程硕士专业学位授予点,为企事业单位在职培养了技术人才。改革了传统课程结构,增设了信息科学与技术类的课程,强调了信息科学与传统地质科学的结合,充分发挥了浙江大学综合性的学科优势。五、学科建设浙江省重点学科:构造地质学。六、实验室建设1)省部级重点实验室:浙江省资源与环境信息系统重点实验室2)本系拥有下列大型仪器:①浅层地震仪(35万);②工程扫描仪,A0CONTEXFSS8300,(38万,丹麦CONTEXF);③SUN工作站,SUN-Blade l000,2000(40万,美SUN);④高精度GPS,Tribmle,(15万,美国)。上述仪器设备全部对学生开放,同时承接相应研究项目。七、“九五”以来科学研究简况1.“九五”以来科学研究(包括教育科学研究)情况“九五”以来承担各类国家纵向项目35项,省部级项目56项;横向项目200余项。获科研经费4000余万元。已完成国家纵向项目16项,省部级项目30项,横向项目150项;在研项目经费1800万元。获得省部级一等奖1项,二等奖8项,三等奖15项。地矿部优秀教材一等奖1项,地矿部优秀教材二等奖1项。塔里木盆地显生宙古地磁项目获浙江省科技进步一等奖。塔里木盆地古生代火山作用与地质热事件研究项目获浙江省科技进步二等奖。《地球化学》全国统编教材获地矿部优秀教材一等奖;《构造地质学CAI》获浙江省教学成果一等奖。2.目前承担的重大科研项目9项1)古生代洋陆格局演变与大陆侧向增生(2001CB409801),国家重大基础973,212.0万元。2)高效气藏形成的能量场耦合关系,国家重大基础973,50.0万元。3)中国西部前陆盆地的构造特征,国家“十五”科技攻关项目,85.0万元。4)酒泉盆地构造特征与控油作用,中国石油,102.0万元。5)油气勘探风险评价与经济战略,中国石油,75.0万元。6)柴达木盆地北缘构造特征,中国石油,70.0万元。7)洋底圈层相互作用及其对大洋成矿作用的影响,国家“十五”大洋专项,69.0万元。8)大洋铁锰矿物的复合改性与功能性材料开发,国家“十五”大洋专项,60.0万元。9)浙江沿海海岸带的变迁的遥感调查,国土资源部,65.0万元。八、国际交流与合作1)与德国DAAD,美国Princeton University、Harvard University、Carnegie Institution of Washington,英国Macaulay Land Use Research Institute建立了长期的学术交流与合作,双方互派学者、研究生。2)合作办学与合作科研情况:与大庆油田、胜利油田合作培养博士生、硕士生和工程硕士生;与中国石油总公司、塔里木石油分公司等合作开展资源开发、地球物理勘探等领域的合作研究。(撰稿人:郑爱平、沈晓华、沈忠悦)
2023-06-10 17:06:221

java和EJB有什么区别?

EJB EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.net技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。 EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。 1.Session Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。 2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。 3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。 EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API用来实现把EJB概念转换成EJB产品.EJB是BEANS,BEANS是什么概念,那就是得有一个容纳她,让她可劲造腾的地方,就是得有容器.EJB必须生存在EJB容器中.这个容器可是功能强大之极!她首先要包装你BEAN,EJB的客户程序实际上从来就不和你编写的EJB直接打交道,他们之间是通过HOME/REMOTE接口来发生关系的.它负责你的BEAN的所有的吃喝拉萨睡,比如BEAN的持续化,安全性,事务管理... 一.什么是 EJB? 一个技术规范:EJB 从技术上而言不是一种"产品" EJB 是一种标准描述了构建应用组件要解决的: 可扩展 (Scalable) 分布式 (Distributed) 事务处理 (Transactional) 数据存储 (Persistent) 安全性 (Secure) 二.Sun 对 EJB 的期望 提供一个标准的分布的、基于 OO 的组件架构 屏蔽复杂的系统级功能需求 Write once, run anywhere 与非 Java 应用之间的互操作能力 兼容 CORBA 标准 三.为什么选择 EJB? EJB 服务器完成"繁杂"的工作:应用开发人员关注于业务逻辑的实现而不是底层的实现机制(类似于 4GL 语言设计的目标) 支持事务处理 多个业务操作同时成功,或全部失败 可以通过在代码外的描述来定义事务处理级别 可扩展性 EJB 可以根据您应用的增长而扩展 EJB 服务器往往还提供了负载均衡和 安全性:由 EJB 服务器提供资源的访问权限控制 四.EJB 架构 为了满足架构的目标,规范中描述了 服务器 (Server) 容器 (Container) 类 (Class) 和实例 (Instance) Home 和 Remote 接口 客户端 (Client) 五. 简化的编程模型 关注于业务逻辑实现:EJB 负责生命周期 (lifecycle), 数据存储 (persistence), 事务处理语义 (transactional semantic), 安全(security), ... 通用的编程模型:各种服务的高层 API Java 是其编程语言 EJB( 业务逻辑代码 ) 表示了与特定商业领域(例如银行、零售等行业)相适应的逻辑。它由 运行在业务逻辑层的 enterprise bean 处理。一个 enterprise bean 可以从客户端接受数据,对 它进行处理,并将其发送到企业信息系统层以作存储;同时它也可以从存储器获取数据, 处理后将其发送到客户端应用程序。 有三种类型的 enterprise beans:session beans、entity beans 和 message-driven beans。 Session bean 描述了与客户端的一个短暂的会话。当客户端的执行完成后,session bean 和 它的数据都将消失;与之相对应的是一个 entity bean 描述了存储在数据库表中的一行持久 稳固的数据,如果客户端终止或者服务结束,底层的服务会负责 entity bean 数据的存储。 Message-driven bean 结合了 session bean 和 Java 信息服务(JMS)信息监听者的功能,它允 许一个商业组件异步地接受 JMS 消息。编辑本段EJB3.0的介绍 由于EJB2.0的复杂性,在Spring和Hibernate等轻量级框架出现后,大量的用户转向了,在大家的呼声中,EJB3.0规范终于发布了。 期待已久的EJB3.0规范在终于发布了。在本文中将对新的规范进行一个概要性的介绍,包括新增的元数据支持,EJBQL的修改,实体Bean模型访问 bean上下文的新方法和运行时环境等等。作者还讨论了EJB在未来要作出的调整以及EJB3.0与其他开发规范之间的关系。 开始 无论如何由于EJB的复杂性使之在J2EE架构中的表现一直不是很好。EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组建。EJB3.0规范正尝试在这方面作出努力以减轻其开发的复杂性。EJB3.0减轻了开发人员进行底层开发的工作量,它取消或最小化了很多(以前这些是必须实现)回调方法的实现,并且降低了实体Bean及O/R映射模型的复杂性。 在本文中,我首先会介绍EJB3.0中几个主要的改变。它对进一步深入了解EJB3.0是非常重要的。随后,我会从更高的层面来描述已经被提交到EJB3.0规范中的细节,并一个个的讲解新的规范中的改变:实体Bean,O/R映射模型,实体关系模型和EJB QL(EJB查询语言)等等。 背景 EJB3.0中两个重要的变更分别是:使用了Java5中的程序注释工具和基于Hibernate的O/R映射模型。 Java5中的元数据工具 Java5(以前叫J2SE1.5或Tiger) 中加入了一种新的程序注释工具。通过这个工具你可以自定义注释标记,通过这些自定义标记来注释字段、方法、类等等。这些注释并不会影响程序的语义,但是可以通过工具(编译时或运行时)来解释这些标记并产生附加的内容(比如部署描述文件),或者强制某些必须的运行时行为(比如EJB组件的状态特性)。注释的解析可以通过源文件的解析(比如编译器或这IDE工具)或者使用Java5中的APIs反射机制。注释只能被定义在源代码层。由于所有被提交到 EJB3.0草案中的注释标记都有一个运行时的RetentionPolicy,因此会增加类文件占用的存储空间,但这却给容器制造商和工具制造商带来了方便。 Hibernate 目前Hibernate非常受欢迎,它是开发源代码的Java O/R映射框架,目的是把开发人员从繁琐的数据持久化编程中解脱出来。它也有一个标准的HQL(Hibernate 查询语言)语言,你可以在新的EJB QL中看到它的影子。Hibernate在处理如数据查询、更新、连接池、事务处理、实体关系处理等方面非常简单。 概览 在已经提交的EJB3.0规范中主要涉及两个方面的改变: 1. 一套以注释为基础的EJB编程模型,再加上EJB2.1中定义的通过部署描述符和几个接口定义的应用程序行为。 2. 新的实体Bean持久化模型,EJBQL也有许多重要的改变。 还有一些有关上述的提议,比如:一个新的客户端编程模型,业务接口的使用以及实体Bean的生命周期。请注意EJB2.1编程模型(包括部署描述符和home/remote接口)仍然是有效的。新的简化模型并没有完全取代EJB2.1模型。 EJB注释 EJB规范组织一个重要的目标是减轻原始代码的数量,并且他们为此给出了一个完美而简介的办法。在EJB3.0的里,任何类型的企业级 Bean只是一个加了适当注释的简单Java对象(POJO)。注释可以用于定义bean的业务接口、O/R映射信息、资源引用信息,效果与在 EJB2.1中定义部署描述符和接口是一样的。在EJB3.0中部署描述符不再是必须的了;home接口也没有了,你也不必实现业务接口(容器可以为你完成这些事情)。 比如,你可以使用@Stateless注释标记类把Java类声明为一个无状态回话bean。对于有状态回话bean来说,@Remove注释可以用来标记一个特定的方法,通过这个注释来说明在调用这个方法之后bean的实例将被清除掉。 为了减少描述组件的说明信息,规范组织还采纳了由异常进行配置(configuration-by-exception)的手段,意思是你可以为所有的注释提供一个明确的缺省值,这样多数常规信息就可以据此推断得出。 新的持久化模型 新的实体bean也是一个加了注释的简单Java对象(POJO)。一旦它被EntityManager访问它就成为了一个持久化对象,并且成为了持久化上下文(context)的一部分。一个持久化上下文与一个事务上下文是松耦合的;严格的讲,它隐含的与一个事务会话共存。 实体关系也是通过注释来定义的,O/R映射也是,并提供几种不同的数据库规范操作,在EJB2.1中这些要通过开发人员自己的设计模式或者其它技术来完成的(比如,自增长主键策略)。 深入研究 现在是时候详细了解EJB3.0草案了。让我们开始探讨所有EJB中四种企业级bean,并看看他们在新的规范中是什么样子。 无状态回话bean 在EJB3.0规范中,写一个无状态回话bean(SLSB)只需要一个简单的Java文件并在类层加上@Stateless注释就可以了。这个bean可以扩展javax.ejb.SessionBean接口,但这些不是必须的。 一个SLSB不再需要home接口,没有哪类EJB再需要它了。Bean类可以实现业务接口也可以不实现它。如果没有实现任何业务接口,业务接口会由任意public的方法产生。如果只有几个业务方法会被暴露在业务接口中,这些方法可以使用@BusinessMethod注释。缺省情况下所有产 生的接口都是local(本地)接口,你也可以使用@Remote注释来声明这个接口为remote(远程)接口。 下面的几行代码就可以定义一个HelloWorldbean了。而在EJB2.1中同样的bean至少需要两个接口,一个实现类和几个空的实现方法,再加上部署描述符。 import javax.ejb.*; /** * A stateless session bean requesting that a remote business * interface be generated for it. */ ;@Stateless ;@Remote public class HelloWorldBean { public String sayHello() { return "Hello World!!!"; } } 有状态回话bean 除了几个SFSB的特别说明之外,有状态回话bean(SFSB)和SLSB一样精简: 一个SFSB应该有一个方法来初始化自己(在EJB2.1中是通过ejbCreate()来实现的)。在EJB3.0的规范中建议这些初始化操作可以通过自定义方法完成,并把他们暴露在业务接口中。在使用这个bean之前由客户端来调用相应的初始化方法。目前规范组织就是否提供一个注释来标记某个方法用于初始化还存在争议。 Bean的提供者可以用@Remove注释来标记任何SFSB的方法,以说明这个方法被调用之后bean的实例将被移除。同样,规范组织仍然在讨论是否要有一种机制来处理这种特殊的情况,即当这个方法出现异常的情况下bean的实例是否被移除。 下面是对以上问题我个人的观点: 是否应该有一个注释来标明一个方法进行初始化呢?我的观点是――应该有,这样容器就可以在调用其他方法之前至少调用一个方法来进行初始化。这不仅可以避免不必要的错误(由于没有调用初始化方法)而且可以使容器更明确的判断是否可以重用SFSB实例。我暂且把这个问题放一放,规范组织只考虑为一个方法提供一个注释来声明它是一个初始化方法。 对于第二个问题我的观点也是肯定的。这有利于Bean的提供者合客户端程序对其进行控制。只有一个遗留的问题:那就是一旦调用这个方法失败,是否能移除这个bean 的实例?答案是不能,但是它将会在回话结束的时候被移除。 消息驱动Bean 消息驱动Bean是唯一一种必须实现一个业务接口的Bean。这个接口指出bean支持的是哪一种消息系统。对于以JMS为基础的MDB来说,这个接口是javax.jms.MessageListener。注意MDB业务接口不是一个真正意义上的业务接口,它只是一个消息接口。 实体Bean 实体Bean使用@Entity注释来标记,所有实体bean中的属性/字段不必使用@Transient注释来标记。实体bean的持久化字段可以通过JavaBean-style机制或者声明为public/protected字段来实现。 实体bean可以使用助手类来描述其状态,但是这些类的实例并没有持久化唯一性(persistent identity)的特性(即,唯一标识这个bean的字段等),实际上这些助手类与他们的实体bean实例是紧密结合的;并且这些对象还是以非共享方式来访问实体对象的。 实体关联 EJB3.0同时支持Bean之间双向的合单向的关联,它们可以是一对一、一对多、多对一或者是多对多的关联。然而双向关联的两端还要分为自身端 (owning side)和对方端(inverse side)不同的端。自身端负责向数据库通告关联的变更。对于多对多的关联自身端必须明确的声明。实际上对方端通过isInverse=true进行注释 (由此自身端就不必说明了而是由另一段推断出)。看来上面的描述,规范组织还能说让EJB变的简单了吗? O/R映射 EJB3.0中的O/R映射模型也有了重要的改变,它从原来的abstract-persistence-schema-based变成了现在的Hibernate-inspired模式。尽管目前规范组织还在就此进行讨论但是一个明确的模型将会出现在下一个版本的草案中。 举例来说,O/R映射模型将通过bean类中的注释来声明。而且此方法还会指出对应的具体表和字段。O/R映射模型提供了一套自有的SQL; 而且除了提供一些基本的SQL外还支持某些高层开发的功能。比如,有一个通过@Column注释声明的字段columnDefinition,那么可以写这 样的SQL:columnDefinition="BLOB NOT NULL" 客户端程序模型 一个EJB客户端可以通过@Inject注释以一种“注入”的方式获得一个bean的业务接口引用。你也可以使用另一个注释 @javax.ejb.EJBContext.lookup()来完成上面的操作,但是规范中没有告诉我们一个普通的Java客户端怎样获得一个Bean 的实例,因为这个普通的Java客户端是运行在一个客户端容器中,它无法访问@javax.ejb.EJBContex对象。现在还有另外一种机制来完成上面的工作那就是使用一个超级上下文环境对象:@javax.ejb.Context()。但是规范中没有指出该如何在客户端中使用这个对象。 EJB QL EJB QL可以通过@NamedQuery来注释。这个注释有两个成员属性分别是name和queryString.一旦定义了这些属性,就可以通过 EntityManager.createNamedQuery(name)来指向这个查询。你也可以创建一个标准的JDBC风格的查询并使用 EntityManager.createQuery(ejbqlString)或EntityManager.createNativeQuery (nativeSqlString)(这个方法用于执行一个本地查询)来执行查询。 EJB QL有两个地方可以定义其参数。javax.ejb.Query接口提供了定义参数、指向查询、更新数据等等方法。下面是一个EJBQL指向查询的例子: 查看复制到剪切板打印 . .. ;@NamedQuery( name="findAllCustomersWithName", queryString="SELECT c FROM Customer c WHERE c.name LIKE :custName" ) .. .. ;@Inject public EntityManager em; customers = em.createNamedQuery("findAllCustomersWithName") .setParameter("custName", "Smith") .listResults(); 下面列出了一些EJB QL的增强特性: 支持批量更新和删除。 直接支持内连接和外连接。FETCH JOIN运行你指出关联的实体,Order可以指定只查询某个字段。 查询语句可以返回一个以上的结果值。实际上,你可以返回一个依赖的类比如下面这样: SELECT new CustomerDetails(c.id, c.status, o.count) FROM Customer c JOIN c.orders o WHERE o.count > 100 l 支持group by 和having。 支持where子句的嵌套子查询。 在提交的EJB3.0草案中,EJB QL与标准SQL非常的接近。实际上规范中甚至直接支持本地的SQL(就像我们上面提到的那样)。这一点对某些程序员来说也许有些不是很清楚,我们将在下面进行更详细的讲解。 多样性 方法许可(Method permissions)可以通过@MethodPermissions和@Unchecked注释来声明;同样的,事务属性也可以通过 @TransactionAttribute注释来声明。规范中仍然保留资源引用和资源环境引用。这些一样可以通过注释来声明,但是有一些细微的差别。比如,上下文(context)环境要通过注入工具控制。容器根据bean对外部环境引用自动初始化一个适当的已经声明的实例变量。比如,你可以象下面这样获得一个数据源(DataSource): ;@Resource(name="myDataSource") //Type is inferred from variable public DataSource customerDB; 在上面的例子中如果你不指定引用资源的名称(name)那么其中的customerDB会被认为是默认值。当所有的引用属性都可得到时侯@Injec注释就可以这样写: 查看复制到剪切板打印 1. ;@Inject public DataSource customerDB; ;@Inject public DataSource customerDB; 容器负责在运行时初始化customerDB数据源实例。部署人员必须在此之前在容器中定义好这些资源属性。 更好的消息是:那些以前必须检测的异常将一去不复返。你可以声明任意的应用程序异常,而不必在再抛出或捕获其他类似 CreateException和FinderException这样的异常。容器会抛出封装在javax.ejb.EJBException中的系统级异常或者只在必要时候抛出IllegalArgumentException或IllegalStateException异常。 EJB文件处理模式 在我们结束本节之前,让我的快速的浏览一下容器提供商在EJB处理模式方面可能的变更。规范中对此并没有明确的表态,但我可以想到至少两种模式。 一种办法是首先利用EJB文件生成类似于EJB2.1部署模式的文件(包括必要的接口和部署描述符)然后再用类似于EJB2.1的方式来部署这个EJB组件。当然,这样产生的部署描述符可能并不标准但是它可以解决同一个容器对EJB2.1和EJB3.0兼容的问题。下面这幅图描述了这一过程。 另一种方法是一种类似于JSP托放的部署模式。你可以把一个EJB文件放到一个预先定义的目录下,然后容器会识别这个EJB并处理它,然后部署并使之可以使用。这种方法可以建立于上面那种方法之上,在支持反复部署时有很大的帮助。考虑到部署的简单性也是EJB3.0规范的目的之一,我真诚的希望在下一个草案出来时能够确定一个模式(至少能有一个非正式的)。 你有什么想法? EJB3.0规范的制定正在有序的进行,为了使EJB的开发变得更加容易,EJB规范组织作出的努力是有目共睹的。就像他们说的那样,一切对会变得简单,但做到这一点并不容易。目前已经定义了50个注释标记(还有几个将在下一个草案中发布),每一个都有自己的缺省规则和其他的操作。当然,我真的不希望EJB3.0变成EJB2.1的一个翻版"EJB 3.0 = EJB 2.1 for dummies"(希望这个等式不要成立)。最后,我还是忍不住要提一些我自己的观点: 首先,规范确实使反复部署变得容易了,并且有一个简单的模式来访问运行时环境。我还是觉得home接口应该放弃。 在早期的EJB规范中,实体bean用于映射一个持久化存储。理论上(也许只是理论上)可能需要把实体bean映射到一个遗留的EIS (enterprise information system)系统中。出于将来扩展的考虑这样作是有好处的,并且可以使更多的业务数据模型采用实体bean。也因此其伴随的复杂性使得实体bean不被看好。在本次提交的草案中,一个实体bean只是一个数据库的映射。并且是基于非抽象持久化模式和简单的数据访问模式的更加简单开发。 我对模型变更持保留态度,我认为在EJB中包含SQL脚本片断并不是个好注意。一些开发人员完全反对包含某些“SQL片段 (SQLness)”(比如@Table 和 @Column注释)。我的观点是这些SQLness是好的,据此我们可以清楚的知道我们到底要数据库作些什么。但是某些SQL段我看来并不是很好,比如 columnDefinition="BLOB NOT NULL",这使得EJB代码和SQL之间的耦合太过紧密了。 尽管对于本地SQL的支持看似很诱人,其实在EJB代码中嵌入SQL是一个非常糟糕的主意。当然,有些办法可以避免在EJB中硬编码SQL,但是这应该在规范中说明,而不能是某些开发人员自己定义的模式。 假设@Table注释只用于类。在运行时通过@Table注释的name属性定义的表名称将必须对应一个实际的数据库表。规范对此应该给予清楚的说明和一致的模式。 规范还需要更清楚的说明客户端编程模型,尤其是普通java客户端。规范中所有的参考都假设或者隐含的使用EJB客户端。而且规范中对客户端的向后兼容方面也没有给出明确的说法。 Transient注释应该重新命名以避免和已有的transient关键字发生冲突。事实上,在这一点上我们更乐于稍微的背离一下 configuration-by-exception原则并且定义一个@Persistent注释来明确的定义持久化字段 @Persistent注释 可以仅仅是一个标记注释或者它可以有几个属性来关联O/R映射注释。 与其他规范的关联 目前可能影响到EJB3.0的JSR有JSR175(java语言元数据工具)和JSR181(Java Web服务元数据) JSR175已经初步完成并且不会和EJB3.0有太大的冲突;但是JSR181与EJB3.0有两个关联的地方: Web service接口:EJB规范将采用一种机制适应JSR181以便可以把一个bean实现为一个Web service并告诉Web service如何被客户端调用。 JSR 181计划采用不同的机制来处理安全问题。在早期的规范中EJB建议使用一个一致的机制(MethodPermissions),但是JSR 181计划使用一个稍微不同的方式(SecurityRoles和SecurityIdentity注释)。同样的RunAs注释的定义也存在这些许差别。这一问题还在解决中最终会在J2EE层的规范中维持其一致性。 在J2EE 1.5中的一些开发规范可能与EJB3.0有关联。除了上面说到的几个关联之外现在没有其他的开发规范与EJB3.0有冲突。 结束语 在使EJB的开发变得简单高效之前,我们还有很长一段路要走。规范组织在降低EJB的开发难度方面起了个好头。O/R映射模型的提议还处在早期阶段,规范组织正在完善它。我希望它不要太复杂也不要与SQL过分的耦合。
2023-06-10 17:06:505

fragment怎么用toast

用法和其它地方一样的,只是第一个参数是contex 你可以传递,getActivity()得到activity对象就行了Toast.makeText(getActivity(), "默认的Toast", Toast.LENGTH_SHORT).show();
2023-06-10 17:07:041

本地用JDK1.7、CXF 开发webservice运行没问题,部署到服务器(jdk1.5、tomcat5)出错,

tomcat5.0有些是需要手动指定的(比如项目的发布需要手动添加Contex元素)。跟tomcat6.0、7.0有很大不同。
2023-06-10 17:07:131

安卓文件访问控制的安全服务位于哪一层

  SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。   SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。[1]   大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian或 Centos。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。   SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNⅨ权限更好的访问控制。   1. 简介   SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制。   Security-Enhanced Linux (SELinux)由以下两部分组成:   1) Kernel SELinux模块(/kernel/security/selinux)   2) 用户态工具   SELinux是一个安全体系结构,它通过LSM(Linux Security Modules)框架被集成到Linux Kernel 2.6.x中。它是NSA (United States National Security Agency)和SELinux社区的联合项目。   SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于Linux Kernel中。SELinux定义了系统中每个【用户】、【进程】、【应用】和【文件】的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。   SELinux对系统用户(system users)是透明的,只有系统管理员需要考虑在他的服务器中如何制定严格的策略。策略可以根据需要是严格的或宽松的。   只有同时满足了【标准Linux访问控制】和【SELinux访问控制】时,主体才能访问客体。   1.1 DAC与MAC的关键区别(root用户)   安 全增强型Linux(SELinux)开始是由NSA(国家安全局)启动并加入到Linux系统中的一套核心组件及用户工具,可以让应用程序运行在其所需的最低权限上。未 经修改过的Linux系统是使用自主访问控制的,用户可以自己请求更高的权限,由此恶意软件几乎可以访问任何它想访问的文件,而如果你授予其root权 限,那它就无所不能了。   在SELinux中没有root这个概念,安全策略是由管理员来定义的,任何软件都无法取代它。这意味着那些潜在的恶意软件所能造成的损害可以被控制在最小。一般情况下只有非常注重数据安全的企业级用户才会使用SELinux。   操作系统有两类访问控制:自主访问控制(DAC)和强制访问控制(MAC)。标准Linux安全是一种DAC,SELinux为Linux增加了一个灵活的和可配置的的MAC。   所有DAC机制都有一个共同的弱点,就是它们不能识别自然人与计算机程序之间最基本的区别。简单点说就是,如果一个用户被授权允许访问,意味着程序也被授权访问,如果程序被授权访问,那么恶意程序也将有同样的访问权。 DAC最根本的弱点是主体容易受到多种多样的恶意软件的攻击,MAC就是避免这些攻击的出路,大多数MAC特性组成了多层安全模型。   SELinux实现了一个更灵活的MAC形式,叫做类型强制(Type Enforcement)和一个非强制的多层安全形式(Multi-Level Security)。   在Android4.2中,SELinux是个可选项,谷歌并没有直接取消root权限或其他功能。这是一个为企业级用户或是对隐私数据极为重视的用户提供的选项,普通消费者则完全可以关闭它。   2. SELinux的运行机制   SELinux决策过程如下图所示:   当一个subject(如: 一个应用)试图访问一个object(如:一个文件),Kernel中的策略执行服务器将检查AVC (Access Vector Cache), 在AVC中,subject和object的权限被缓存(cached)。如果基于AVC中的数据不能做出决定,则请求安全服务器,安全服务器在一个矩阵中查找“应用+文件”的安全环境。然后根据查询结果允许或拒绝访问,拒绝消息细节位于/var/log/messages中。   3. SELinux伪文件系统   /selinux/伪文件系统kernel子系统通常使用的命令,它类似于/proc/伪文件系统。系统管理员和用户不需要操作这部分。/selinux/目录举例如下:   代码如下:   -rw-rw-rw- 1 root root 0 Sep 22 13:14 access   dr-xr-xr-x 1 root root 0 Sep 22 13:14 booleans   --w------- 1 root root 0 Sep 22 13:14 commit_pending_bools   -rw-rw-rw- 1 root root 0 Sep 22 13:14 context   -rw-rw-rw- 1 root root 0 Sep 22 13:14 create   --w------- 1 root root 0 Sep 22 13:14 disable   -rw-r--r-- 1 root root 0 Sep 22 13:14 enforce   -rw------- 1 root root 0 Sep 22 13:14 load   -r--r--r-- 1 root root 0 Sep 22 13:14 mls   -r--r--r-- 1 root root 0 Sep 22 13:14 policyvers   -rw-rw-rw- 1 root root 0 Sep 22 13:14 relabel   -rw-rw-rw- 1 root root 0 Sep 22 13:14 user   如cat enforce其值可能如下:   1: enforcing mode   0: permissive mode   4. SELinux配置文件   SELinux配置文件(configuration)或策略文件(policy)位于/etc/目录下。   4.1 /etc/sysconfig/selinux配置文件   /etc/sysconfig/selinux是一个符号链接,真正的配置文件为:/etc/selinux/config   配置SELinux有如下两种方式:   1) 使用配置工具:Security Level Configuration Tool (system-config-selinux)   2) 编辑配置文件 (/etc/sysconfig/selinux).   /etc/sysconfig/selinux中包含如下配置选项:   1) 打开或关闭SELinux   2) 设置系统执行哪一个策略(policy)   3) 设置系统如何执行策略(policy)   4.2 配置文件选项   4.2.1 SELINUX   SELINUX=enforcingpermissivedisabled —定义SELinux的高级状态   u2022 enforcing — The SELinux security policy is enforced.   u2022 permissive — The SELinux system prints warnings but does not enforce policy.   u2022 disabled — SELinux is fully disabled. SELinux hooks are disengaged from the kernel and the pseudo-file system is unregistered.   4.2.2 SELINUXTYPE(安全策略)   SELINUXTYPE=targetedstrict — 指定SELinux执行哪一个策略   u2022 targeted — 只有目标网络daemons保护。每个daemon是否执行策略,可通过system-config-selinux进行配置。保护常见的网络服务,为SELinux默认值。   可使用如下工具设置每个daemon的布尔值:   1) getsebool -a: 列出SELinux的所有布尔值   2) setsebool: 设置SELinux布尔值,如:setsebool -P dhcpd_disable_trans=0,-P表示即使用reboot之后,仍然有效。   u2022 strict — 对SELinux执行完全的保护。为所有的subjects和objects定义安全环境,且每一个Action由策略执行服务器处理。提供符合Role-based-Access Control(RBAC)之policy,具备完整的保护功能,保护网络服务、一般指令及应用程序。   4.2.3 SETLOCALDEFS   SETLOCALDEFS=01 — 控制如何设置本地定义(users and booleans)。   u2022 1:这些定义由load_policy控制,load_policy来自于文件/etc/selinux/   u2022 0:由semanage控制   4.3 /etc/selinux/目录   /etc/selinux/是存放所有策略文件和主要配置文件的目录。其例子如下:   代码如下:   -rw-r--r-- 1 root root 448 Sep 22 17:34 config   drwxr-xr-x 5 root root 4096 Sep 22 17:27 strict   drwxr-xr-x 5 root root 4096 Sep 22 17:28 targeted   5. SELinux工具   1) /usr/sbin/setenforce — 修改SELinux运行模式,例子如下:   u2022 setenforce 1 — SELinux以强制(enforcing)模式运行   u2022 setenforce 0 — SELinux以警告(permissive)模式运行   为了关闭SELinux,你可以修改配置文件:/etc/selinux/config或/etc/sysconfig/selinux   2) /usr/sbin/sestatus -v — 显示系统的详细状态,例子如下:   SELinux status: enabled   SELinuxfs mount: /selinux   Current mode: enforcing   Mode from config file: enforcing   Policy version: 21   Policy from config file: targeted   Process contexts:   Current context: user_u:system_r:unconfined_t:s0   Init context: system_u:system_r:init_t:s0   /sbin/mingetty system_u:system_r:getty_t:s0   3) /usr/bin/newrole — 在一个新的context或role中运行一个新的shell   4) /sbin/restorecon — 通过为适当的文件或安全环境标记扩展属性,设置一个或多个文件的安全环境   5) /sbin/fixfiles — 检查或校正文件系统中的安全环境数据库   6) getsebool — getsebool -a:查看所有布尔值   7) setsebool — 参数-P,永久性设置   8) chcon 修改文件、目录的安全上下文   chcon u2013u[user]   chcon u2013r[role]   chcon u2013t[type]   chcon u2013R 递归   6. 类型强制的安全上下文(Type Enforcement Security Context)   安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),"域"和"域类型"意思都一样,我们不必苛刻地去区分或避免使用术语域,通常,我们认为【域】、【域类型】、【主体类型】和【进程类型】都是同义的,即都是安全上下文中的“TYPE”。   SELinux对系统中的许多命令做了修改,通过添加一个-Z选项显示客体和主体的安全上下文。   1) 系统根据PAM子系统中的pam_selinux.so模块设定登录者运行程序的安全上下文;   2) 文件的Security Contex规则如下:   u2022 rpm包安装的:会根据rpm包内记录来生成安全上下文;   u2022 手动创建的文件:会根据policy中规定的来设置安全上下文;   u2022 cp:会重新生成安全上下文;   u2022 mv:安全上下文则不变。   3) id -Z   显示了你的shell的安全上下文;   4) ps -Z   检查进程的安全上下文;   5) ls -Z   检查文件、目录的安全上下文;   6.1 安全上下文格式   所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。常常用下面的格式指定或显示安全上下文:   USER:ROLE:TYPE[LEVEL[:CATEGORY]]   安全上下文中的用户和角色标识符除了对强制有一点约束之外对类型强制访问控制策略没什么影响,对于进程,用户和角色标识符显得更有意义,因为它们是用于控制类型和用户标识符的联合体,这样就会与Linux用户账号关联起来;然而,对于客体,用户和角色标识符几乎很少使用,为了规范管理,客体的角色常常是object_r,客体的用户常常是创建客体的进程的用户标识符,它们在访问控制上没什么作用。   标准Linux安全中的用户ID和安全上下文中的用户标识符之间的区别,就技术而论,它们是正交标识符,分别用于标准的和安全增强的访问控制机制,这两者之间的任一相互关联都是通过登陆进程按照规范严格规定的,而不是通过SELinux策略直接强制实施的。   6.1.1 USER   1) user identity:类似Linux系统中的UID,提供身份识别,用来记录身份;安全上下文的一部分;   2) 三种常见的 user:   u2022 user_u :普通用户登录系统后的预设;   u2022 system_u :开机过程中系统进程的预设;   u2022 root :root 登录后的预设;   3) 在 targeted policy 中 users 不是很重要;   4) 在strict policy 中比较重要,所有预设的 SELinux Users 都是以 “_u” 结尾的,root 除外。   6.1.2 ROLE   1) 文件、目录和设备的role:通常是 object_r;   2) 程序的role:通常是 system_r;   3) 用户的role:targeted policy为system_r; strict policy为sysadm_r、staff_r、user_r;用户的role,类似系统中的GID,不同角色具备不同的的权限;用户可以具备多个role;但是同一时间内只能使用一个role;   4) 使用基于RBAC(Roles Based Access Control) 的strict和mls策略中,用来存储角色信息   6.1.3 TYPE   1) type:用来将主体(subject)和客体(object)划分为不同的组,给每个主体和系统中的客体定义了一个类型;为进程运行提供最低的权限环境;   2) 当一个类型与执行中的进程相关联时,其type也称为domain;   3) type是SElinux security context 中最重要的部位,是 SELinux Type Enforcement 的心脏,预设值以_t结尾;   LEVEL和CATEGORY:定义层次和分类,只用于mls策略中   u2022 LEVEL:代表安全等级,目前已经定义的安全等级为s0-s15,等级越来越高   u2022 CATEGORY:代表分类,目前已经定义的分类为c0-c1023   6.2 对比SELinux和标准Linux的访问控制属性   在标准Linux中,主体的访问控制属性是与进程通过在内核中的进程结构关联的真实有效的用户和组ID,这些属性通过内核利用大量工具进行保护,包括登陆进程和setuid程序,对于客体(如文件),文件的inode包括一套访问模式位、文件用户和组ID。以前的访问控制基于读/写/执行这三个控制位,文件所有者、文件所有者所属组、其他人各一套。   在SELinux中,访问控制属性总是安全上下文三人组(用户:角色:类型)形式,所有客体和主体都有一个关联的安全上下文。需要特别指出的是,因为SELinux的主要访问控制特性是类型强制,安全上下文中的类型标识符决定了访问权。   注意:SELinux是在标准Linux基础上增加了类型强制(TE: Type Enforcement),这就意味着标准Linux和SELinux访问控制都必须满足先要能访问一个客体,例如:如果我们对某个文件有SELinux写入权限,但我们没有该文件的w许可,那么我们也不能写该文件。下表总结了标准Linux和SELinux之间访问控制属性的对比: 标准Linux SELInux 进程安全属性 真实有效的用户和组ID 安全上下文 客体安全属性 访问模式、文件用户和组ID 安全上下文 访问控制基础 进程用户/组ID和文件的访问模式, 此访问模式基于文件的用户/组ID 在进程类型和文件类型 之间允许的许可   6.3 小结   1) 系统中每个文件、目录、网络端口等都被指定一个安全上下文,policy 则给出各安全上下文之间的作用规则。   2) SELinux根据policy及security context规则来决定存取行为是否可执行;   3) Subject(主体):系统进程,比如/usr/sbin/httpd;   4) Object(客体):被存取的项目,比如File、Directory、IP、Socket等;   7. 类型强制(TE)访问控制   在SELinux中,所有访问都必须明确授权,SELinux默认不允许任何访问,不管Linux用户/组ID是什么。这就意味着在SELinux中,没有默认的超级用户了,与标准Linux中的root不一样,通过指定主体类型(即域)和客体类型使用allow规则授予访问权限,allow规则由四部分组成:   u2022 源类型(Source type(s) ) 通常是尝试访问的进程的域类型   u2022 目标类型(Target type(s) ) 被进程访问的客体的类型   u2022 客体类别(Object class(es)) 指定允许访问的客体的类型   u2022 许可(Permission(s)) 象征目标类型允许源类型访问客体类型的访问种类   举例如下:   代码如下:   allow user_t bin_t : file {read execute getattr};   这个例子显示了TE allow规则的基础语法,这个规则包含了两个类型标识符:源类型(或主体类型或域)user_t,目标类型(或客体类型)bin_t。标识符file是定义在策略中的客体类别名称(在这里,表示一个普通的文件),大括号中包括的许可是文件客体类别有效许可的一个子集,这个规则解释如下:   拥有域类型user_t的进程可以读/执行或获取具有bin_t类型的文件客体的属性。   SELinux allow规则如之前的例子在SELinux中实际上都是授予访问权的,真正的挑战是如何保证数以万计的访问正确授权,只授予必须的权限,实现尽可能的安全。   7.1 标准Linux安全中的setuid程序   精通用户joe想安全地修改现有的密码问题,Linux解决这个问题的方法是通过给passwd赋一个setuid值,使其执行时具有root权限,如果你在一个普通Linux系统上列出密码文件,你看到的会是:   复制代码   代码如下:   # ls -l /usr/bin/passwd   -rwsr-xr-x. 1 root root 41292 Sep 7 2012 /usr/bin/passwd   这里注意两件事,第一个是在所有者权限的x位置被设置为s了,这就是所谓的setuid位,意思是任何执行这个文件的进程,它的有效UID(即用户ID)将会被改为文件所有者。这里,root是文件所有者,因此当执行密码程序时实际上将会以root用户的ID运行。其执行过程如下图所示:   从上面的分析中可以看出,passwd以root权限的身份运行, 它可以访问系统的任何资源,这给系统带来了安全问题,其实它只需要访问shadow及其相关的文件就可以了。而且shadow只需要接受passwd的访问即可。这在标准Linux中是无法做到的,而TE(类型强制)可实现此功能。   8. 基于角色的访问控制   SELinux也提供了一种基于角色的访问控制(RBAC),SELinux的RBAC特性是依靠类型强制建立的,SELinux中的访问控制主要是通过类型实现的,角色基于进程安全上下文中的角色标识符限制进程可以转变的类型,如此,策略编写器可以创建一个角色,允许它转变为一套域类型(假设类型强制规则允许转变),从而定义角色的限制。   9. SELinux中的多级安全(Multi-Level Security)   类型强制(Type Enforcement)无疑是SELinux引入的最重要的强制访问控制(MAC)机制,然而,在某些情况下,主要是保密控制应用程序的一个子集,传统的多级安全(MLS)MAC与类型强制一起使用显得更有价值,在这些情况下,SELinux总是包括某种格式的MLS功能,MLS特性是可选的,在SELinux的两个MAC机制中,它通常不是最重要的那个,对大多数安全应用程序而言,包括许多非保密数据应用程序,类型强制是最适合的安全增强的机制,尽管如此,MLS对部分应用程序还是增强了安全性。   在大多数SELinux策略中,敏感度(s0,s1,...)和范畴(c0,c1,...)使用通配名,将它留给用户空间程序和程序库,以指定有意义的用户名。(例如:s0可能与UNCLASSIFIED 关联,s1可能与SECRET关联)   为了支持MLS,安全上下文被扩展了,包括了安全级别,如:   复制代码   代码如下:   user:role:type:sensitivity[:category,...] [-sensitivity[:category,...]]   例子如下所示:   复制代码   代码如下:   root@luohj-virtual-machine:~# ps -aZ   LABEL PID TTY TIME CMD   unconfined_u:system_r:insmod_t:s0-s0:c0.c255 4940 pts/0 00:00:00 passwd   注意MLS安全上下文至少必须有一个安全级别(它由单个敏感度和0个或多个范畴组成),但可以包括两个安全级别,这两个安全级别分别被叫做低(或进程趋势)和高(或进程间隙),如果高安全级别丢失,它会被认为与低安全级别的值是相同的(最常见的情况),实际上,对于客体和进程而言,低和高安全级别通常都是相同的,通常用于进程的级别范围被认为是受信任的主体(即进程信任降级信息)或多层客体,如一个目录,它又包括了不同安全级别的客体。为了使描述简单,假设所有的进程和客体都只有一个安全级别。   10. 策略分析工具apol   apol(即analyze policy【分析策略】)工具是一个成熟的SELinux策略分析工具,它位于setools工具包中。使用它打开policy.xx文件即可分析所有的相关策略。xx为策略编译器(checkpolicy)的版本号。   11. 小结   SELinux访问控制是基于与所有系统资源(包括进程)关联的安全上下文的,安全上下文包括三个组件:用户、角色和类型标识符。类型标识符是访问控制的主要基础。   在SELinux中,访问控制的主要特性是类型强制,在主体(即进程)与客体之间通过指定allow规则(主体的类型【也叫做域类型】是源,客体的类型是目标)进行访问授权,访问被授予特定的客体类别,为每个客体类别设置细粒度的许可。   类型强制的一个关键优势是它可以控制哪个程序可能运行在给定的域类型上,因此,它允许对单个程序进行访问控制(比起用户级的安全控制要安全得多了),使程序进入另一个域(即以一个给定的进程类型运行)叫做域转变,它是通过SELinux的allow规则紧密控制的,SELinux也允许通过type_transition 文件使域转变自动发生。   SELinux在访问控制安全上下文中不直接使用角色标识符,相反,所有的访问都是基于类型的,角色用于关联允许的域类型,这样可以设置类型强制允许的功能组合到一起,将用户作为一个角色进行认证。   SELinux提供了一个可选的MLS访问控制机制,它提供了更多的访问限制,MLS特性依靠TE机制建立起来的,MLS扩展了安全上下文的内容,包括了一个当前的(或低)安全级别和一个可选的高安全级别。
2023-06-10 17:07:211