认识SSM框架和Redis(一)

来源:互联网 发布:淘宝账号已被限制登录 编辑:程序博客网 时间:2024/06/04 18:58

1.Spring框架

理念包括:
IoC(Inversion of Control,控制反转);
AOP(Aspect Oriented Programming ,面向切面编程

1.1.1 Spring IoC

IoC为一个容器,在Spring中它认为一切Java资源都是Java Bean,容器的目标即为管理这些Bean和他们之间的关系。Spring IoC中装载各种Bean,他们由IoC容器管理。
  • Java Bean 之间会存在一定的依赖关系。
  • Spring 是依靠描述完成对象的创建及其依赖关系。

例子:
比如插座,它依赖国家标准去定义,现有两种插座(Socket1,Socket2)
有两种插座可供选择,具体选择那种呢?通过代码实现使用插座1:

Socket socket = new Socket1();user.setSocket(socket);user.useSocket();

上述这种使用方式Socket接口和其实现类Socket1耦合了。
Spring IoC解决了这个问题。不用new的方式创建对象,而是使用配置的方式,让Spring IoC容器自己通过配置去找插座。
用一段XML描述插座和用户的引用插座1如下:

<bean id="socket" class ="Socket1" /><bean id="user" class="xxx.User">    <property name="socket" ref="socket"/></bean>

更换插座2只需要把配置切换为:

<bean id="socket" class ="Socket2" />

“我要插座2” 相当于XML依赖关系配置,这个时候Spring IoC只会拿插座2,然后通过国家标准插座接口注入给使用者,提供给使用者使用。这是一种被动行为。需要的资源(Bean)通过描述信息就可以得到,其中的控制权在Spring IoC 容器中,他会根据描述找到使用者需要的资源,这就是控制反转。

你不需要去找资源,只要向Spring IoC 容器描述所需要的资源,Spring IoC 自己会找到你需要的资源,这就是Spring IoC的理念。

1.1.2 Spring AOP

IoC的目标是管理Bean,而Bean是Java面向对象(OOP)设计的基础 。
而有些情况是面向对象没有办法处理的。例如,生产部门的订单,生产部门,财务部门三者符合OOP的设计理念。订单发出,生产部门审批通过准备付款,但是财务部门发现订单的价格超支了,需要取消订单。显然超支限定已经不止影响财务部门了,还会影响生产部门之前所做的审批,需要把它们作废,我们把预算超支这个条件称为切面,它影响了订单,生产部门,财务部门3个OOP对象。在现实生活中,这样的切面条件跨越了3个甚至更多的对象,并且影响了它们的协作。所以只用OOP并不完善,还需要面向切面编程,通过它去管理在切面上的某些对象之间的操作。

  • Spring AOP 常用于数据库事务的编程。
  • Spring已经提供了隔离级别和传播行为去进行控制。

认识SSM框架和Redis(二)

原创粉丝点击