springboot无法从静态上下文中引用非静态变量的解决方法
静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用。
因此想在静态方法中直接引用非静态方法是不可能的,因为不知道调用哪个对象的非静态方法,编译器不可能给出答案,因为没有对象。
java就怕找不到对象。
解决办法:
spring的set注入方法,通过非静态的setter方法注入静态变量,样例如下
@PropertySource(value = {"classpath:config/application.yml"},ignoreResourceNotFound = true,encoding="UTF-8") @Service public class tank_task { private static String kafka; public static String getProfilesKafka() { return kafka; } @Value("${stream.kafka.servers}") public void setProfilesKafka(String kafka) { tank_task.kafka = kafka; } public static void tank_test(){ System.out.println("config static kafka :" + tank_task.getProfilesKafka()); } }
解决办法不止这一种,个人觉得这种方法,简单,也实用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Springboot引用外部配置文件的方法步骤
现在的项目越来越多的都是打包成jar运行尤其是springboot项目,这时候配置文件如果一直放在项目中,每次进行简单的修改时总会有些不方便,这里我们看下打包成jar之后,从外部配置文件中读取配置信息. 首先想到的是通过java代码读取外边某个路径下的文件,但是开始做之后发现好多问题.后来又找其它解决方案,正好搜到一种简单的解决方式: java -jar demo.jar --Dspring.config.location=myapplication.properties 这样就可以通过@val
-
在SpringBoot中静态资源访问方法
一.概述 springboot 默认静态资源访问的路径为:/static 或 /public 或 /resources 或 /META-INF/resources 这样的地址都必须定义在src/main/resources目录文件中,这样可以达到在项目启动时候可以自动加载为项目静态地址目录到classpath下 ,静态访问地址其实是使用 ResourceHttpRequestHandler 核心处理器加载到WebMvcConfigurerAdapter进行对addResourceHandlers
-
SpringBoot加载静态资源的方式
在SpringBoot中加载静态资源和在普通的web应用中不太一样.默认情况下,spring Boot从classpath下一个叫/static(/public,/resources或/META-INF/resources)的文件夹或从ServletContext根目录提供静态内容.下面我们来写个例子看一下就会一目了然了:首先看一下项目的目录结构: 我们在resources下面的templates目录下建一个home.html的文件,完整目录为:src/main/resources/templa
-
SpringBoot静态资源css,js,img配置方案
一.概述 springboot 默认静态资源访问的路径为:/static 或 /public 或 /resources 或 /META-INF/resources 这样的地址都必须定义在src/main/resources目录文件中,这样可以达到在项目启动时候可以自动加载为项目静态地址目录到classpath下 ,静态访问地址其实是使用 ResourceHttpRequestHandler 核心处理器加载到WebMvcConfigurerAdapter进行对addResourceHandlers
-
springboot无法从静态上下文中引用非静态变量的解决方法
静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用. 因此想在静态方法中直接引用非静态方法是不可能的,因为不知道调用哪个对象的非静态方法,编译器不可能给出答案,因为没有对象. java就怕找不到对象. 解决办法: spring的set注入方法,通过非静态的setter方法注入静态变量,样例如下 @PropertySource(value = {"classpath:config/application.yml"},ignoreResourceNotFound = tr
-
Springboot 跨域配置无效及接口访问报错的解决方法
跨域配置如下,Springboot 版本为 2.4.1 ///跨域访问配置 @Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); //sessionid 多次访问一致 co
-
springboot druid数据库连接池连接失败后一直重连的解决方法
目录 druid 重连原因 errorCount 错误次数 总结 在使用个人阿里云测试机,在查询实时输出日志时,看到数据库连接失败后,服务器一直在重连服务器.开始以为是遭受重复攻击,后面把服务重启后,就没有出现一直重连的情况.看以下输出日志: 2022-02-09 11:04:58.896 ERROR 16876 --- [eate-1550991149] com.alibaba.druid.pool.DruidDataSource : create connection SQLExcept
-
Mysql无法选取非聚合列的解决方法
1. 前言 最近升级博客,给文章页面底部增加了两个按钮,可以直接跳转到上一篇和下一篇. 如下图所示: 实现这个功能的难点在于:数据库怎么选取出一条记录的前后两条相邻的记录? 2. 数据库设计 关于我文章数据库的设计如下图所示: 可以看到,每条记录的身份是索引Id.因为之前有很多文章记录被删除了,所以,Id并不是连续的. 如果当前文章的索引值是33,那么可以通过以下命令来得到前后相邻的 2 篇文章: select * from passage where id in (select case wh
-
easyui combotree加载静态数据问题(选不上)解决方法
在今天的开发中遇到一个奇怪的问题.虽然已经被我解决但还是百思不得其解,决定记录一下,看看有没有大神能给我答案. 问题重现: 由于我有4个combotree需要加载数据,但是我又不想每次初始化一个combotree就去访问服务器加载一下数据,于是我将加载数据过程写成这样 $.post('xxxurl',function(data){ $('#inputTree0').combotree('loadData',data); $('#inputTree1').combotree('loadData',
-
Java 非静态初始化的例子
在继承关系中,静态初始化.非静态初始化和构造函数的执行顺序 public class ExA { static { System.out.println("父类--静态代码块"); } public ExA() { System.out.println("父类--构造函数"); } { //非静态代码块 System.out.println("父类--非静态代码块"); } public static void main(String[] arg
-
Django零基础入门之静态文件的引用
目录 效果展示: 1.静态文件引用: (1)创建静态文件目录: (2)静态文件路径的配置: (3)创建三大静态文件: (4)静态文件的引用: 引言: 在我们Django中如何引用三大静态文件(JavaScript,CSS,image)呢? 这就是本文要讲述的内容--静态文件的引用! 效果展示: 点击确定之后: 1.静态文件引用: (1)创建静态文件目录: 在项目目录下创建static目录, 为了区分开各种类型的静态文件,再分别创建css,image,js文件目录: (2)静态文件路径的配置: 在
-
springboot中.yml文件的值无法读取的问题及解决
目录 yml文件的值无法读取的问题 1.添加maven依赖 2.注解方式在需要使用变量名的类上加上注解 ,@Configuration 3..yml文件配置如下 yml文件不被识别 解决方法 yml文件的值无法读取的问题 1.添加maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-proce
-
Java静态和非静态成员变量初始化过程解析
这篇文章主要介绍了Java静态和非静态成员变量初始化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java中非静态成员变量.静态成员变量的初始化时机. 非静态变量 我们在这里分析三种结构,着重分析这三种结构的初始化顺序: 成员变量初始化语句: 成员变量初始化块: 构造函数: 示例一: public class MyTest { private String name = "wei.hu"; public MyTest(Str
-
SpringBoot随机数设置及参数间引用的操作步骤
自定义配置 SpringBoot免除了项目中大部分手动配置,可以说,几乎所有的配置都可以写在全局配置文件application.peroperties中,SpringBoot会自动加载全局配置文件从而免除我们手动加载的烦恼.但是,如果我们自定义了配置文件,那么SpringBoot是无法识别这些配置文件的,此时需要我们手动加载. 接下来,将针对SpringBoot的自定义配置文件及其加载方式进行讲解. (1)使用@PropertySource加载配置文件 我们可以使用@PropertySource
随机推荐
- AngularJS自定义指令之复制指令实现方法
- 利用DataSet部分功能实现网站登录
- angularjs利用directive实现移动端自定义软键盘的示例
- nginx利用referer指令实现防盗链配置
- java LinkedList的实例详解
- javascript实现 在光标处插入指定内容
- ubuntu12.04使用c编写php扩展模块教程分享
- PHP中的cookie
- 关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程
- C#使用自带的email组件发送邮件的方法
- 在HTML中插入JavaScript代码的示例
- 通过jsonp获取json数据实现AJAX跨域请求
- jQuery源码分析之Callbacks详解
- 基于jquery实现拆分姓名的方法(纯JS版)
- C语言实现树的动态查找实例代码
- android图片压缩工具类分享
- 如何在centos7中安装nginx
- 了解Javascript中函数作为对象的魅力
- .NetCore利用BlockingCollection实现简易消息队列
- Python查找第n个子串的技巧分享