`

spring核心类库 取出spring bean工厂

 
阅读更多

 

 

ApplicationContext和BeanFacotry区别:

ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性 没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是 检      验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext.   

 

方法1 

 

 

WebApplicationContext appContext=WebApplicationContextUtils. 
                  getWebApplicationContext(this.getServlet().getServletContext());

 

 

 

方法2:是从classpath 路径下加载 spring的配置文件

 

WebApplicationContext appContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");

 

 

 

方法3

 

 

Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);

 

 

 

方法4

ClassPathResource resource = new ClassPathResource("beans.xml");

BeanFactory factory = new XmlBeanFactory(resource);

 

方法5

 

ApplicationContext context = new ClassPathXmlApplicationContext(
        new String[] {"applicationContext.xml", "applicationContext-part2.xml"});
// of course, an ApplicationContext is just a BeanFactory
BeanFactory factory = (BeanFactory) context;

 

 

 

方法6

 

InputStream is = new FileInputStream("beans.xml");
BeanFactory factory = new XmlBeanFactory(is);

 

 

方法7

 

ClassPathResource res = new ClassPathResource("beans.xml");
XmlBeanFactory factory = new XmlBeanFactory(res);

 

 

 

方法8 

 

 ApplicationContext ac = new FileSystemXmlApplicationContext
        ("C:/SpringConfig/Spring-Config.xml"); 

 

 

 

方法9 :多个xml文件导入到一个xml中进行加载

将XML配置文件分拆成多个部分是非常有用的。为了加载多个XML文件生成一个ApplicationContext实例,可以将文件路径作为 字符串数组传给           ApplicationContext构造器。而bean factory将通过调用bean defintion reader从多个文件中读取bean定义。   

通常情况下,Spring团队倾向于上述做法,因为这样各个配置并不会查觉到它们与其他配置文件的组合。另外一种方法是使用一个或多个的<import/>      元素来从另外一个或多个文件加载bean定义。所有的<import/>元素必须放在<bean/>元素之前以完成bean定义的导入。 让我们看个例子:  

 

 

<beans><import resource="services.xml"/>
    <import resource="resources/messageSource.xml"/>
    <import resource="/resources/themeSource.xml"/>
      <bean id="bean1" class="..."/>
    <bean id="bean2" class="..."/>
  </beans>

 

 

在上面的例子中,我们从3个外部文件:services.xml、messageSource.xml及themeSource.xml来加载bean定义。这里采用的都是相对路径,因此,此     例中的services.xml一定要与导入文件放在同一目录或类路径,而messageSource.xml和themeSource.xml的文件位置必须放在导入文件所在目录下的       resources目录中。正如你所看到的那样,开头的斜杠‘/’实际上可忽略。因此不用斜杠‘/’可能会更好一点。      

根据Spring XML配置文件的Schema(或DTD),被导入文件必须是完全有效的XML bean定义文件,且根节点必须为<beans/> 元素。

 

 

 

加载文件时候通配符使用  (Ant-style Patterns

classpath*:conf/appContext.xml   搜索所有的类路径中的conf/appContext.xml文件(包括src和jar文件中)

classpath:com/mycompany/**/service-context.xml  以com/mycompany为跟路径来查找 文件所在

 

例子:

 

/WEB-INF/*-context.xml

   com/mycompany/**/applicationContext.xml

   file:C:/some/path/*-context.xml

   classpath:com/mycompany/**/applicationContext.xml

 

 

 

加载文件前缀的使用:

 

Prefix Example Explanation
classpath:   会用 ClassPathResource 加载 classpath:com/myapp/config.xml Loaded from the classpath.  
file:    会用UrlResource加载 file:/data/config.xm Loaded as a URL, from the filesystem.
http: http://myserver/logo.png  Loaded as a URL.
none /data/config.xml Depends on the underlying ApplicationContext.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mybatis-spring-1.2.3

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    Spring面试专题.md

    * Spring Core:核心类库,提供IOC服务; * Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等); * Spring AOP:AOP服务; * Spring DAO:对JDBC的抽象,简化了数据访问异常的处理; *...

    mybatis-spring-1.2.2.jar

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    Spring+MyBatis

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    mybatis-3.2.5.jar及mybatis-spring-1.2.2.jar

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    声明式的重试类库Spring-Retry.zip

    Spring提供的声明式的重试类库。示例代码:@Configuration @EnableRetry public class Application {  @Bean  public Service service() {  return new Service();  } } @Service class Service { ...

    【Spring整合Mybatis配置及测试代码】

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    spring-mybatis

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    Spring的学习笔记

    六、 Bean的作用范围scope 12 七、 集合注入 12 八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method ...

    spring+struts+hibernate+dwr+jstl做的实例

    struts hibernate dwr 与Spring完全结合,实现用户列表、信息增、删、改、查、维护时用户重名提示等功能,还包括页面自动转码设置(web.xml),Hibernate管理服务按Bean名称拦截并进行Spring事务管理,完全由Spring...

    mybatis-3.1.1-bundle

    使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。 而且它也会处理事务, 翻译 MyBatis 的异常...

    spring2.5 学习笔记

    六、 Bean的作用范围scope 12 七、 集合注入 12 八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method ...

    Spring声明式事务配置管理方法

    发布于2013-5-6项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring2.0AOP类库即可。添加方法:点击项目右键-&gt;BuildPath-&gt;Addlibrarys:打开AddLibraries对话框,然后选定...

    BeanMapper:比BeanUtils.copyProperties更快

    BeanMapper通过javassist类库实现在运行时直接生成字节码来转换类,在首次生成后,后续运行可以提供近原生的读写速度。 限制条件 类必须具有符合小驼峰规范的JavaBean setter和getter。否则无法正常访问类。 类必须...

    web开发常用jar

    hibernate3的核心类库。 itext.jar 是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iTextAsian.jar itext中关于亚洲编码的类库,在这里...

    java开发常用jar包

    Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache ...

    Java语言基础下载

    Struts ActionForm Bean捕获表单数据 648 ActionForm的处理流程 649 Struts的其他组件 652 内容总结 653 独立实践 653 第三十二章:配置Struts组件 654 学习目标 654 三个 XML文件和一个属性文件 655 Web应用部署...

    swing界面设计之JTree

    创建 Spring app-context.xml bean 定义文件 19 运行应用程序 20 定义 bean 属性 21 创建 to-do 列表:创建一个可重用组件并在表中显示数据 23 创建一个可重用的面板 23 将 bean 组合在一起 24 添加一个表并重用这个...

Global site tag (gtag.js) - Google Analytics