标签:
一:Spring 简介
1.Spring的处理开销非常的小,并且是非侵入式的(允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口),
2.Spring提倡使用依赖注入(IoC)来实现耦合,当我们需要bean对象时,从Spring容器中获得,而不是通过以前的new 方式来实例化对象。降低耦合。
3.Spring是一个容器,它包含并且管理系统对象的生命周期和配置。
二:IoC容器
1.bean工厂(BeanFactory)
2.Application Context(上下文)
这两种容器都能实现IoC,他们将系统的配置和依赖关系从代码中独立出来。但二者也有不同,前者在加载时,会将所有的bean组件实例化,需要更多的系统开销,但是在后期运行时就会比较快了。后者只有在我们用到这个对象时,才会去实例化。
三:Spring小实例
1.创建应用接口
package com.wode.spring.hello
public interface ISayHello{ void say(); }
2.创建应用接口实现类
package com.wode.spring.hello
public class SayHelloImpl implements ISayHello{ private String msg; public SayHelloImpl(){}; public void say(){ System.out.println(msg); } public void setMsg(String msg){ this.msg=msg; } }
3.创建Spring的配置文件
<beans> <bean id="sayHello" class="com.wode.spring.hello.SayHelloImpl"> <property name="msg"> <value>hello world<value> <property> <bean> <beans>
一个<bean>元素其实就是代表了一个Java类。id是Spring所认识的唯一的标识符,也代表了sayHelloBean的名字,class表示它的全路径。由于sayHelloBean中提供了set方法,其中的value就是通过调用这个方法进行赋值,这种方法又叫set注入。
4.创建测试类
public class sayHelloWorld{
public static void main(String[] args)
BeanFactory fac=new XmlBeanFactory(new FileSyatemResource("spring.xml"));
ISayHello s=(ISayHello) fac.getBean("sayHello");
}
上面所有代码可以看出,我们没有并没有在类中去new对象,而是通过反射将配置文件加载到容器中,容器将xml文件中配置的bean生成Java对象,将一个字符串通过set注入到对象属性中。在测试类中,BeanFactory的getBean方法得到SayHelloImpl实现类的引用。这个小实例是Spring中使用和配置一个类的基本知识。
四:Spring的核心1——IoC(控制反转,依赖注入)
优点. 因为对象生成是在xml中完成,当我们需要更换实现子类时只需要到xml中修改即可。
最基本的Java技术:反射。IoC不是一种技术,而是一个解决组件间依赖关系,配置和生命周期的设计模式。
1.BeanFactory采用了工厂设计模式,创建和分发各种类型的bean。最常见的是使用XmlBeanFactory.例如:
ISayHello s=(ISayHello )new XmlBeanFactory(new FileInputStream("spring.xml"))
2.应用上下文(ApplicationContext)
在他的所有实现类中,我们一般用到2个类:ClassPathXmlApplication 和FileSystemXmlApplicationContext
在上面两种容器中,我们用到最多的是第二种,因为他提供了更多的功能。
3.装配Bean
<bean id="xm" class="com.wode.map"> 这仅仅是在xml文件中定义了一个bean。
下面我们将进行注入设置。通常的方法有2种:set注入和构造器注入。
标签:
原文地址:http://www.cnblogs.com/Kevin-Ma/p/5686790.html