Aop常见概念

AOP常见概念 面向切面编程(Aspect Oriented Programming,AOP)其实就是一种关注点分离的技术,是OOP的重要补充。 软件开发时经常提一个词叫做“业务逻辑”或者“业务功能”,我们的代码主要就是实现某种特定的业务逻辑。但是我们往往不能专注于业务逻辑,比如我们写业务逻辑代码的同时,还要写事务管理、缓存、日志等等通用化的功能,而且每个业务功能都要和这些业务功能混在一起,痛苦!所以,为了将业务功能的关注点和通用化功能的关注点分离开来,就出现了AOP技术。这些通用化功能的代码实现,对应的就是我们说的切面(Aspect)。 代码分开的同时,我们如何保证功能的完整性呢? 你的业务功能依然需要有事务和日志等特性,即切面最终需要合并 ,这个就叫织入 里就涉及AOP的底层技术啦,有三种方式: 编译时织入:在代码编译时,把切面代码融合进来,生成完整功能的Java字节码,这就需要特殊的Java编译器了,AspectJ属于这一类 类加载时织入:在Java字节码加载时,把切面的字节码融合进来,这就需要特殊的类加载器,AspectJ和AspectWerkz实现了类加载时织入 运行时织入:在运行时,通过动态代理的方式,调用切面代码增强业务功能,Spring采用的正是这种方式。动态代理会有性能上的开销,但是好处就是不需要神马特殊的编译器和类加载器啦,按照写普通Java程序的方式来就行了! 目标对象 :切面的织入发生在的地方 切面:通常是一个类,里面可以定义切入点和通知...

2 minute read

Spring框架使用中的ioc操作

Spring框架使用中的IoC操作 场景1:Spring的bean如果要在实例化过程中修改其某一个成员变量 首先我们知道Bean的生命周期 1.实例化Bean对象:Spring容器根据配置中的bean定义中实例化bean。 2.设置对象属性:Spring 使用依赖注入填充所有属性 3.检查Aware相关接口并设置相关依赖:如果 bean 实现 BeanNameAware 接口,则工厂通过传递 bean 的 ID 来调用...

4 minute read

Mongodb的安装与配置

mongoDB的安装与配置 1.什么是NoSQL ​ NoSQL是设计互联网规模数据库解决方案——存储半结构化数据、非结构化数据的一种新方式。 ​ SQL(结构化查询语言)是用于存储结构化数据的RDBMS(关系型数据库管理系统)的,RDBMS具有ACID的特性。NoSQL不遵循ACID,而是遵循BASE ACID BASE 原子性 基本可用 一致性 最终一致性 隔离性 软状态 持久性...

1 minute read

常用前端代码

常用前端代码 1.thymeleaf相关 1.1引入JS 添加html、script标签 <html xmlns:th="http://www.thymeleaf.org"> <!-- html标签 --> <head> <meta charset="UTF-8"> <tilte></title> <script src="../../js/jquery.min.js"></script>...

9 minute read

Sql回顾

SQL回顾 1.SQL语言分类 1.1.DDL(数据定义语言) create、drop、alert 创建数据库 create database dbname 展示所有的数据库 show databases 使用数据库 use dbname 展示库中的表...

1 minute read

Rest和restful

REST和Restful 1.什么是Rest? Rest是Representation State Transfer(表述性状态转移)的缩写,它是一种软件架构风格。 ​ Rest利用现有的技术HTTP+URI+XML来实现要求的架构风格,其中HTTP协议用来统一接口,URI用于定位资源,XML或JSON(它们从表述格式角度描述)、文本或二进制流(它们从内容角度描述)作为资源的表述。 1.1 Rest请求资源过程 ​ 首先,访问一个UR,经过HTTP,将资源的表述从服务器转移到客户端或者从客户端转移到服务器 1.2 Rest的6个特点 ​ ①客户端服务器的...

1 minute read

Spring ioc (2)

Spring IoC (2) Spring的IOC优点: 它将最小化应用程序中的代码量。 (它将使您的应用程序易于测试,因为它不需要单元测试用例中的任何单例或 JNDI 查找机制。) 它以最小的影响和最少的侵入机制促进松耦合。(最主要的好处) 它支持即时的实例化和延迟加载服务。 Spring 中的 IoC 的实现原理: 1.初始化IoC容器...

1 minute read

Spring

Spring spring分为5个部分:core、aop和设备支持、data access、web、test、messaging core部分包含4个模块 spring-core:依赖注入IoC与DI的最基本实现 spring-beans:Bean工厂与bean的装配 spring-context:spring的context上下文即IoC容器 spring-expression:spring表达式语言 Spring的两大核心:IoC、AOP

1 minute read