对Spring的理解

1.Spring实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式)。这个类名为BeanFactory(实际上是一个接口),在程序中通常BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类。在其配置文件里通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。

   
 2. Spring提供了对IOC良好支持,IOC是一种编程思想。是一种架构艺术,利用这样的思想能够非常好地实现模块之间的解耦。IOC也称为DI(Depency
Injection),什么叫依赖注入呢?

譬如,Class Programmer

{

Computer
computer = null;

public void code()

{

//Computer
computer = new IBMComputer();

//Computer
computer = beanfacotry.getComputer();

computer.write();

}

public void
setComputer(Computer computer)

{

this.computer = computer;

}

}

     另外两种方式都由依赖,第一个直接依赖于目标类,第二个把依赖转移到工厂上,第三个彻底与目标和工厂解耦了。在spring的配置文件里配置片段例如以下:

<bean id=”computer” class=”cn.itcast.interview.Computer”>

</bean>

<bean id=”programmer” class=”cn.itcast.interview.Programmer”>

<property name=”computer”  ref=”computer”></property>

</bean>

   
 3. Spring提供了对AOP技术的良好封装,
AOP称为面向切面编程。就是系统中有非常多各不相干的类的方法,在这些众多方法中要增加某种系统功能的代码,比如,增加日志,增加权限推断。增加异常处理,这样的应用称为AOP。

实现AOP功能採用的是代理技术,client程序不再调用目标,而调用代理类,代理类与目标类对外具有同样的方法声明。有两种方式能够实现同样的方法声明,一是实现同样的接口,二是作为目标的子类在,JDK中採用Proxy类产生动态代理的方式为某个接口生成实现类,假设要为某个类生成子类。则能够用CGLI
B。

在生成的代理类的方法中增加系统功能和调用目标类的对应方法,系统功能的代理以Advice对象进行提供。显然要创建出代理对象,至少须要目标类和Advice类。spring提供了这样的支持,仅仅须要在spring配置文件里配置这两个元素就可以实现代理和aop功能。比如,

<bean id=”proxy” type=”org.spring.framework.aop.ProxyBeanFactory”>

<property name=”target” ref=””></property>

<property name=”advisor” ref=””></property>

</bean>

时间: 2024-10-12 14:31:43

对Spring的理解的相关文章

spring深入理解二(关于容器工作源码)

spring基本工作原理如下: 1.查找bean配置文件 2.加载bean配置文件并解析生成中间表示BeanDefinition 3.注册beanDefinition 4.如果是单例或lazy-init=false,则直接生成bean spring将 1.查找bean配置文件 2.加载bean配置文件并解析生成中间表示BeanDefinition 3.注册beanDefinition 这三部分开,可以提供更多的定制给用户. spring将配置文件之类的文件资源抽象成一个Resource,封装了g

目前对SpringMVC和Spring的理解-第一节

写标题之前还特意百度了一下,我这么写标题会不会有bug,可能是作为一个低端码农的职业病吧. 好,那我就来写写我对springMvc和spring的理解 干了也三年多javaweb开发了,都是在tomcat上忙乎j2ee这些东西.当我们将代码由ecplise编译成class文件放到tomcat下后,启动tomcat,jvm加载tomcat需要的jar.class,搜索到到我们的项目,接着加载我们项目的class(这里不知道如果是war包放上去是怎么样一个过程),加载完成后启动tomcat,启动我们

Java框架-Spring MVC理解001

Spring MVC理解 最近在读一本<看透springMVC>的书,从了解到了一些更加精细系统的知识,边读变分享吧. 1.servlet--Spring MVC的本质 2.Spring MVC其实是一个工具,具体的理解可以分为两步:第一步,了解这个工具是怎么创建出来的:第二步,了解这个工具是怎么用的. 3.前期使用准备:环境的搭建 ①创建WEB项目,导入jar包,Maven项目简单的加入springMVC和servlet的依赖就可以了. //Maven项目加入依赖 <dependenc

Spring IOC理解

内容来自http://blog.csdn.net/qq_22654611/article/details/52606960 一.分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846 1.1.IoC是什么 Ioc-Inversion of Control,即"控制反转",不是什么技

谈Spring的理解

技术旨在理解. 最近风靡的SpringMVC,其实只是Spring的一个组件,充分说明Spring的强大.Spring到底是个什么鬼?用SSH的人很多,但是还真不是谁都能说清Spring的原理. 在SSH框架中Srping充当了管理容器的角色: Spring容器集中管理Bean的实例化: 关于Spring除了SpringMVC,我们听的最多的是“控制反转IOC”,“依赖注入DI”,“面向切面AOP” 依赖注入(Dependecy Injection,DI)和控制反转(Inversion of C

spring aop 理解

源地址:http://www.verydemo.com/demo_c143_i20837.html 1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等.一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难.当我看进去以后,我才发现:它就是一些Java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而已. 2.为什么用aop 1就是为了方便,看一个国外很有名的大师说,编程的人都是"懒人&qu

Java框架-Spring MVC理解005-DispatcherServlet

DispatcherServlet 通过源码我们可以看到,onRefresh方法是DispatcherServlet的入口方法.onRefresh中简单地调用了initStrategies,在initStrategies中调用了9个初始化方法. // org.springframework.web.servlet.DispatcherServlet protected void onRefresh(ApplicationContext context) { initStrategies(cont

Spring AOP理解

Spring的核心思想的IOC和AOP.最近学习AOP,对切面的学习有了进一步的认识. Spring用代理类包裹切面,把他们织入到Spring管理的bean中.也就是说代理类伪装成目标类,它会截取对目标类中方法的调用,让调用者对目标类的调用都先变成调用伪装类,伪装类中就先执行了切面,再把调用转发给真正的目标bean.这样可以实现对业务代码的最小化侵入.使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性.Spring中日志记录,性能统计,安全控制,事务处理等都是通过AOP来管理的. 伪装类的实

Spring的理解

[Spring概念]Spring是J2EE应用程序框架,是轻量级的IOC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用. [IOC控制反转]在传统的java代码中,对象的调用是由调用者创建并执行,在Spring中,对象创建责任的反转,在spring中BeanFacotory是IOC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖.XmlBeanFacotory实现Bean

J2EE框架(Struts&amp;Hibernate&amp;Spring)的理解

SSH:Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求.在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发.(View:沿用JSP,HTTP,Form,Tag,Resourse :Controller:ActionServlet,struts-config.xml,Action)Hibernate:Hibernate是一个持久层框架,它只负责与关系数据库的操作