SSM实验作业(一): Spring IOC 和 AOP

 Spring IOC 和 AOP

一、基础概念

Spring 是一个基于 IOC AOP 的 J2EE 系统的 框架
①、IOC (反转控制) 是 Spring 的基础,Inversion Of Control。简单说就是 创建对象由以前的程序员
自己 new 构造方法来调用,变成了交由 Spring 创建对象。
②、DI (依赖注入 Dependency Inject), 简单地说就是拿到的对象的属性,已经被注入好相关值了,
直接使用即可。

二、实验目的

本知识点通过运行 TestSpring 演示 如何用 Spring 获取一个对象,并打印其 name(属性)

三、实验步骤

步骤 1: 新建项目

在 E :\idea\项目\SSM 目录 下新建 SSMproject1 项目 ( java project 类型 )。

 

步骤 2 : 下载包

将 lib1.rar 解压到 E:\idea\项目\ssm 工具包\lib1 目录

 

步骤 3: 导入包

把 jar 包导入到项目中, 导包办法:右键 project->properties->java build path->libaries->add
external jars

 

 

步骤 4: pojo

准备 pojo Category ,用来演示 IOC 和 DI

 

步骤 5 : applicationContext.xml

在 src 目录下新建 applicationContext.xml 文件。applicationContext.xml 是 Spring 的核心配置文件
通过关键字 c 即可获取 Category 对象,该对象获取的时候,即被注入了字符串"category 1 到 name 属性 中

 

步骤 6 : TestSpring

测试代码,演示通过 spring 获取 Category 对象,以及该对象被注入的 name 属性。
如图所示,可以打印出通过 Spring 拿到的 Category 对象的 name 属性

 

拓展实验:

扩展部分:建立学生类:student(学号,姓名,数学。英语),并定义张三、李四两位学生信息,查询显示他们数学的成绩。

Student.java

 

TestSpring.java
applicationContext.xml

 

运行结果:

 

 

四、 实验代码 1、Category.java
package com.mytest.pojo;
public class Category {
private int id ;
private String name ;
public Category() {}
public Category( int id, String name) {
this . id = id; this . name = name;
}
/**
* 获取
* @return id
*/
public int getId() {
return id ;
}
/**
* 设置
* @param id
*/
public void setId( int id) {
this . id = id;
}
/**
* 获取
* @return name
*/
public String getName() {
return name ;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this . name = name;
}
}
2、TestSpring.java
package com.mytest.pojo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestSpring {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[]{ "applicationContext.xml" });
Category c = (Category) context.getBean( "c" );
System. out .println(c.getName());
}
}
3、applicationContext.xml
<? xml version ="1.0" encoding ="UTF-8" ?>
< beans xmlns ="http://www.springframework.org/schema/beans"
xmlns: xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns: aop ="http://www.springframework.org/schema/aop"
xmlns: tx ="http://www.springframework.org/schema/tx"
xmlns: context ="http://www.springframework.org/schema/context"
xsi :schemaLocation ="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd" >
< bean name ="c" class ="com.mytest.pojo.Category" >
< property name ="name" value ="category 1" />
</ bean >
</ beans >
五、 实验总结
1、什么是 IoC
IoC:控制反转\反转控制,)是一种设计思想或者说是某种模式。这个设计思想就是将原本
在程序中手动创建对象的控制权,交由 Spring 框架来管理。IoC 容器是 Spring 用来实现
IoC 的载体, 实际上就是个 Map(key,value),Map 中存放的是各种对象。
2、IoC 解决了什么问题? IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相关的资源,这样会使得对象之
间的耦合度或者说依赖程度降低。同时资源会变得容易管理,比如用 Spring 容器提供的话就
很容易实现一个单例。
3、什么是 AOP?
AOP:Aspect oriented programming 面向切面编程,AOP 是 OOP(面向对象编程)的一种
延续。
切 :指的是横切逻辑,原有业务逻辑代码不动,只能操作横切逻辑代码,所以面向横切逻
面 :横切逻辑代码往往要影响的是很多个方法,每个方法如同一个点,多个点构成一个面。
这里有一个面的概念
4、AOP 解决了什么问题?
OOP 编程思想可以解决大部分的代码重复问题,但是有一些问题是处理不了的:比如在父
类 Animal 中的多个方法的相同位置出现了重复的代码,OOP 就解决不了。而 AOP 就是用来
解决。切 :指的是横切逻辑,原有业务逻辑代码不动,只能操作横切逻辑代码,所以面向横
切逻辑。面 :横切逻辑代码往往要影响的是很多个方法,每个方法如同一个点,多个点构成
一个面。这里有一个面的概念
AOP 提出横向抽取机制,将横切逻辑代码和业务逻辑代码分离。在不改变原有业务逻辑的
情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值