SSM框架学习之Spring学习笔记

要掌握SSM,所学内容还是要规划一下,不建议直接开撸SSM,最好把Spring SpringMVC Mybatis各个击破

我的学习网站:http://how2j.cn/k/ssm/ssm-tutorial/1137.html?tid=77

Spring框架是个轻量级的Java EE框架。IOC(控制反转)、DI(依赖注入)、AOP(面向切面)是Spring的核心思想

一、IOC/DI(控制反转/依赖注入)

IOC(控制反转 ):就是 创建对象由以前的程序员自己new来调用,变成了交由Spring创建对象。

和传统方式获取对象的方式不同:

传统方式:通过new 关键字创建一个对象,比如:Person p = new Person();

IOC方式:对象的生命周期由Spring管理,直接从Spring那里获取一个对象。控制反转 也就是 控制权原来属于程序员 现在交给了Spring

DI(依赖注入):就是 拿到的对象的属性,已经被注入好了相关的值,直接使用即可。

二、注入对象

可为对象的属性注入值。

扫描二维码关注公众号,回复: 1028131 查看本文章

可为对象注入值。

例如:

三、注解方式IOC/DI

以上为在applicationContext.xml配置文件中直接配置。还可以用注解的方式进行配置,以简化xml的配置内容。

在xml中添加  <context:annotation-config/>  表示  告诉Spring要用注解的方式进行配置

例如:

在Product对象的category属性前加上@Autowired注解

 

除了在属性前加上@Autowired这种方式外,也可以在setCategory方法前加上@Autowired,这样来达到相同的效果

除了@Autowired之外,@Resource也是常用的手段

上述例子是对注入对象行为的注解,那么bean对象本身,比如Category,Product可不可以移出applicationContext.xml配置文件,也通过注解进行呢?

比如:将下图中的内容移除xml以注解的形式配置

删除xml中的所有配置 只添加  <context:component-scan base-package="com.how2java.pojo"/>  表示 告诉Spring,bean都放在com.how2java.pojo这个包下

例如:

使用@Component注解

例如:

四、AOP

AOP 即 Aspect Oriented Programming 面向切面编程

在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能

所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务 
所谓的周边功能,比如性能统计,日志,事务管理等等

周边功能在Spring的面向切面编程AOP思想里,即被定义为切面 
在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发 
然后把切面功能和核心业务功能 "编织" 在一起,这就叫AOP

准备业务类 ProductService

准备日志切面 LoggerAspect

配置 applicationContext.xml

execution(* com.how2java.service.ProductService.*(..))

这表示对满足如下条件的方法调用,进行切面操作:
* 返回任意类型
com.how2java.service.ProductService.* 包名以 com.how2java.service.ProductService 开头的类的任意方法
(..) 参数是任意数量和类型

测试

通过配置的方式,把切面和核心业务类编制在了一起。

运行测试,可以发现在编织之后,业务方法运行之前和之后分别会打印日志

 五、注解方式AOP

上面配置AOP方式为xml  也可以用注解的方式配置AOP

使用@Component("s") 注解ProductService 类

注解配置切面

@Aspect 注解表示这是一个切面
@Component 表示这是一个bean,由Spring进行管理
@Around(value = "execution(* com.how2java.service.ProductService.*(..))") 表示对com.how2java.service.ProductService 这个类中的所有方法进行切面操作

配置xml

 

猜你喜欢

转载自www.cnblogs.com/xiaolangzhong/p/9090225.html