spring框架下@value注解属性static无法获取值问题
目录
- @value注解属性static无法获取值
- 解决办法
- @Value注解取不到值的几种情况
- 几种获取不到值的特殊情况如下
@value注解属性static无法获取值
@Value("${appId}") private static String appid;
这样是无法直接获得值的
解决办法
需要这样写
private static String appid; @Value("${appId}") public void setAppid(String appId) { this.appid = appid; }
@Value注解取不到值的几种情况
在spring的框架中,我们经常使用@Value注解来获取定义在application.properties的属性值,正常情况下是可以轻松的获取到值的,但是有几种特殊情况下是获取不到值的,在这记录下,以防止以后犯错误。正常获取的用法如下:
在application.properties中定义一个属性值:
正常情况下在代码里面这样获取:
@Value("${ftpIP}") private String ftpIP;
几种获取不到值的特殊情况如下
情况一:使用static或者final修饰了tagValue
@Value("${ftpIP}") private static String ftpIP; @Value("${ftpUserName}") private final String ftpUserName;
情况二:用该注解的类上面没有加注解,即不能被spring管理
public class FTPManagerService { @Value("${ftpIP}") private static String ftpIP; }
情况三:类被new新建了实例,而没有使用@Autowired
public class FTPManagerService { @Value("${ftpIP}") private static String ftpIP; } public class Test{ /*错误用法*/ FTPManagerService f = new FTPManagerService (); /*正确用法*/ @Autowired FTPManagerService f2; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Spring Boot使用Value注解给静态变量赋值的方法
昨天在使用@Value注解给静态变量赋值的时候,发现静态变量的值始终是null.后来搜索一下得知其中原因,Spring Boot 不允许/不支持把值注入到静态变量中.但是我们可以变通一下解决这个问题.因为Spring Boot 支持set方法注入,我们可以利用非静态set方法注入静态变量.废话不多说,贴上我昨天写的代码: @Component public class CoverImageUtil { private static String endpoint; private static
-
Spring注解@Value在controller无法获取到值的解决
目录 一.前言 二.properties加入到Spring容器中有两种方式 1.以注入bean的形式 2.以下面这种形式 三.将properties注册到Spring容器 1.weixin.properties内容以键值对(key = value)形式存放 2.@Value使用 5.存在问题 四.总结 一.前言 说到@Value注解,用过的应该都知道,这是Spring3的一个注解,通过@value注解的方式获取properties文件中的属性值,大大简化了我们读取配置文件的代码 想要通过@Val
-
解决SpringBoot @value注解取不到值的问题
关于@value的springapplication容器的问题 1.在src/main/resources下创建stu.properties文件 ## student.name=Tom student.age=22 student.birthday=1996/01/10 student.sex=true student.hobbies[0]=swimming student.hobbies[1]=basketball student.skills[0]=programming student.s
-
spring框架下@value注解属性static无法获取值问题
目录 @value注解属性static无法获取值 解决办法 @Value注解取不到值的几种情况 几种获取不到值的特殊情况如下 @value注解属性static无法获取值 @Value("${appId}") private static String appid; 这样是无法直接获得值的 解决办法 需要这样写 private static String appid; @Value("${appId}") public void setAppid(String app
-
Spring框架学习常用注解汇总
目录 类注解 方法或属性上注解 参数注解 类注解 @component 标注类,泛指各种组件,类不属于各种分类的时候,用它做标注. @Service 标注类,声明该类为业务层组件,用于处理业务逻辑 @Repositor 标注类,声明该类为持久层的接口.使用后,在启动主程序类上需要添加@MapperScan("xxx.xxx.xxx.mapper")注解 @Mapper 标注类,用在持久层的接口上,注解使用后相当于@Reponsitory加@MapperScan注解,会自动进行配置加载
-
Spring框架构造注入type属性实例详解
这篇文章主要介绍了Spring框架构造注入type属性实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 进行测试,验证一个问题,废话不多说了,上代码进行比较 package service.impl; import service.UserService; import dao.UserDao; import entity.User; /** * 用户业务类,实现对User功能的业务管理 */ public class UserServi
-
Spring框架中@PostConstruct注解详解
目录 初始化方式一:@PostConstruct注解 初始化方式二:实现InitializingBean接口 补充:@PostConstruct注释规则 总结 初始化方式一:@PostConstruct注解 假设类UserController有个成员变量UserService被@Autowired修饰,那么UserService的注入是在UserController的构造方法之后执行的. 如果想在UserController对象生成时候完成某些初始化操作,而偏偏这些初始化操作又依赖于依赖注入的对
-
SpringBoot 属性配置中获取值的方式
目录 SpringBoot 属性配置中获取值 首先,定义一个实体类去写属性 测试和生产区分 SpringBoot 获取值和配置文件 1.@ConfigurationProperties(prefix = "student")方式 2.@Value方式 3.@PropertySource 4.@ImportResource和@Bean SpringBoot 属性配置中获取值 在配置文件中定义属性的值,然后再获取,在这里做一个总结,首先,在application.yml文件中定义端口和属性
-
详解Java的Spring框架中的注解的用法
1. 使用Spring注解来注入属性 1.1. 使用注解以前我们是怎样注入属性的 类的实现: class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } ... } 配置文件: <bean id="userManagerImpl" class="com.
-
Java的Spring框架下的AOP编程模式示例
Spring框架的关键组件是面向方面编程(AOP)框架.面向方面的编程不仅打破程序逻辑分成不同的部分称为所谓的担忧.跨越多个点的应用程序的功能被称为横切关注点和这些横切关注点是从应用程序的业务逻辑概念上区分开来.还有像日志记录,审计,声明性事务,安全性和高速缓存等方面的各种常见的好例子 模块化的OOP中的关键单元是类,而在AOP中模块化的单元则是切面.依赖注入可以帮助你从对方解耦应用程序对象和AOP可以帮助你从他们影响的对象分离横切关注点. AOP是一样的编程语言如Perl,.NET,Java和
-
详解非spring框架下使用querydsl的方法
Querydsl是一个采用API代替拼凑字符串来构造查询语句,可跟 Hibernate 和 JPA 等框架结合使用.网上很多教程都是结合spring JPA框架下使用的教程,本文介绍的是非spring环境下querydsl JPA整合使用. 1.使用eclipse生成jpa实体类,IDEA也能生成同样JPA实体类. 鼠标右键打开JPA Tools工具: 创建数据库链接: 选择那些数据库表需要生成JPA实体类: 关联表生成: 设置实体生成属性: 单个实体属性修改 生成的JPA实体类AdminLog
-
Spring框架 引入@Resource注解报空指针的解决
目录 引入@Resource注解报空指针 解决方案 spring项目无法引入@Resource注解 问题 解决办法 引入@Resource注解报空指针 最近刚开始学习Spring框架,在使用注解@Resource时,无论怎么应用都报空指针,主要原因是JDK版本不支持, 解决方案 1.在maven配置文件pom.xml文件中引入依赖 org.apache.tomcat tomcat-annotations-api 9.0.13 2.更换本地JDK版本,最好1.8以上,注意1.9JDK版本不支持,有
-
详解Spring框架下向异步线程传递HttpServletRequest参数的坑
在spring的注解 @RequestMapping 之下可以直接获取 HttpServletRequest 来获得诸如request header等重要的请求信息: @Slf4j @RestController @RequestMapping("/test") public class TestController { private static final String HEADER = "app-version"; @RequestMapping(value
随机推荐
- 基于vue+ bootstrap实现图片上传图片展示功能
- java连接mysql数据库及测试是否连接成功的方法
- JS实现给json数组动态赋值的方法示例
- Bootstrap禁用响应式布局的实现方法
- 查找php配置文件php.ini所在路径的二种方法
- C# 注册表 操作实现代码
- Android实现自定义圆形进度条
- JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
- jquery在Chrome下获取图片的长宽问题解决
- shell脚本echo输出不换行功能增强实例
- SqlServer2012中First_Value函数简单分析
- jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
- js字符串转换成数字与数字转换成字符串的实现方法
- JavaScript中扩展Array contains方法实例
- JavaScript_ECMA5数组新特性详解
- java发送http get请求的两种方式
- Spring+MyBatis多数据源配置实现示例
- iOS开发之拦截URL转换成本地路由模块URLRewrite详解
- android AlertDialog的简单使用实例
- 关于微信小程序bug记录与解决方法