【项目基础】容器、AOP理论篇
一、容器(砂锅)
1、概念:
容器是应用server中位于组件和平台之间的接口集合
2、应用:
容器一般位于应用server之内,由应用server负责载入和维护。一个容器仅仅能存在于一个应用server之内。一个应用server能够建立和维护多个容器
容器一般遵守可配置的原则,即容器的使用者能够通过对容器參数的配置,来达到自己的使用需求。而不须要改动容器的代码
3、举例:
有一个房间(这里的房间相当于容器),我们将空调(这里的空调相当于调节室内温度的方法)放到房间里(将空调放到房间里就相当于给容器设定了调节温度的方法),当不论什么一个人(这里的不论什么一个人相当于不论什么一个对象)进入房间之后他就有了调节温度的方法,当他离开之后也就失去了容器中的方法
二、AOP(双面胶)
1、概念:
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和执行期动态代理实现程序功能的统一维护的一种技术
2、应用:
AOP能够定义交叉的关系,并将这些关系应用于跨模块的、彼此不同的对象模型。
AOP同一时候还能够让我们层次化功能性而不是嵌入功能性,从而使得代码有更好的可读性和易于维护
3、举例:
这里有四个不同的对象分别为A、1、%、@,AOP里面封装了一个连接的方法,这个时候就能够通过AOP强制赋予这四个对象,使他们都有了连接的方法,从而A、1到了一起,%、@到了一起(这里能够随意将其相互连接)。
这个样例不太形象,那么我就说一个现实一点的,我们身边给男女牵红线的。都叫媒婆(这里的媒婆就是AOP),媒婆有牵手的方法。她将自己的牵手方法赋予切割两地的男女。使他们进行牵手。
三、容器和AOP差别
容器:是一个对象有了某种需求,去主动要求进入容器中。从而获得对应的方法不用自己再去封装方法了
AOP:每一个对象不用去考虑自己须要什么,通过AOP被动得到对应的方法
四、容器和AOP结合
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
如图所看到的,给容器加入权限、日志、多线程等功能。通过AOP将各个系统放入容器中。使得各个系统拥有相应的功能
五、总结
今天听了老师的讲课收获特别大。对于容器和AOP如今有了一个大概的概念,运用到我们的学习中来,首先将自己放到容器中,也就是要学习每个细小的知识点,容器中的东西都要去弄个明确,以后要学习AOP的精神。依据自己的需求去寻找自己不熟悉的知识点来提升自己
以后运用的时候相信理解会更加深刻的
【项目基础】容器、AOP理论篇的更多相关文章
- Java Web基础 --- Servlet 综述(理论篇)
摘要: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Ser ...
- PHP丨PHP基础知识之PHP基础入门——函数「理论篇」
前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数! 一.函数的声明与使用 1.函数名是标识符之一,只能有数字字母下划线,开头不能是数字. 函数名的命名,须 ...
- PHP丨PHP基础知识之流程控制WHILE循环「理论篇」
昨天讲完FOR循环今天来讲讲他的兄弟WHILE循环!进入正题: while是计算机的一种基本循环模式.当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环.while语句的一般表达式为:whil ...
- PHP丨PHP基础知识之条件语IF判断「理论篇」
if语句是指编程语言(包括c语言.C#.VB.java.php.汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一. if语句概述 if语句是指编程语言(包 ...
- PHP丨PHP基础知识之条件语SWITCH判断「理论篇」
Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择.以PHP来说,switch(开关语句)常和case break default一起使用 典型结构 switch($control ...
- FPGA基础学习(4) -- 时序约束(理论篇)
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...
- RabbitMQ学习总结 第一篇:理论篇
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- 14 微服务电商【黑马乐优商城】:day01-springboot(理论篇)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) :day01-springboot(Thyme ...
- 14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇二:知道什么是SpringCloud)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一: ...
随机推荐
- 洛谷P1280 && caioj 1085 动态规划入门(非常规DP9:尼克的任务)
这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...
- caioj 1073 动态规划入门(三维一边推:最长公共子序列加强版(三串LCS))
三维的与二维大同小异,看代码. #include<cstdio> #include<cstring> #include<algorithm> #define REP ...
- HNU 12876 Quite Good Numbers 完美数变形
筛法是一种很快的方法,贴代码纪念一下. 做法很像筛法 #include <iostream> #include <cstdio> #include <cstring> ...
- MyBatis学习总结(17)——Mybatis分页插件PageHelper
如果你也在用Mybatis,建议尝试该分页插件,这一定是最方便使用的分页插件. 分页插件支持任何复杂的单表.多表分页,部分特殊情况请看重要提示. 想要使用分页插件?请看如何使用分页插件. 物理分页 该 ...
- Raphaeljs入门到精通(一)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- openVswitch(OVS)源码分析之工作流程(哈希桶结构体的解释)
这篇blog是专门解决前篇openVswitch(OVS)源码分析之工作流程(哈希桶结构体的疑惑)中提到的哈希桶结构flex_array结构体成员变量含义的问题. 引用下前篇blog中分析讨论得到的f ...
- stl之set集合容器应用基础
set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据.每一个节点包括一个取值红色或黑色的颜色域.以利于进行树的平衡处理.作为节点键值的元素 ...
- python list的+,+=,append,extend
面试题之中的一个. def func1(p): p = p + [1] def func2(p): p += [1] p1 = [1,2,3] p2 = [1,2,3] func1(p1) func2 ...
- 在IIS中给某一个网站添加binding的坑
以http为例, 假如ip地址从局域网的地址172.31.212.20改为127.0.0.1 但是网站没法访问了http://172.31.212.20/chile.backoffice/ 必须通过 ...
- 如何卸载visualsvn for visual studio
新入职的公司,电脑上的visual studio已经安装了visualsvn 尝试在tools-->extensions and updates中卸载 但是uninstall按钮是被禁用掉的 谷 ...