springMVC和Springboot项目@value注解值为null的解决办法

最近springMVC项目和springboot项目都遇到用@value获取配置文件中配置项值为空的情况,以下是我的解决方法:

springMVC项目解决方法:

service-context文件中增加下面配置:

<context:component-scan base-package="com.test">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

以上配置用来扫描项目包名下的所有类

由于我service层和common模块都需要获取配置文件中配置项的值,但是添加上面的配置后,我只能在service层通过@value获取到配置项的值,common模块仍然无法获取到配置项的值

springboot项目解决方法:

需要在类添加@Component注解

例如:

@Component
public class TestUtil {

  public static boolean enable;

  @Value("${enable}")
  public void setEnable(boolean enable) {
    TestUtil.enable = enable;
  }

}

注意事项:

[email protected]获取值为null,可能是由于使用static、final修饰变量名:

@Value("${enable}")

public static boolean enable; //获取值为null

2.一个static修饰的变量需要使用到@value获取到值的变量,需要添加@PostConstruct

例如:

@Component
public class TestUtil {

  public static String url;

  @Value("${url}")
  public void setEnable(String url) {
    TestUtil.url = url;
  }

  private static String uri;
  @PostConstruct
  public void init() {
    uri = "http://" + uri;
  }

}

3.接收变量为int、long类型的值需要如下接收

@Value("#{${bandwidth}}")
 public Long bandwidth;

原文地址:https://www.cnblogs.com/Bud-blog/p/12167926.html

时间: 2024-10-31 20:57:09

springMVC和Springboot项目@value注解值为null的解决办法的相关文章

SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱码 @RequestMapping(params = "method=submit") public String submit(HttpServletRequest request, ModelMap modelMap) throws Exception{ String uname =

在项目中导入import javax.servlet 出错解决办法

我们有时会把别人的项目copy到自己这里进行二次开发或者参考学习,有的时候会发生下图的错误,即eclipse项目里我们导入的项目里提示HttpServletRequest 不能引用,会伴随头疼的小红叉出现 具体原因是我们工程里面web-inf/lib目录下少了相应的包:Package javax.servlet.http引起的:通俗且确切的讲就是缺少TOMCAT_HOME\lib下的servlet-api.jar.在别人的机器上他配置了Server,一般都是tomcat,而在拷贝的过程中Serv

项目中遇到的某些问题及解决办法(一)

简介 该博文记录了一些平时在工作中遇到的问题及解决办法,某些问题有解决办法,某些问题暂时没有解决办法,如果有大神知道的,请多多指点. 如果某些问题有更好的解决办法,也请指教. 正文 1.在一个方法中用泛型操作两个不同的类型(Type). 难点:需要实现一个方法,进入参数一个泛型,返回信息一个泛型.但是一个方法中泛型只支持一种类型. 解决办法:将进入和返回放在一个类型中,用特性将进入参数和返回参数区分开. 2.微信三方登录,需要在PC桌面应用端+API服务实现. 难点:微信官网只提供了网页三方登录

spring 3.0 @ResponseBody注解返回中文问号乱码解决办法

前几天给公司做项目,很久没接触java项目的我,遇到了一个问题,就是我在利用异步到控制器中查询,然后返回jaon字符串到前台,字符串中包含中文,于是我直接用了@ResponseBody注解,来返回到前台. 但是中文一直是问号返回到前台.后来几经尝试,在配置文件中添加字符集还是没用,我发现我没写错,后来某次突然想到是不是因为放错位置了,果然,字符集配置应该放在包扫描配置之前,不然扫描完成后再去设置字符也没有意义了.所以以下配置为正确解决办法.. <bean class="org.spring

关于Ext checkboxfiled 获取值为 on的解决办法

今天在做Ext checkboxfield 为取值为on,应该是true或false,解决办法是把Name去掉,只设置ID即可 1 { 2 xtype: "container", 3 layout: "hbox", 4 defaultType: "textfield", 5 margin: "5 15 5 15", 6 style: 'text-align:right', 7 items: [ 8 { 9 xtype: &qu

AndroidStudio运行项目出现Unsupported method: AndroidProject.getPluginGeneration()错误解决办法

一.错误描述 今天在使用AndroidStudio运行项目时出现了一个Unsupported method: AndroidProject.getPluginGeneration()错误,如下图所示: 二.解决办法 第一次遇到这个错误,上网找了一下解决办法,解决办法如下: 关掉instant run即可,如下图所示: 关掉[instant run]就可以解决上述所说的Unsupported method: AndroidProject.getPluginGeneration()错误,总感觉这种解

eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法

当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, ServletActionContext找不到的情况,解决办法:(注:我已经引用了struts2的jar包,classpath有,但eclipse就不认识,提示我去配buildpath,很怪异)----------------------------------------------------------------------------------------------------选中项目--

eclipse里maven项目An error occurred while filtering resources解决办法(转载)

转自:http://liyanjie918.blog.163.com/blog/static/20227290201581143110105/ 在使用eclipse构建maven项目时,突然出现错误提示:An error occurred while filtering resources,在项目中到处都找不到哪里有问题,最后在国外网站找到解决办法: 右键项目-->maven-->update project 果然好使!good!

分模块的maven项目调试时报Source not found的解决办法

一.背景 通常在开发中,我们经常会拆分我们的项目为一个个maven子工程,然后用一个父项目进行集成,并且子项目还会继承自父项目.当我们对这些项目进行debug调试的时候往往会在eclipse中出现source not found的错误,但是明明我们的源码是存在的啊?后来经过努力,终于解决了这个令人厌烦的问题.问题截图: 二.解决办法 1.在需要调试的项目上右键选择properties,然后找到Java Build Path选项,之后切换到该项的Projects选项卡下,点击Add...按钮 之后