spring的必须理解的思想
来源:互联网 发布:js push pop 编辑:程序博客网 时间:2024/06/18 18:51
1,依赖注入(Dependnecy Injection):
在不使用Spring框架的情况下,一个类要跟另一个类建立联系,可能会使用如下的模式:
class A{...}
class B{
private A a;
... }
这样的话,每次实例化一个B的对象,如b1,必定实例化一个A的对象,如a1,并且b1和a1是紧耦合的,b1牢牢地和a1绑定在一起了。他们之间的关系不能变了。如果有一个a2要与b1建立联系是不可能的。只能在实例化一个b2对象。这样很难进行测试而且程序的灵活性很差。
Spring框架的做法是:
先定义一个接口I,让A实现这个接口I,再定义B,在B中调用接口I,如:
interface I{
method1(){}
}
class A implements I{
method1(){}
}
class B{
I i;
}
然后最重要的,可以再xml中对A,B进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 定义bean -->
<bean id="A" class=".....">
<property name="msg">
<value>A</value>
</property>
</bean>
<bean id="B" class=".....">
<constructor-arg ref="A"/>
<property name="msg">
<value>B</value>
</property>
</bean>
</beans>
Spring是通过注入的方式将类A注入到了类B,而且我们可以通过xml将任何实现了I接口的类与类B产生关联。这就是Spring的依赖注入的思想。
2,面向切面编程(AOP):
切面的意思就是,有些类或者说POJO,他们是专门提供某种固定服务的,而且为许多其他的类提供相同的服务,比如日志类logger,安全类security,事务管理类,这些类就像一个个切面一样把其他的类包含在其中。
如果我们不用AOP,那么我们在程序中每个用到这些服务类提供的服务的地方,都要调用该类的方法,非常麻烦。
而用AOP编程,我们可以在xml中来定义各个bean中的方法之间的关系,如
定义了之后,每次只要调用embarkOnQuest()方法,就会在这个方法的前面和后面调用singBeforeQuest和singAfterQuest方法。
3,消除样板式代码简化编程:
在程序开发的时候经常会有重复性的代码,比如:
Spring改变了这种做法:
明显减少了重复性的代码,把程序的重心放在了核心的逻辑上、
总结:Spring框架的最终目标就是简化java开发,特别是企业中的java开发。它的核心思想也就是以上这些内容,但是也就是这几个本身就很简单的思想,让Spring能够如愿的实现它的目标。
- spring的必须理解的思想
- 面试时必须理解的spring要点
- Spring的核心思想终极理解
- Spring之IOC思想的理解和简单实现
- Spring AOP思想的理解和简单实现
- 对Spring框架思想中依赖注入的理解
- Spring之IOC思想的理解和简单实现
- 编程思想的理解
- 贝叶斯思想的理解
- 管理杂谈(三)--必须的思想
- OOP的思想的理解
- 如何理解Spring的核心思想IOC【Spring是后宫,javabean是美女】
- 面向对象思想的理解
- 对于缓存思想的理解
- 面向对象思想的理解
- 面向对象思想的理解
- Spring必须掌握的技术
- Spring 的基本设计思想
- Java 各种map tree 。。
- 如何通过a链接实现图片下载
- JS控制光标选中文本和检测文本是否为数字
- 第十三周项目1-验证算法3
- MySql删除重复数据
- spring的必须理解的思想
- 第11周项目3-图遍历算法实现
- 【JavaScript学习】事件:事件对象
- json串最外层是[] +自定义ListView
- resolverApp(mainapp)
- 简单通过点击左右按钮来改变图片轮播
- Lua与C++交互初探之C++调用Lua
- Lua与C++交互初探之Lua调用C++
- Kinect帮助文档翻译之一 入门