今天在开发过程中,发现在@Controller层的类,无法像Servicen层的类那样直接通过@Value("${fileUpload.fileName}")方式注入配置值到对象中。
原因是因为在xml中有如下配置,将配置有@Controller注解的Action类(包名有action)排除掉了。
<context:component-scan base-package="com"> <context:exclude-filter type="regex" expression=".*\.web\..*" /> <context:exclude-filter type="regex" expression=".*\.action\..*" /> </context:component-scan>
后通过如下方法解决:
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">的命名空间,然后
2.
3.创建test.properties
abc=123
4.
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:test.properties</value> </list> </property> </bean>
3.创建test.properties
abc=123
4.
import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("/admin/images") @Controller public class ImageAdminController { private String imageDir; @Value("${abc}") public void setImageDir(String val) { this.imageDir = val; } }这样就将test.abc的值注入了imageDir中了。
相关推荐
@Validated注解是SpringMVC中的一种验证注解,用于验证 Bean 中的属性是否满足一定的条件。该注解可以与其他验证注解如 @NotNull、@Size 等结合使用,实现复杂的验证逻辑。 在使用 @Validated 注解时,需要首先编写...
3. **@Conditional**:Spring 4新增的注解,允许根据特定条件加载bean。Spring Boot中的@ConditionalOnProperty、@ConditionalOnBean等注解都基于此功能。 4. **@Import**:它用于将非Spring管理的类导入到Spring...
此外,还引入了@Required和@Value注解,使得属性注入更为方便。 2. **面向切面编程的扩展** Spring 2.5对AOP的支持进一步加强,新增了对注解驱动的切面的支持。@Aspect注解用于定义切面,@Before、@After、@Around...
重复注解的应用非常广泛,例如,在Spring框架中,使用重复注解可以实现更加灵活的注解配置。在JavaEE中,使用重复注解可以实现更加灵活的注解配置等等。 需要注意的是,在使用重复注解时,需要遵守一定的规则和约定...
在Spring3中配置数据源,包括DBCP,C3P0,Proxool,Bonecp主要的数据源,里面包含这些数据源的jar文件和依赖文件及配置文件。。 如Bonecp目前听说是最快的数据源,速度是传统的c3p0的25倍, bonecp.properties文件: ...
这在元数据和动态逻辑中非常有用,例如在`@Value`注解中引用属性值。 5. **AOP增强**:Spring 2.5的AOP支持也得到了扩展,新增了对注解驱动的切面的支持。开发者可以通过在方法上使用`@Before`、`@After`、`@Around...
在这个用户新增实例中,当用户提交表单时,Struts2会调用`addUser`方法,Spring会注入相应的服务和数据访问对象,而Hibernate则通过注解将用户对象持久化到数据库。 此外,对于人员查询全部采用注解方式实现,通常...
### Spring学习笔记(有代码有注解解释) #### Spring框架两大核心机制——IoC与AOP ##### IoC(控制反转)/DI(依赖注入) **IoC** 是 Inversion of Control 的缩写,意为“控制反转”。而 **DI**(Dependency ...
<input type="submit" value="新增用户" /> ``` 在上述代码中,`modelAttribute="user"`指定了表单绑定的对象,这里是User类的一个实例。`path`属性则对应User对象的属性,如`username`、`email`和`password`。`...
12. **MyBatis集成**:除了Spring JDBC,还可以使用MyBatis框架,它允许将SQL语句写在XML映射文件或注解中,提供了更灵活的SQL操作方式。 13. **事务的隔离级别**:Spring支持四种事务隔离级别,包括READ_...
在Spring Boot应用中,我们可以利用Spring Kafka框架来与Apache Kafka进行集成,实现高效的消息传递。本文将详细探讨如何在Spring Boot项目中基于Spring Kafka动态创建Kafka消费者。 首先,了解Kafka基本概念:...
@Cacheable 用于查询和新增可选属 性,cacheNames/value:指定缓存组件的名字;key:缓存数据使用的 key,可以用来指定。默认即使使用方法参数的值。 @CachePut 用于更新,@CacheEvict 用于删除缓存数据。这些注解...
- 新增启动类并通过 `@SpringBootApplication` 注解标识。 - 运行启动类,将应用程序打包并自动部署到 Tomcat 容器中,在浏览器中输入相应的地址即可访问。 #### 二、Spring Boot 初级应用 ##### 2.1 Spring ...
1. **依赖注入(DI)增强**:依赖注入是Spring框架的核心特性之一,3.1版本对此进行了优化,提供了更灵活的注解支持,如`@Autowired`、`@Qualifier`和`@Value`,使得配置更加简洁,减少了XML配置文件的使用。...
根据提供的信息,“Spring 3.0技术手册”主要聚焦于Spring...通过以上介绍可以看出,Spring 3.0不仅增强了现有功能,还新增了许多实用的新特性,使得Spring框架更加完善和强大,能够更好地满足复杂的企业级应用需求。
3. **@CacheEvict**: 这个注解用于清除缓存中的数据,通常应用于删除操作。例如: ```java @CacheEvict(value = "product", key = "#id") public void deleteProduct(Long id) { // 删除产品逻辑 } ``` 除了...
- 在Spring的Bean中使用`@Value`注解直接读取配置文件中的值。 - 或者通过`CustomizedPropertyPlaceholderConfigurer.getContextProperty`方法获取配置项。 #### Spring Websocket - **应用场景**:实现用户间的...
核心基础项目内实现类自定义的权限注解,配合RBAC权限模型+拦截器即可实现权限的控制,具体的参考项目中的实现。同时也封装了一些顶层类和结果集等。 注册中心实现高可用配置,详情见eureka的one、two、three三个...