`

ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径设置祥解

阅读更多

package com.openv.spring;

 

 

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

 

 

//import org.springframework.beans.factory.BeanFactory;

//import org.springframework.beans.factory.xml.XmlBeanFactory;

 

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;

//import org.springframework.core.io.ClassPathResource;

//import org.springframework.core.io.Resource;

 

 

/**

* HelloWorld客户应用

*

*

* 即:   对于ClassPathXmlApplicationContext(), classpath: 前缀是不需要的,   默认就是指项目的classpath路径下面;

*                            如果要使用绝对路径,需要加上 file: 前缀表示这是绝对路径;

*    

*       对于FileSystemXmlApplicationContext(), 默认表示的是两种:

*    1,没有盘符的是 项目工作路径, 即项目的根目录;

*    2,有盘符表示的是   文件绝对路径。

*   

*        如果要使用classpath路径, 需要前缀   classpath:       .

*

* @author luoshifei

*/

public class HelloClient {

    protected static final Log log = LogFactory.getLog(HelloClient.class);

 

 

    public static void main(String[] args) {

       // Resource resource = new ClassPathResource("appcontext.xml");

       // BeanFactory factory = new XmlBeanFactory(resource);

    

        //classpath路径也可以

       // ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");

//      ApplicationContext factory=new ClassPathXmlApplicationContext("appcontext.xml");

       // ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/1Java实用项目资源/2Spring/1精通SpringJar代码/workspace/workspace/example6/src/appcontext.xml");

     

       

        //用文件系统的路径

        // ApplicationContext factory=new FileSystemXmlApplicationContext("src/appcontext.xml");    

      //使用了 classpath: 前缀,作为标志, 这样,FileSystemXmlApplicationContext 也能够读入classpath下的相对路径

      // ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");

     //   ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/1Java实用项目资源/2Spring/1精通SpringJar代码/workspace/workspace/example6/src/appcontext.xml");

        ApplicationContext factory=new FileSystemXmlApplicationContext("G:/1Java实用项目资源/2Spring/1精通SpringJar代码/workspace/workspace/example6/src/appcontext.xml");

       

        IHelloWorld hw = (IHelloWorld) factory.getBean("helloworldbean");

        log.info(hw.getContent("luoshifei"));

    }

}

 

=================================================

例子:

src/beans.xml

===============

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
   <bean id="hello" class="com.spring.HelloAction">
    <property name="username" value="张三" />
   </bean>
   <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
   <property name="basename">
        <value>hello</value>
   </property>

   </bean>


</beans>

 

=========================================================

hello_zh.properties

==================

greeting=huan yin ni.
time = jin tian shi {0}.

hello_en.properties

===============

greeting=welcome to you !
time = Today is {0}

==========================================

 

HelloAction.java

======================

package com.spring;

public class HelloAction {

private String username;

public String getUsername() {
   return username;
}

public void setUsername(String username) {
   this.username = username;
}

public String sayHello(String greeting){
   return username + ", " + greeting;
  
}

}

========================================

HelloActionTest.java

====================

package com.spring.test;

import java.util.Date;
import java.util.Locale;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.spring.HelloAction;

import junit.framework.TestCase;

public class HelloActionTest extends TestCase {

public void test(){
   ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

//ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:beans.xml");

//ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:beans.xml");

//ApplicationContext ctx = new FileSystemXmlApplicationContext("src/beans.xml");


   String greeting = ctx.getMessage("greeting", null, Locale.CHINESE);
   String time = ctx.getMessage("time", new Object[]{new Date()}, Locale.CHINESE);
   HelloAction helloAction = (HelloAction) ctx.getBean("hello");
   System.out.println(helloAction.sayHello(greeting));
   System.out.println(time);
  
}

}

分享到:
评论

相关推荐

    Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计.doc

    Spring提供了多种ApplicationContext实现,如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,分别对应于类路径和文件系统下的XML配置文件。 Spring IoC容器的设计还涉及Bean的生命周期管理。...

    org.springframework.context_3.0.5.release.jar.zip

    1. ClassPathXmlApplicationContext:从类路径中加载XML配置文件,适用于非Web环境。 2. FileSystemXmlApplicationContext:从文件系统中加载XML配置文件,同样适用于非Web环境,但允许更灵活的配置文件位置。 3. ...

    Spring IoC功能例子详解.docx

    在实际应用中,我们通常使用`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`来加载配置文件,前者从类路径加载,后者从文件系统加载,后者在多环境部署时可能会带来不便。 Spring的IoC容器...

    Spring详解

    在实际应用中,我们通常使用ApplicationContext,如FileSystemXmlApplicationContext或ClassPathXmlApplicationContext,它们分别基于文件系统和类路径加载XML配置文件来创建容器。 依赖注入是Spring的核心机制,也...

    spring 所有功能详解

    ### Spring七大功能详解 #### 一、核心容器(Spring Core) **核心容器**提供了Spring框架的基础功能,通过Bean的方式组织和管理Java应用中的各种组件及其之间的关系。在Spring框架中,Bean Factory扮演着核心角色...

    tiny-spring-step-6-invite-application-context.zip

    创建ApplicationContext有多种方式,如使用ClassPathXmlApplicationContext从类路径加载XML配置,或者使用FileSystemXmlApplicationContext从文件系统加载。例如: ```java ApplicationContext context = new ...

    spring-framework-2.5.6-20081023-647.zip

    5. **初始化容器**:通过ClassPathXmlApplicationContext或FileSystemXmlApplicationContext初始化Spring容器,加载配置文件并管理bean。 三、使用指南 1. **Bean的声明**:通过XML配置或注解定义Bean,例如: - ...

    Spring 加载多个配置文件

    ### Spring 加载多个配置文件详解 #### 一、引言 在现代软件开发中,Spring 框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐。尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统...

    ApplicationContext.xml

    在实际开发中,通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`等类,我们可以加载并解析`ApplicationContext.xml`,初始化Spring容器,从而启动应用。 总结起来,`ApplicationContext....

    spring核心源码详细解读

    它可以通过不同的方式来实现,例如`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`用于独立应用程序,而`WebApplicationContext`则专为Web环境设计。 - **`ClassPathXmlApplicationContext`*...

    springioc的搭建和配置

    其常见的实现包括 `ClassPathXmlApplicationContext` 和 `FileSystemXmlApplicationContext`。 - `ClassPathXmlApplicationContext`: 用于从类路径中加载上下文定义文件。 - `FileSystemXmlApplicationContext`: ...

    八股文-持续更新,内含ssm+spring boot+redis等技术点

    - **ClassPathXmlApplicationContext:** 从类路径下的XML文件加载配置信息。 - **FileSystemXmlApplicationContext:** 从文件系统的XML文件加载配置信息。 - **AnnotationConfigApplicationContext:** 通过...

    Spring2.5学习笔记

    ### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...

    spring reference2.5

    - **实例化容器**:可以通过多种方式实例化容器,例如使用`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`等。 - **Bean**:Bean是应用程序中的基本组成部分,通常表示一个具体的Java对象。...

    ApplicationContext容器的uml类图

    - `ClassPathXmlApplicationContext`:从类路径加载bean定义信息。 - `XmlWebApplicationContext`:专用于Web应用,支持XML配置。 - **注解配置**: - `AnnotationConfigApplicationContext`:基于注解配置的`...

    Java - Spring-IoC(Inverse of Control)–> 控制反转

    - **FileSystemXmlApplicationContext**:通过文件系统的全路径名来加载XML配置文件。 - **ClassPathXmlApplicationContext**:在ClassPath中寻找XML配置文件。 - **WebXmlApplicationContext**:在Web环境中使用,...

    Spring教程

    - 同样使用`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`,可以通过指定多个文件路径来加载多个配置文件。 - 示例代码: ```java ApplicationContext context = new ...

    spring面试题.docx

    - **ClassPathXmlApplicationContext**:类似于FileSystemXmlApplicationContext,但它从类路径中加载配置文件。 - **AnnotationConfigApplicationContext**:用于基于注解的配置类,而非XML配置文件。 综上所述,...

Global site tag (gtag.js) - Google Analytics