先来说说MVC吧,mvc看字面的意思就是model,view,controller这三个方面。首先mvc就是一种设计模式,在这种设计模式下面分为了三层,Model(模型),View(视图),Controller(控制器)。model对应着的是数据,view对应着的是用户界面,controller则是代表数据的处理逻辑,它链接起了model和view。这样分层的设计模式,可以降低对象之间的耦合度,更加利于代码的维护。在mvc这三个部件中,其中模型拥有最多的处理任务,即被模型返回的数据都是中立的,可以为多个视图所利用,这也就是说有时候,用于实现模型的代码只要写一遍就可以被多个视图锁利用,减少了代码的重复性。view则是负责向用户进行模型展示的。controller则是负责视图和模型之间的交互,控制对用户输入的响应,响应方式和流程,主要负责两个方面的动作,一个是把用户的请求分发到相应的模型另一个就是把模型的改变及时的反应到视图上。

Ioc就是控制反转,是一种面向对象编程的设计思想。如果不采用这种思想的情况下,我们需要自己维护对象与对象之间的关系依赖,这样很容易造成对象之间的耦合度过高,从而导致代码不容易维护。然而ioc则很好的解决了这种问题,它不仅可以帮助我们维护对象之间的依赖关系,而且还降低了对象之间的耦合度,但是说到ioc就不得不说一下di就是依赖注入,是ioc实现的方式。一共有三种注入方式:构造器,setter,接口注入。

aopaop: aspect oriented programming; 是一种面向切面编程的编程思想; 有切面,连接点,通知,切点。 aop是基于动态代理的技术,在程序运行的时候,动态的修改class字节码生成新的class文件进行运行的技术,可以对某个类的某个方法、多个类的多个方法,通过配置切点表达式进行匹配,然后改造被匹配到的类的某一些方法,然后运行;动态代理已知两种,cjlib的基于子类的动态代理,jdk自带的基于接口的动态代理。 常见的aop使用场景,日志统一管理,事务管理器。