python和java相比写app的区别是:从架构模式的角度来说,Java中更侧重提到MVC,而在Python中则是MTV。简单来说,MVC和MTV是类似的,只是归属于不同的开发目录。都是在已有的实现上解耦合,通过配置和扩展来实现复杂的需求。
一、python和java相比写app的区别
从架构模式的角度来说,Java中更侧重提到MVC,而在Python中则是MTV。简单来说,MVC和MTV是类似的,只是归属于不同的开发目录。都是在已有的实现上解耦合,通过配置和扩展来实现复杂的需求。
最终选择什么编程语言做web开发必须要考虑哪个语言更适合后端业务流程。如果是个相对计算密集型的、需要多线程的,那么就应该慎用Python,或者提前将计算密集的部分拆出去单独组成服务。如果是业务本身比较繁杂、变更比较频繁的,Python和PHP这样的脚本语言就比较合适。
当然跟程序员的个人喜好也有很大关系。比如有些人死都不会去用Java和PHP,但是也有很多人视Java为信仰,所以开发人员的主观能动性也是很重要的。
Python的好处是开发、部署都很快,变更起来很容易,代码量小所以抛弃起来也很容易,不容易背上历史负担。如果你是稳扎稳打写了几百个Java类,那你肯定很难下决心把几百上千行的代码都抛弃掉。Python的缺点是运行起来相对Java来说慢得多,性能有瓶颈的时候Java和Go这样的编译语言的优势就体现出来了,不过大部分公司如果不够快的话,是撑不到性能有瓶颈的时候的。
按照JavaEE的规范,servlet都需要直接或间接的实现Servlet接口,即javax.servlet.Servlet,这个接口里面只定义了5个方法,但是因为servlet是协议无关的,要直接实现还是很困难的,所以,曾经的sun给除了实现Servlet接口的类,是javax.servlet.GenericServlet类。而到了Python栈,情况会略有一些变化。简单来说,如果不使用任何web框架,我们可以完全使用socket的方式来实现,这也就是Python web应用的本质了。
Python的web开发使得我们更专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以需要一个统一的接口让我们专心用Python编写Web业务,这个接口就是WSGI,感觉和servlet有异曲同工之妙。和Java中servlet中service()不同的是,WSGI接口定义非常简单,只要求Web开发者实现一个函数,就可以响应HTTP请求。
延伸阅读:
二、Dao层(持久层、数据访问层)
功能:只负责与数据库的数据进行交互,dao层是在Mybatis框架下通过@MyBatisDao连接后台代码与数据库的。@Repository用于标注数据访问组件Dao层。
DAO层首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理。
Dao层用来访问数据库实现数据的持久化(把内存中的数据永久保存到硬盘中)。
个人理解:Dao层用于定义方法接口,然后在service层和serviceimpl层实现接口的方法,从而达到操作数据库的目的。对数据库进行数据持久化操作,方法语句主要是针对数据库的,主要实现一些增删改查操作,在Mybatis中的方法主要与xx.xml内相互一一映射。