Spring MVC:
Model:封装了应用程序的数据和一般他们会组成的POJO。
View:负责呈现模型数据和一般它生成的HTML的输出,客户端的浏览器能够解释。
Cotroller:负责处理用户的请求,并建立适当的模型,并把它传递给视图渲染。
Spring MVC处理请求的流程:
IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立对象之间的依赖。
AOP就是将那些与业务无关,却为业务模块所共用调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
权限:Authentication
缓存:Caching
内容传递:Context passing
错误处理:ErrorHanding
懒加载:Lazy loading
调试:Debugging
日志,跟踪,优化,校准:logging,tracing,profiling and monitor
性能优化:Performance Optimization
持久化:Persistence
资源池:Resource Pooling
同步:Synchronization
事务:Transaction
mybatis:
Dubbo:
1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需要简单配置,没有任何API侵入。
2.软负载均衡及容错机制,可在内网提供替代F5等硬件负载均衡器,降低成本,减少单点。
3.服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
Maven:
项目管理工具和构建自动化工具。
RabbitMQ:
消息队列:一般在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统吞吐量。
RabbitMQ是用Erlang实现的,一个高并发高可靠AMQP消息的队列服务器。
Erlang是一门动态类型的函数式编程语言,对应到Erlang里,每个Actor对应着一个Erlang进程,进程之间通过消息传递进行通信。相比共享内存,进程间通过消息传递来通信带来的直接好处就是消除了直接的锁开销(不考虑Erlang虚拟机底层实现中的锁应用)。
log4j:
Ehcache:
Redis:
redis的优点:
缺点:单线程、耗内存
shiro:
设计模式:
开闭原则:开闭原则就是说对扩展开放,对修改关闭。在程序需要进行扩展的时候,不能去修改原有的代码。