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精通Spring全Jar代码/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精通Spring全Jar代码/workspace/workspace/example6/src/appcontext.xml");
ApplicationContext factory=new FileSystemXmlApplicationContext("G:/1Java实用项目资源/2Spring/1精通Spring全Jar代码/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提供了多种ApplicationContext实现,如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,分别对应于类路径和文件系统下的XML配置文件。 Spring IoC容器的设计还涉及Bean的生命周期管理。...
1. ClassPathXmlApplicationContext:从类路径中加载XML配置文件,适用于非Web环境。 2. FileSystemXmlApplicationContext:从文件系统中加载XML配置文件,同样适用于非Web环境,但允许更灵活的配置文件位置。 3. ...
在实际应用中,我们通常使用`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`来加载配置文件,前者从类路径加载,后者从文件系统加载,后者在多环境部署时可能会带来不便。 Spring的IoC容器...
在实际应用中,我们通常使用ApplicationContext,如FileSystemXmlApplicationContext或ClassPathXmlApplicationContext,它们分别基于文件系统和类路径加载XML配置文件来创建容器。 依赖注入是Spring的核心机制,也...
### Spring七大功能详解 #### 一、核心容器(Spring Core) **核心容器**提供了Spring框架的基础功能,通过Bean的方式组织和管理Java应用中的各种组件及其之间的关系。在Spring框架中,Bean Factory扮演着核心角色...
创建ApplicationContext有多种方式,如使用ClassPathXmlApplicationContext从类路径加载XML配置,或者使用FileSystemXmlApplicationContext从文件系统加载。例如: ```java ApplicationContext context = new ...
5. **初始化容器**:通过ClassPathXmlApplicationContext或FileSystemXmlApplicationContext初始化Spring容器,加载配置文件并管理bean。 三、使用指南 1. **Bean的声明**:通过XML配置或注解定义Bean,例如: - ...
### Spring 加载多个配置文件详解 #### 一、引言 在现代软件开发中,Spring 框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐。尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统...
在实际开发中,通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`等类,我们可以加载并解析`ApplicationContext.xml`,初始化Spring容器,从而启动应用。 总结起来,`ApplicationContext....
它可以通过不同的方式来实现,例如`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`用于独立应用程序,而`WebApplicationContext`则专为Web环境设计。 - **`ClassPathXmlApplicationContext`*...
其常见的实现包括 `ClassPathXmlApplicationContext` 和 `FileSystemXmlApplicationContext`。 - `ClassPathXmlApplicationContext`: 用于从类路径中加载上下文定义文件。 - `FileSystemXmlApplicationContext`: ...
- **ClassPathXmlApplicationContext:** 从类路径下的XML文件加载配置信息。 - **FileSystemXmlApplicationContext:** 从文件系统的XML文件加载配置信息。 - **AnnotationConfigApplicationContext:** 通过...
### Spring2.5 学习笔记详解 #### 一、Spring 框架简介 Spring 是一个开源的轻量级 Java 开发框架,主要用于简化企业级应用的开发工作。Spring 提供了一系列强大的功能,比如控制反转 (Inversion of Control, IOC)...
- **实例化容器**:可以通过多种方式实例化容器,例如使用`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`等。 - **Bean**:Bean是应用程序中的基本组成部分,通常表示一个具体的Java对象。...
- `ClassPathXmlApplicationContext`:从类路径加载bean定义信息。 - `XmlWebApplicationContext`:专用于Web应用,支持XML配置。 - **注解配置**: - `AnnotationConfigApplicationContext`:基于注解配置的`...
- **FileSystemXmlApplicationContext**:通过文件系统的全路径名来加载XML配置文件。 - **ClassPathXmlApplicationContext**:在ClassPath中寻找XML配置文件。 - **WebXmlApplicationContext**:在Web环境中使用,...
- 同样使用`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`,可以通过指定多个文件路径来加载多个配置文件。 - 示例代码: ```java ApplicationContext context = new ...
- **ClassPathXmlApplicationContext**:类似于FileSystemXmlApplicationContext,但它从类路径中加载配置文件。 - **AnnotationConfigApplicationContext**:用于基于注解的配置类,而非XML配置文件。 综上所述,...