java中controller层是干嘛的?

Posted 我要用代码向我喜欢的女孩表白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中controller层是干嘛的?相关的知识,希望对你有一定的参考价值。

最近在研究开源框架的源码,打算改写开源框架,适用于自身的业务场景。于是找到了一个框架(spiderFlow)。

根据他的git上的教程,搭建了一个。

 

controller层,在我们写代码的时候,一般为接口层,与前端,也就是页面,进行亲密接触的那一层。

那他是怎么亲密的?使用google浏览器,按f12,点击network。

然后点击页面的按钮,就会发送http请求。比如我点击测试连接。

他就从测试连接,执行了这个test请求,这个请求实际是走的右边那个接口(接口就是亲密接触,和界面交互的地方),接口就是后端(服务器端)服务的一部分。 

然后在controller类就能找到了,这个就是点击后,进来的后端方法

 

看方法里面,连接数据库的这些东西都被写的很简单,也不含操作数据库的sql语句。

尽是些return,返回给前端收到的标识。那controller层就是给前端提供标识?

没错,就是一些简单的判断,然后在不同的情况,返回给前端不同的内容,当然也可以不反回,不过一般都是要返回的,否则前端不知道,服务端,到底有没有执行这个接口该做的事情。

复杂的情况,统统封装起来,controller只显示业务逻辑,具体对代码的实现,隐藏在service层。

这样业务分离,逻辑看起来就很清晰,如果以后遇到什么问题,可以很快的定位到错误的位置,并且对于以后升级的需求也很方便修改。

总结:controller层,与前端(界面-客户端)交互。返回给客户端标识。不写复杂代码,只判断逻辑,根据判断(if语句类的),返回不同的结果。具体的代码实现细节,隐藏在service层,通过一行或多行(尽可能少量的代码调用)。

android 应用设计一个SDK层是干嘛用的?亲们平时接触到的Android应用代码是怎么分层的?

参考技术A sdk应用多,开发和对接都需要SDK数据包。 参考技术B Android分为4层,从高到底分别是应用层、应用框架层、系统运行库层和Linux内核层:
1.应用层
应用是用Java语言编写的运行在虚拟机上的程序。Google最开始时就在Android系统中捆绑了一些核心应用,比如E-mail 客户端、SMS 短消息程序、日历、地图、浏览器、联系人管理程序,等等。

2.应用程序框架层
应用程序框架层是编写常用核心应用所使用的API框架,开发者可以在开发自己特色的应用程序中重复利用这些组件和服务。目前所有的应用程序都是由这些组件和服务构成。
(1) 丰富而又可扩展的视图(View):可以用来构建应用程序,它包括列表(List)、网格(Grid)、文本框(Text Box)、按钮(Button),以及可嵌入的Web浏览器。
(2) 内容提供器(Content Providers):它可以让一个应用访问另一个应用的数据(如联系人数据库), 或共享它们自己的数据。
(3) 资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串、图形和布局文件(Layout file)。
(4) 通知管理器(Notification Manager):应用可以在状态栏中显示自定义的提示信息。
(5) 活动管理器(Activity Manager):用来管理应用程序生命周期并提供常用的导航退回功能。
(6) 窗口管理器(Window Manager):管理所有的窗口程序。
(7) 包管理器(Package Manager):Android 系统内的程序管理。

3.系统运行库(C/C++库以及Android 运行库)层
程序库:
Android 包含一些C/C++库,这些库能被Android 系统中不同的组件使用。它们通过Android 应用程序框架为开发者提供服务。以下是一些核心库:
** 系统C库- 一个从BSD 继承来的标准C 系统函数库(libc),它是专门为基于embedded linux的设备定制的。
** 媒体库- 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。
** SurfaceManager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D 图层的无缝融合。
** LibWebCore - 一个最新的web 浏览器引擎用,支持Android 浏览器和一个可嵌入的web 视图。
** SGL - 底层的2D图形引擎
** 3D libraries - 基于OpenGL ES 1.0 APIs 实现;该库可以使用硬件3D 加速(如果可用)或者使用高度优化的3D 软加速。
** FreeType -位图(bitmap)和矢量(vector)字体显示。
** SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

运行库:
Android 包括了一个核心库,该核心库提供了JAVA 编程语言核心库的大多数功能。

Dalvik:
每一个Android 应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik 被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik 虚拟机执行(.dex)的Dalvik 可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA 编译器编译,然后通过SDK中的"dx" 工具转化成.dex 格式由虚拟机执行。

4. Linux内核层
Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是作为硬件与软件栈之间的抽象层,用来做相互沟通的工作.

其他的一句两句说不清楚啊,到我群里讨论 look at my n a m e
参考技术C 有什么问题哦,。我能解决,我是高手 哈哈 参考技术D android 应用设计一个SDK层
这样你懂的多少

以上是关于java中controller层是干嘛的?的主要内容,如果未能解决你的问题,请参考以下文章

mapper层是干啥的

web前端是干嘛的?

javaFX是干嘛的

design compiler 工具是干嘛的?用在啥方面?

C++是干嘛的

pom.xml是干嘛的?