Spring核心概念(二)

IOC/DI

IOC(控制反转):对象(组件)的创建由代码中转移到外部容器(XML,注解) .

DI(依赖注入):当类A需要使用类B时,那么我们需要为类A的属性赋值类B的对象.

这种现象我们称为依赖注入.

注意:IOC/DI指的是同一个东西,理解的角度不一样.

补充:组件化思想:分离关注点,使用接口,不再关注实现.

AOP(面向切面编程)

AOP:是一种通过预编译和运行期动态代理的方式实现在

不修改源代码的情况下给程序动态添加功能的技术.

原理:

a.将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决.

b.采用代理机制组装起来运行,在不改变原程序的基础上对

代码段进行增强处理,增加新的功能.

术语:

增强处理(Advice)

前置增强

后置增强

环绕增强、异常抛出增强、最终增强等类型.

切入点(Pointcut)

连接点(Join Point)

切面(Aspect):切入点+增强处理.

目标对象(Target object)

AOP代理(AOP proxy)

织入(Weaving)

开发步骤:

第一步:写增强功能

第二步:配置核心文件

<!-- 注册增强类 -->

<bean id="tp" class="增强类">

<!-- 配置切面-->

<aop:config>

<!-- 配置切入点-->

<aop:pointcut id="名称" expression="

execution(匹配类和方法的表达式)

"/>

<!-- 配置切面-->

<aop:aspect ref="增强类的id">

<!-- 切面的增强方法和切入点 -->

<aop:before  method="增强方法" pointcut-ref="切入点的id" />

</aop:aspect>

</aop:config>

第三步:测试

匹配表达式

public * addUser(entity.User) //"*":任意返回值类型.

public void *(entity.User) //"*":任意方法名

public void addUser(..)     //"..":任意个任意类型的参数

* com.service.*.*(..) //com.service包下的所有直接子类的所有方法.

* com.service..*.*(..) //com.service包及其所有子包的所有类的所有方法.

时间: 2024-10-25 14:31:47

Spring核心概念(二)的相关文章

十分钟完成 spring 核心概念扫盲

一.背景 springframework 从 2.5 版本发展至今,期间已经发生了非常多的修正及优化.最初认为 spring 框架是一个非常轻量级的东西,轻量到你几乎认识不到必须使用它的理由.. 然而它又是那么的通用,几乎所有的流行框架如 持久层的 hibernate.表示层的 struts 都能跟它进行整合.但最终的结果是 spring 能整合的东西越来越多,逐渐的替代了其他的框架. 就比如 现在最火的 springboot,从Web控制层到持久层,任务调度.AOP 都已经被 spring 体

第一章 spring核心概念

一.Spring作用:管理项目中各种业务Bean(service类.Dao类.Action类),实例化类,属性赋值 二.Spring IOC(Inversion of Control )控制反转,也被称为依赖注入(Dependency Injection[DI]),是面向对象编程 中的一种设计理念,用来减轻程序代码之间的耦合度. IOC原理:侧重原理 在业务代码中不使用我们之间司空见惯的关键字new来构建一个业务实例,而是在配置文件中.通过xml节点来告知容器如何对内存中构建的对应类型的对象名称

Spring核心概念之AOP

一.AOP 的概念 AOP(Aspect Oriented Programming)的缩写,面向切面编程,主要作用就是对代码进行增强处理. 理解面向切面编程的含义:就是在不改变原有程序的基础上为代码增加新的功能. 实现面向切面编程需要了解两个概念: >切入点:可以插入增强处理的方法,比如原对象的fun()方法. >增强处理类型:在原对象fun()方法之前还是之后插入新功能. 二.Spring AOP简单应用 1.新建一个java项目 2.到官网下载Spring AOP和AspectJ框架所需要

Spring实战笔记:Spring核心(二)

spring core 面向切面的Spring 1.AOP:面向切面编程 在OOP中模块化的关键单元是类(classes),而在AOP中模块化的单元则是切面. AOP框架是Spring的一个重要组成部分.但是Spring IoC容器并不依赖于AOP,这意味着你有权利选择是否使用AOP,AOP做为Spring IoC容器的一个补充,使它成为一个强大的中间件解决方案. AOP在Spring Framework中的作用 提供声明式企业服务,特别是为了替代EJB声明式服务.最重要的服务是声明性事务管理.

Spring核心概念

Spring IoC Spring IoC就是控制反转,也被称为依赖注入(Dependency Injection, DI),是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度. 依赖是什么: 依赖就是在代码中通过局部变量.方法参数.返回值等建立的对于其他对象的调用关系. 1 /** 2 * @content 接口 3 * @author Gawain 4 * @date 2017-8-15下午8:02:37 5 */ 6 public interface DependDemo { 7

攻城狮在路上(贰) Spring(二)--- Spring IoC概念介绍

一.IoC的概念: IoC(控制反转)是Spring容器的核心.另一种解释是DI(依赖注入),即让调用类对某一个接口的依赖关系由第三方注入,以移除调用类对某一个接口实现类的一览. 定义如此,由此可见,在面向接口编程的情况下,IoC可以很好的实现解耦,可以以配置的方式为程序提供所需要的接口实现类. 在实际程序开发中,我们只需要提供对应的接口及实现类,然后通过Spring的配置文件或者注解完成对依赖类的装配.二.IoC的类型: 1.通过构造函数: 此种方式的缺点是,在构造函数中注入之后一般会作为一个

spring技术核心概念纪要

一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述了一些要点,并配合一些代码样例,这有助于快速理解 spring 框架. 二.spring架构 核心容器层 Core 模块 提供了框架的基本组成部分,包括 IoC 及依赖注入功能. Bean 模块 实现 Bean 管理,包括自动装配机制等功能: 其中BeanFactory是一个工厂模式的实现. Con

ElasticSearch笔记整理(二):CURL操作、ES插件、集群安装与核心概念

[TOC] CURL操作 CURL简介 curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求.简单的认为是可以在命令行下面访问url的一个工具.在centos的默认库里面是有curl工具的,如果没有请yum安装即可. curl -X 指定http的请求方法 有HEAD GET POST PUT DELETE -d 指定要传输的数据 -H 指定http请求头信息 curl创建索引库 curl -XPUT http://<ip>:9200

Storm 系列(二)—— Storm 核心概念详解

一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的 Storm 流处理程序被称为 Storm topology(拓扑).它是一个是由 Spouts 和 Bolts 通过 Stream 连接起来的有向无环图,Storm 会保持每个提交到集群的 topology 持续地运行,从而处理源源不断的数据流,直到你将主动其杀死 (kill) 为止. 1.2 Streams(流) Stream 是 Storm 中的核心概念.一个 Stream 是一个无界的.以分布式方式并行创建和处理的