刚开始学 Spring 还是有一点点小小的理解的 和大家分享一下
说到 Spring 先说说 Spring 的优点吧
1 首先 Spring 是个开源的轻量级的,免费的框架 .( 轻量级框架与重量级框架的区别大家别忘了复习哦! )
2 Spring 提供的是对对象的有效的管理 ( 比如处理对象间的关系,将对象按照需求有效的结合起来 ).
3 使用了 Spring 可以让您在不修改原有代码的前提下,增加新的功能,面向切面的编程也使得程序功能的迭代更加方便
4 由于 Spring 是轻量级的框架,所以侵入性也很低。(所谓侵入性简单点说就是在程序代码中依赖框架中代码的程度,而 Spring 实现的一个低侵入性,是因为 Spring 框架本身集成了 N 个框架,是 Spring 去依赖这些框架而程序代码去依赖 Spring 框架,从而降低了程序代码对框架的依赖性。)
上面就是我总结的几个 Spring 的一些优点吧!有不全的或者解释不正确的期待您的指出
上面说了一些比较表面的东西,这篇稍微深入一点吧(水很深,快被淹死了)
Spring 最基础的东西 我认为是 IOC( 控制反转容器 ) 因为要装东西的话,连个容器都没有那是不行的,而这个 IOC 容器装的就是很多个 bean ,我想就是因为这个原因所以它的跟标记才叫 beans 吧, IOC 负责干的事就是将我们所需要调用的对象反射出去下面一段代码解释这个过程
1 有一群类的实现方法都是相同的 所以我们定义了个接口
比如
public interface Human{
public void show();
}
Ok 一个接口已经做好了下面由一个接口的子类来实现这个接口
Public class Man inplements human{
public void show(){
System.out.println( “我是个男人” );
}
}
Public class Woman inplements human{
public void show(){
System.out.println( “我是个女人” );
}
}
恩 又好了一个类
好了现在我们再来做出一个类来使用上面我们做好的两个东西
Public class ShowMan{
private human;
public void setHuman(Human human){
this.human=human;
}
public void showMan(){
human.show();
}
}
呵呵 好了 下面就是一个 test 类的写法哦
这个可是一个关键啊
spring-framework-2.0-with-dependencies/spring-framework-2.0/dist/ spring.jar
这个包就可以让您吧 Spring 给用起来
public class Test {
public static void main(String [] args){
BeanFactory bean = new ClassPathXmlApplicationContext( "applicationContext.xml" );// 这一句的意思得到了那个装满了 bean 的容器
Man human = bean.getBean(“sx”); // 这样就可以得到在配置文件中您已经配置好的对象了
human.show();
}
}
在这里 先当该配置文件是配好了的,我们可以看到上面 在 showMan 那个类当中属性我们并没有给出是哪个具体的类,而给的是该类的接口,在配置文件不明确的情况下我们并不能知道该类属性的具体类型 是 man 还是 woman 。但是是什么让配置文件按照我们的意愿去引用我们所需要的类的对象呢?
那就是 IOC 容器根据配置文件中的信息将对象反射回我们调用的代码之中
<bean id=”man” class=”Man”>
< bean id = "sx" class = "showMan" >
< property name = "human" ref = "oracle" >
</ property >
</bean>
过程是得到一个 Man 的对象 再其注入到 id 为 sx 的 showMan 类的对象中去而在代码的实现的效果来看 我们是用一个接口的实例得到的确实接口的实现类的结果(所谓的反转就是这个意思啦)