首页 > 代码库 > Spring4--课程笔记2
Spring4--课程笔记2
Spring程序开发:
1. 导入jar包(略)
2. 创建Spring配置文件:
Spring 配置文件的文件名可以随意,但 Spring 建议的名称为 applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation=" 5 http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans.xsd"> 7 8 <!-- 注册bean,下面的注册,相当于在代码中写的 9 ISomeService someService = new SomeServiceImpl(); 10 --> 11 <bean id="someService" class="com.tongji.service.SomeServiceImpl"/> 12 </beans>
测试类:
1 package com.tongji.test; 2 3 import org.junit.Test; 4 import org.springframework.beans.factory.BeanFactory; 5 import org.springframework.beans.factory.xml.XmlBeanFactory; 6 import org.springframework.context.ApplicationContext; 7 import org.springframework.context.support.ClassPathXmlApplicationContext; 8 import org.springframework.context.support.FileSystemXmlApplicationContext; 9 import org.springframework.core.io.ClassPathResource; 10 11 import com.tongji.service.ISomeService; 12 import com.tongji.service.SomeServiceImpl; 13 14 public class MyTest { 15 16 //不使用Spring容器 17 //代码的问题是:SomeServiceImpl这个类,完全耦合到了测试类中 18 @Test 19 public void test01() { 20 ISomeService someService = new SomeServiceImpl(); 21 someService.doSome(); 22 } 23 24 //从容器中获取Bean,使Bean类与测试类解耦合了 25 @Test 26 public void test02() { 27 //创建容器 28 ApplicationContext ac = 29 new ClassPathXmlApplicationContext("applicationContext.xml"); 30 ISomeService someService = (ISomeService) ac.getBean("someService"); 31 someService.doSome(); 32 } 33 34 //从D盘加载配置文件applicationContext.xml 35 @Test 36 public void test03() { 37 //创建容器 38 ApplicationContext ac = 39 new FileSystemXmlApplicationContext("d:/applicationContext.xml"); 40 ISomeService someService = (ISomeService) ac.getBean("someService"); 41 someService.doSome(); 42 } 43 44 //从项目的根下applicationContext.xml 45 @Test 46 public void test04() { 47 //创建容器 48 ApplicationContext ac = 49 new FileSystemXmlApplicationContext("applicationContext.xml"); 50 ISomeService someService = (ISomeService) ac.getBean("someService"); 51 someService.doSome(); 52 } 53 54 //直接使用BeanFactory容器 55 //ApplicationContext容器:在初始化容器时,就将容器中的所有对象进行了创建,内存占有大,但效率高 56 //BeanFactory容器:使用时才创建,相反 57 @Test 58 public void test05() { 59 //创建容器 60 BeanFactory bf = 61 new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); 62 ISomeService someService = (ISomeService) bf.getBean("someService"); 63 someService.doSome(); 64 } 65 }
解释:ApplicationContext 用于加载 Spring 的配置文件,在程序中充当“容器”的角色。其实现类有两个:
1. Spring 配置文件存放在项目的类路径下,则使用 ClassPathXmlApplicationContext 实现类进行加载。
2. 若 Spring 配置文件存放在项目根路径或本地磁盘目录中,则使用 FileSystemXmlApplicationContext 实现类进行加载。
BeanFactory 接口对象也可作为 Spring 容器出现。BeanFactory 接口是 ApplicationContext接口的父类。 若要创建 BeanFactory 容器,需要使用其实现类 XmlBeanFactory进行加载。而 Spring 配置文件以资源 Resouce 的形式出现在 XmlBeanFactory 类的构造器参数中。Resouce 是一个接口,其具有两个实现类:
1. ClassPathResource:指定类路径下的资源文件
2. FileSystemResource:指定项目根路径或本地磁盘路径下的资源文件。
Spring4--课程笔记2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。