SpringIOC与AOP

Spring框架

思想:高内聚, 低耦合

Spring 最基本的jar包:

一:Bean实例化的三种方式:

1:无参构造注入: (必须提供无参构造函数)

2:使用静态工厂创建对象 : (factory-method:是工厂的静态方法)

 

3:实例工厂创建: (factory-method:是工厂的实例方法)

 

注意 :第一种方法是常用的 

二:bean标签的属性 以及Bean的作用范围

 Id: 对象名字,任意取

Name : 名字,作用和id一致 (不常用)

Class : 类的全路径

Scope : bean的作用范围  (singleton:默认单例 ;prototype :多例;request:创建的bean存入到request作用域;session :将bean存放到session作用域;globalSession:创建对象存入到全局的session中)

三:属性注入

 

Spring 的注入方式:

1:有参构造注入 :(name的值跟构造方法的形参必须保持一致)

 

2:set注入:( name的值是属性的名字)必须生成属性的Set方法

 

3:复杂类型的注入:

 

四 :通过注解创建对象  

写法:@注解名称(属性名称=属性值)

 导入相关jar包:

 :扫描多个包可用逗号分隔或者例如: com.new.study  扫包: com即可

@Component 组件:(作用在类上)

Spring 中提供 @Component的三个衍生注解:(功能目前来讲是一致的)

   @Controller  :WEB层 ;@Service :业务层 ;@Repository持久层

这三个注解是为了让标注类本身的用途清晰,Spring在后续版本会增强

Component(value=”xxx”) value可用省略 不写默认的对象名类名首字母小写

作用在属性上:

@Autowried : 自动注入类的对象

@Resource (name=”xxx”)  xxx 跟 component(value=”xxx”)的Value值一致

五:Spring的 AOP 操作

 

Aspectj是一个面向切面的框架,它拓展了java语言。Aspectj定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的class文件。Aspectj是一个基于java语言的AOP框架, spring2.0以后新增了对Aspectj切点表达式支持

@Aspectj是Aspectj1.5新功能,通过JDK5注解技术,允许直接在Bean类中定义切面

 

新版本Spring框架建议使用Aspectj方式来开发AOP 。

1:在Spring里面进行AOP操作,使用 Aspectj实现

(1): aspectj不是Spring的一部分,和spring一起使用进行aop操作,Spring2.0以后新增了对Aspectj支持

(2):使用aspectj实现AOP的两种方式: 基于aspectj的xml配置和基于注解的方式

 

2:AOP 准备操作:导入相关 jar 包 和 AOP 约束 

AOP 相关术语:

3:XML配置方式:

 

使用表达式配置切入点  切入点:实际增强的方法

语法: execution (<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

(1) execution(* Class类名.方法(..))   含义:*:代表任意访问修饰符 ;(. .):代表包含所有参数;

(2) Execution(* 类名.*(..))  ;表示此类下的任意修饰符的方法

(3) Execution (* *.*(..)) ; 表示所有类的所有方法

(4) Execution (* save*(..)) ; 匹配所有save开头的方法

 

注解配置方式如下:

在Spring 核心配置文件中开启注解功能:

具体配置如下:

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值