资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Spring的定义:Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发.在项目中引入spring立即可以带来下面的好处l 降低组件之间的耦合度,实现软件各层之间的解耦。 l 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。l 容器提供单例模式支持,开发人员不再需要自己编写实现代码。l 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。l 容器提供的众多辅作类,使用这些类能够加快应用的开发,如: JdbcTemplate、 HibernateTemplate。l Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。对于spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务,还需要指明使用该服务,如果应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的,如果应用使用了spring提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能,所以它属于重量级。使用Spring需要的jar到http:/www.springsource.org/download下载spring,然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下distspring.jarlibjakarta-commonscommons-logging.jar如果使用了切面编程(AOP),还需要下列jar文件lib/aspectj/aspectjweaver.jar和aspectjrt.jarlib/cglib/cglib-nodep-2.1_3.jar如果使用了JSR-250中的注解,如Resource/PostConstruct/PreDestroy,还需要下列jar文件libj2eecommon-annotations.jarspring的配置文件模版.该配置模版可以从spring的参考手册或spring的例子中得到。配置文件的取名可以任意,文件可以存放在任何目录下,但考虑到通用性,一般放在类路径下。编写spring配置文件时,不能出现帮助信息由于spring的schema文件位于网络上,如果机器不能连接到网络,那么在编写配置信息时候就无法出现提示信息,解决方法有两种:1。让机器上网,eclipse会自动从网络上下载schema文件并缓存在硬盘上。2。手动添加schema文件,方法如下:windwos-preferences-myeclipse-files and editors-xml-xmlcatalog点add,在出现的窗口中的Key Type中选择URI,在location中选File system,然后在spring解压目录的dist/resources目录中选择spring-beans-2.5.xsd,回到设置窗口的时候不要急着关闭窗口,应把窗口中的Key Type改为Schema location,Key改为http:/www.springframework.org/schema/beans/spring-beans-2.5.xsd实例化spring容器方法一:在类路径下寻找配置文件来实例化容器ApplicationContext ctx = new ClassPathXmlApplicationContext(new Stringbeans.xml);方法二:在文件系统路径下寻找配置文件来实例化容器ApplicationContext ctx = new FileSystemXmlApplicationContext(new String“d:beans.xml“);Spring的配置文件可以指定多个,可以通过String数组传入。当spring容器启动后,因为spring容器可以管理bean对象的创建,销毁等生命周期,所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bean对象。从容器获取bean对象的代码如下:ApplicationContext ctx = new ClassPathXmlApplicationContext(“beans.xml”);OrderService service = (OrderService)ctx.getBean(personService);运用自己写的ApplicationContext的实现类,模仿spring的实现原理,用dom4j来读取xml文件。/* * 用于存放配置文件中,类的id和类名的类 * * * author 谭栋 * * since 2010-10-26 下午12:39:08 * * version v1.0 */public class BeanDefinition private String id;private String className;public BeanDefinition(String id,String className)this.id=id;this.className=className;public String getId() return id;public void setId(String id) this.id = id;public String getClassName() return className;public void setClassName(String className) this.className = className;* * author 谭栋 * * since 2010-10-27 下午10:25:27 * * version v1.0 * * 用与存放property的属性的类 */public class PropertyDefinition private String name;private String ref;private String value;public String getName() return name;public void setName(String name) this.name = name;public PropertyDefinition(String name, String ref,String value) this.name = name;this.ref = ref;this.value=value;public String getValue() return value;public void setValue(String value) this.value = value;public String getRef() return ref;public void setRef(String ref) this.ref = ref;/* * 测试实现注入的类 */public class PersonServiceBean implements PersonService /* (non-Javadoc) * see com.cn.service.impl.PersonService#save() */private PersonDaos personDaos;private Integer id;public Integer getId() return id;public void setId(Integer id) this.id = id;public PersonDaos getPersonDaos() return personDaos;public void setPersonDaos(PersonDaos personDaos) this.personDaos = personDaos;public void save()System.out.println(id:+this.id);personDaos.save();import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.commons.beanutils.ConvertUtils;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.XPath;import org.dom4j.io.SAXReader;import com.cn.service.impl.PropertyDefinition;/* * author 谭栋 * * since 2010-10-26 上午06:47:18 * * version v1.0 * * 模仿spring,实现spring的内部的实现原理 */public class TdwxyClassPathXmlApplicationContext private List beanDefines = new ArrayList();
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号