需要通过原生Spring获取对象的方式,
1、先编写以下工具类SpringBeanUtil.java
package com.cnd.yourcompany.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
// TODO Auto-generated method stub
SpringBeanUtil.applicationContext = applicationContext;
}
/**
* 从静态变量applicationContext中得到Bean, 自动转型为所赋值对象的类型.
*/
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) {
if (name == null || applicationContext == null)
return null;
return (T) applicationContext.getBean(name);
}
/**
* 从静态变量applicationContext中得到Bean, 自动转型为所赋值对象的类型.
*/
public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
}
2、映射yml文件的JavaBean
package com.cnd.yourcompany.utils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "emqx")
public class IvtMqttConfigureInfo {
private String url;
private int port;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
3、在业务线程中实现配置文件信息使用
public class MqttClientSubMsgInFuture implements Runnable {
private IvtMqttConfigureInfo configInfo = SpringBeanUtil.getBean(IvtMqttConfigureInfo.class);
//......
}
4、yml文件配置application.yml如下:
emqx:
url: www.yourcompany.com
port: 1883
username: biz_user
password: asde13sdeow75x1w
分享到:
相关推荐
主要介绍了详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
多线程Autowire注入null的解决方案.docx
主要介绍了SpringBoot项目使用多线程处理任务时无法通过@Autowired注入bean问题的解决方法,需要的朋友可以参考下
#学习springboot自动装配 ##一,手动装配 ### 1,模式注解装配 @Component注解,或者@Component注解的扩展,@ Controller,@ Service,存储库,@ Configruation等, ### 2. @ Configuration启动容器+ @ Bean注册...
Autowire是Python的轻量级和简单的依赖注入库
WebappApplication 一定要在包的最外层,否则Spring无法对所有的类进行托管,会造成@Autowired 无法注入。接下来给大家介绍解决Springboot @Autowired 无法注入问题,感兴趣的朋友一起看看吧
这个项目采取了了在prepare方法中执行注入的方式使bolt在序列化完成后执行注入,绕开了storm的序列化机制 使用这个项目里 你可以通过以下代码做到最基本的注入 @Resource private SentenceCounter counter; public ...
在idea2020 下写的spring5-autowired 小例子。person,cat dog ,给大家一个参考。
用于Golang的基于反射的依赖项注入工具箱。 该自述文件处于进行中状态。 安装 整个项目基于go模块。 要获取最新版本,请使用go1.16 +并使用go get命令获取它。 例如: go get github.com/go-autowire/autowire ...
autowire自动导入句柄
springboot-redis-mybatis redis实现mybatis的二级缓存 springboot 2.0.1.RELEASE 关键点: 1.自己实现的二级缓存,必须要有一个带id的构造函数,否则会报错。 2.我们使用Spring封装的redisTemplate来操作Redis。 ...
以Spring5.3.6为演示基础,以多个范例显示演示了autowire多种形式的应用 default、byName、byType、constructor 并对相关使用做了一定的对比
主要介绍了Spring实战之@Autowire注解用法,结合实例形式详细分析了Spring @Autowire注解具体实现步骤与相关使用技巧,需要的朋友可以参考下
springboot——员工管理系统源码
因此,在构建对象时,确实需要构建对象图。 手工构建对象图非常费力,容易出错,并且使测试变得困难。 相反,Ray.Di可以为您构建对象图。 但是首先,需要配置Ray.Di以完全按照您的需要构建图形。 为了说明,我们将...
1、接口注入(不推荐) 2、getter,setter方式注入(比较常用) 3、构造器注入(死的应用) 关于getter和setter方式的注入 1.autowire=defualt 2.autowire=“byName” 3.autowire=bytype ...
NULL 博文链接:https://garrincha.iteye.com/blog/2109488
该项目使用spring作为依赖项注入,并在测试中注入步骤,并在步骤中注入页面。 这里的哲学是:“保持简单,愚蠢”。 要求 Java 8,Junit 5,Maven 从命令行运行测试 mvn清洁测试。 或mvn clean test -Dtags = smoke ...
资源分类:Python库 所属语言:Python 资源全名:Autowire-1.0.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059