用Spring的MVC做开发有段时间里。天天打交道的就是各种的controller。
今天遇到一个问题,需要读取配置文件configure.properties,通过“注释”方式注入给controller。
spring的读取配置如下:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:config/configure.properties</value> </list> </property> </bean>
我的spring的XML配置文件如下:
spring-ctx-application.xml spring-ctx-repository.xml spring-mvc-servlet.xml
我把PropertyPlaceholderConfigurer的XML配置放到了spring-ctx-application.xml里面。配置文件和controller的代码如下:
page.query.rownum=10
@Value("${page.query.rownum}") private String pageQueryRownum; public void setPageQueryRownum(String pageQueryRownum) { this.pageQueryRownum = pageQueryRownum; }
但是发现了一个问题,被注入的 pageQueryRownum 并没有打印出我期望的数字 10, 而是打印出来了${page.query.rownum}。让我困惑。
后来找到了问题,我把PropertyPlaceholderConfigurer的XML配置放到了spring-mvc-servlet.xml的xml中,问题就解决了。看了老外写的东西,才知道,这是不同的spring context,才造成配置在 spring-ctx-application.xml的配置信息无法读取到。而我的springMVC的配置信息都在spring-mvc-servlet.xml中。为了让controller读取到配置文件,需要把PropertyPlaceholderConfigurer的XML配置到同样的context的spring-mvc-servlet.xml中,问题就解决了。
参考:
相关推荐
这些文件包含了Spring MVC应用的所有组件配置,如控制器(Controller)、视图解析器(View Resolver)、数据访问对象(DAO)等。在Spring 4.0之后,随着Java配置的引入,我们也可以使用@Configuration注解的类来代替...
// 读取文件内容 byte[] bytes = file.getBytes(); // 存储到服务器、数据库等... } catch (Exception e) { return "error"; } } else { return "error"; } return "success"; } } ``` 然后,我们需要...
Spring MVC在启动时会读取这些属性文件,并根据用户请求的区域设置,加载对应的属性文件。 通过上述配置和实现方法,可以将Spring MVC应用国际化。让应用支持多种语言,更好地满足不同地区用户的需求,从而扩大应用...
- **初始化**:读取配置文件并初始化 Spring 容器。 - **请求处理**:处理所有进入系统的 HTTP 请求。 - **响应生成**:根据处理结果生成最终的 HTTP 响应。 #### 五、Spring MVC 双亲上下文说明 在 Spring MVC 中...
9 import org.springframework.web.servlet.mvc.Controller; 10 import org.springframework.web.servlet.ModelAndView; 11 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet....
Spring MVC通过DispatcherServlet接收请求,然后根据请求信息(如URL和方法类型)将请求分发到对应的控制器(Controller)。Controller处理业务逻辑后,通常会返回一个ModelAndView对象,其中包含了视图名称和模型...
Spring MVC通过DispatcherServlet接收请求,然后根据配置的映射规则分发到相应的Controller处理,最后由View负责展示结果。 在本项目中,Spring MVC作为核心控制器,负责协调各个组件的工作。开发者可以自定义...
在Spring配置文件中定义Bean,Spring会自动管理它们的生命周期和依赖关系。这样,代码不再需要自行实例化对象,而是通过构造函数、setter方法或接口实现依赖注入。 8. **AOP(面向切面编程)** Spring还支持AOP,...
- **配置文件**:通常使用XML或注解来配置Spring MVC,例如设置视图解析器、定义控制器映射规则等。 - **启用Spring MVC**:可以通过在web.xml中配置DispatcherServlet来启动Spring MVC。 #### 六、Spring MVC的...
在这个Demo中,配置文件(如`web.xml`和`spring-servlet.xml`)应该已经配置了DispatcherServlet、视图解析器以及其他Spring MVC的组件。此外,可能还包含了一些数据访问对象(DAO)和Service类,它们使用JDBC或者...
在Spring MVC中实现文件的上传和下载是常见的需求,这涉及到处理multipart/form-data类型的表单数据,以及对文件的存储和读取操作。 首先,让我们了解文件上传的基本流程。当用户通过表单提交带有文件的请求时,...
在Spring MVC项目中,Oracle将作为存储数据的后端,MyBatis通过JDBC接口与Oracle进行通信,执行CRUD(创建、读取、更新、删除)操作。 4. **项目结构** 通常,一个Spring MVC项目会包含以下主要部分: - `src/...
10. `@Value` 注解:用于注入配置属性值,可以从属性文件中读取。 以上就是Spring MVC中的一些核心注解用法,通过这些注解,开发者可以轻松地构建出松散耦合、易于维护的MVC应用。在实际开发中,结合Spring Boot和...
本篇文章将深入探讨Spring MVC Controller层中的常用注解,帮助开发者更好地理解和运用这些注解来构建高效、可维护的Web应用。 1. `@Controller`:这是最基本的注解,表明一个类是Spring MVC的Controller。它通常...
- src/main/webapp:Web应用目录,包括WEB-INF下的web.xml(Spring MVC配置)和JSP视图文件 2. **配置Spring MVC**: 配置始于web.xml,这是Web应用的部署描述符,用来启动DispatcherServlet。DispatcherServlet...
- 可能还包含了一些配置文件,如Spring的bean配置文件(如applicationContext.xml)、Hibernate的配置文件(如hibernate.cfg.xml)以及Web应用的配置(如web.xml)。 - 测试用例,用于验证各个组件的正确性和性能。 ...
在文件上传下载的场景中,Spring MVC的Controller组件负责接收HTTP请求,处理文件上传和下载操作,Service层处理业务逻辑,而DAO层则与数据库交互,存储或读取文件元数据。 文件上传在Spring MVC中主要通过`@...
`ContextLoaderListener`监听器会在Web应用启动时读取这些配置文件,创建Spring的ApplicationContext。如果没指定,容器会默认在`/WEB-INF`目录下查找名为`applicationContext.xml`的文件。 5. **核心Servlet配置**...
在Spring MVC中,我们需要配置一个`@Controller`来处理文件上传请求。通常,我们会使用`@RequestParam("file") MultipartFile file`这样的参数来接收上传的文件。`MultipartFile`是Spring提供的一个接口,用于处理...