感谢 http://blog.csdn.net/rj042/article/details/7549462 帮我解决了配置文件读取问题。
假设Spring配置文件为applicationContext.xml
一、Spring配置文件在类路径下面
在Spring的java应用程序中,一般我们的Spring的配置文件都是放在放在类路径下面(也即编译后会进入到classes目录下)。
以下是我的项目,因为是用maven管理的,所以配置文件都放在“src/main/resources”目录下
这时候,在代码中可以通过
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
然后获取相应的bean。
如果代码想用Junit测试框架来测试,则Spring提供了对Junit支持,还可以使用注解的方式:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:applicationContext.xml"})
只需要在相应的Test类前面加上此两个注解(第二个注解用来指明Spring的配置文件位置),就可以在Junit Test类使用中Spring提供的依赖注入功能。
二、Spring配置文件在WEB-INF下面
当然在做J2EE开发时,有些人习惯把Spring文件放在WEB-INF目录(虽然更多人习惯放在类路径下面)下面;或者有些Spring配置文件是放在类路径下面,而有些又放在
WEB-INF目录下面,如下图。
这时候,在代码中就不可以使用ClassPathXmlApplicationContext来加载配置文件了,而应使用FileSystemXmlApplicationContext。
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("src/main/webapp/WEB-INF/applicationContext.xml");
然后获取相应的bean。
如果代码想用Junit测试框架来测试,则Spring提供了对Junit支持,还可以使用注解的方式:
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/applicationContext.xml"})
只需要在相应的Test类前面加上此两个注解(第二个注解用来指明Spring的配置文件位置),就可以在Junit Test类使用中Spring提供的依赖注入功能。
下面是我的一个Spring管理下的Junit测试类:
package com.sohu.group.service.external; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"file:src/main/webapp/WEB-INF/applicationContext.xml"}) public class SuFriendServiceImplOverRMITest { @Autowired private SuFriendService suFriendService; @Test public void getUserFollowerListTest(){ List<String> list = suFriendService.getUserFollowerList("liug_talk@163.com"); System.out.println("------"+list); } }
相关推荐
源码中,这个功能主要在`META-INF/spring.factories`文件内的`org.springframework.boot.autoconfigure.EnableAutoConfiguration`键下列出的所有类中实现。开发者可以自定义自动配置类,以便为特定的库或服务提供...
- Web-INF:包含web.xml,定义Web应用的部署描述符,以及Struts2的配置文件。 - WEB-INF/classes:编译后的Java类文件会放在这里。 - WEB-INF/lib:项目的依赖库,包括Spring、Struts2、Hibernate等框架的jar文件。 ...
Spring的依赖可以通过Maven或Gradle来管理,然后在Web应用的`WEB-INF`目录下放置`springApplicationContext.xml`配置文件。 最后,为了测试和调试,我们可以使用JUnit和Mockito等工具,编写单元测试来验证Bean的...
1. `pom.xml` - Maven或Gradle的构建文件,定义了项目依赖,包括spring-boot-starter-web、spring-boot-starter-data-jpa、hibernate核心库和thymeleaf的相关依赖。 2. `application.properties`/`application.yml`...
Spring2的核心库包括`spring-beans.jar`, `spring-context.jar`, `spring-core.jar`, `spring-aop.jar`, `spring-web.jar`等。这些库提供了Spring框架的基础功能,例如依赖注入、AOP(面向切面编程)和Web支持。 2....
- **初始化**:读取配置文件并初始化 Spring 容器。 - **请求处理**:处理所有进入系统的 HTTP 请求。 - **响应生成**:根据处理结果生成最终的 HTTP 响应。 #### 五、Spring MVC 双亲上下文说明 在 Spring MVC 中...
这通常包括创建一个`META-INF/spring.factories`文件,里面指定自动配置类和初始化器。这样,当项目引入自定义starter后,Spring Boot会自动加载这些配置,简化项目的配置工作。 3. **源码分析**: 压缩包中的源码...
- 使用默认配置,Spring MVC 会自动寻找位于`/WEB-INF/resources/`下的静态资源。 - 可以通过`<mvc:resources>`标签指定静态资源的位置。 #### 八、请求映射到Action中的方法 Spring MVC 支持多种方式来映射请求到...
5. **项目结构**:在"webproject001"这样的项目中,常见的目录结构可能包括src/main/java(存放Java源代码)、src/main/webapp(存放Web资源,如JSP页面、静态资源、WEB-INF目录下的web.xml配置文件等)、WEB-INF/...
2. **配置Struts2**:首先,在Web应用的WEB-INF目录下创建struts.xml配置文件,定义Action、结果类型和其他Struts2配置。同时,需要在web.xml中配置Struts2的前端控制器Filter。 3. **配置Spring**:创建Spring的...
1. **设置项目结构**:创建项目目录,如`src/main/java`存放源代码,`src/main/resources`存放配置文件,`WEB-INF`存放Web应用相关的配置和库。 2. **引入库文件**:根据描述,压缩包中包含了所有必要的jar文件,...
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath*:applicationContext.xml"}) public class UserServiceTest { @Autowired private UserService userService; @...
- Web应用结构:包括WEB-INF目录下的web.xml,定义了应用的部署描述符。 - 可能还包括其他资源文件,如图片、样式表、JavaScript等。 这个项目提供了学习和实践SSH框架与Oracle数据库集成的实例,对于Java Web...
3. **项目结构**:在Ant和Spring MVC的结合中,项目通常会有如下的目录结构:src/main/java(存放Java源代码)、src/main/resources(存放配置文件)、Web-INF(存放Web应用相关的配置和库文件)、WEB-INF/web.xml...
2. **配置文件编写**:理解Spring、SpringMVC和MyBatis各自的配置元素,如bean的声明、扫描包、数据源配置、SqlSessionFactory、Mapper配置等。 3. **注解驱动编程**:SpringMVC和MyBatis中的注解使用,如@...
7. **部署相关的文件**:如WEB-INF目录下的web.xml,定义了应用的部署描述符。 8. **测试用例**:JUnit或其他测试框架编写的单元测试和集成测试。 综上所述,“WebWork+Spring+Hibernate网络购物系统”是一个典型的...
4. **项目结构**:通常,SSH项目会有明确的目录结构,包括src/main/java(存放Java源代码)、src/main/resources(配置文件)、Web-INF(Web应用的配置和库文件)、WEB-INF/classes(编译后的Java类)、WEB-INF/lib...
- `webapp/WEB-INF`:存放Web应用相关的资源,如`web.xml`部署描述符、Spring MVC的配置文件等。 - `webapp/WEB-INF/views`:视图文件夹,通常存放JSP或Thymeleaf等视图模板。 5. **开发流程**:在开发过程中,...
<artifactId>spring-webmvc <version>5.3.23 <!-- 其他相关依赖,如 JUnit、Servlet API 等 --> <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>3.8.1 ...
- `src/main/webapp`:存放Web相关的资源,如静态文件(CSS、JS、图片)、JSP或HTML页面、WEB-INF目录下的`web.xml`部署描述符。 6. **配置与集成**: 配置SpringMVC与MyBatis的集成,需要在Spring的配置文件中...