SpringBoot @AutoWired Null
在调用工具类时,若工具类中含有@Autowired注解,这此工具类对象必须同样使用@Autowired注解,否则工具类中的Spring注入的对象都为空值,这里的HadoopTest就是这样
比如MyConfig类是
配置层
@Component
@ConfigurationProperties(prefix = "project")
public class MyConfig {
private String version;
private String name;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
HadoopTest类引用了MyConfig
public class HadoopTest {
@Autowired
MyConfig myConfig; //这里用了注入,所以controller层的test类中 HadoopTest hadoopTest=new HadoopTest();是无效的
public void getName() {
System.out.println(myConfig.getName());
}
}
Controller中
@RestController
public class test {
HadoopTest hadoopTest=new HadoopTest();
@GetMapping("hello")
public void hello() {
hadoopTest.getName();
}
}
这样在System.out.println(myConfig.getName());中是找不到myconfig的,我们应该改成
配置层
@Component
@ConfigurationProperties(prefix = "project")
public class MyConfig {
private String version;
private String name;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
HadoopTest类引用了MyConfig
@Component
public class HadoopTest {
@Autowired
MyConfig myConfig;
public void getName() {
System.out.println(myConfig.getName());
}
}
Controller类中
@RestController
public class test {
@Autowired
HadoopTest hadoopTest;
@GetMapping("hello")
public void hello() {
hadoopTest.getName();
}
}
或者是
配置层
@Compoment
@ConfigurationProperties(prefix = "project")
public class MyConfig {
private String version;
private String name;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
HadoopTest类引用了MyConfig
public class HadoopTest {
MyConfig myConfig=new Myconfig;
public void getName() {
System.out.println(myConfig.getName());
}
}
Controller类中
@RestController
public class test {
HadoopTest hadoopTest=new HadoopTest();
@GetMapping("hello")
public void hello() {
hadoopTest.getName();
}
}
也就是一条逻辑线上,HadoopTest注入了MyConfig,那么在test中必须也是注入而不是new,原因以后在补充。
补充:1.在第三种情况中,虽然MyConfig被注释了,但是只要不去注入它就没关系。
SpringBoot @AutoWired Null的更多相关文章
- springboot Autowired BeanNotOfRequiredTypeException
现象 org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'xxxxImpl' is expect ...
- Springboot @Autowired 无法注入问题
特别提醒:一定要注意文件结构 WebappApplication 一定要在包的最外层,否则Spring无法对所有的类进行托管,会造成@Autowired 无法注入. 1. 添加工具类获取在 Sprin ...
- 引入 ServletContextListener @Autowired null 解决办法
public class ScheduleController implements ServletContextListener { @Autowired private ScheduleServi ...
- SpringBoot @Autowired中注入静态方法或者静态变量
注:用static去定义一个注入的方法或者配置文件值变量,编译时不会有任何异常,运行时会报空指针. Spring官方不推荐此种方法. 原理: https://www.cnblogs.com/chenf ...
- Spring Autowired错误???
@SpringBootApplicationpublic class TestMqApplication extends SpringBootServletInitializer { @Suppres ...
- 简单模拟IOC容器:为添加了@Autowired的属性赋值(初始值)
创建@Autowired注解 package com.zzj.test; import java.lang.annotation.ElementType; import java.lang.annot ...
- Spring 注解原理(三)@Qualifier @Value
Spring 注解原理(三)@Qualifier @Value Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 一.Aut ...
- spring之mvc原理分析及简单模拟实现
在之前的一篇博客中已经简单的实现了spring的IOC和DI功能,本文将在之前的基础上实现mvc功能. 一 什么是MVC MVC简单的说就是一种软件实现的设计模式,将整个系统进行分层,M(model ...
- spring之IOC模拟实现
使用Spring框架已经有很长时间了,一直没有仔细的想过框架的设计思想是什么样的,底层到底是怎么实现的,这几天调试程序看了些源码,写下来做个记录.由于Spring框架博大精深,个人理解的难免有不正确的 ...
随机推荐
- jQuery操纵cookie(原生javascript处理cookie)
jQuery也是可以操作cookie的 1.首先下载jQuery.js 以及 jquery.cookie.js 这两个文件 2.安装(其实就是引用) <html> <he ...
- my97datePicker的相信使用
http://www.my97.net/dp/demo/resource/2.1.asp
- [C++][转]CPU字节序 网络序 主机序 大端小端
原帖:http://www.cnblogs.com/darktime/p/3298075.html 不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1 ...
- lucene源码分析(7)Analyzer分析
1.Analyzer的使用 Analyzer使用在IndexWriter的构造方法 /** * Constructs a new IndexWriter per the settings given ...
- PL/SOL csv格式导出查询结果时出现某些列的数据被四舍五入了的解决办法
昨天用pl/sql从oracle数据库捞取数据时,发现导出的csv格式中某些列的数据被进行了四舍五入处理了,当然这些列都是纯数字的,百思不得其解,后来上网才,才得知了原因. 这并不是导出的CSV文件数 ...
- Hibernate框架 hilo 方式配置MySQL 数据库的主键自增
hilo(高低位方式high low)是hibernate中最常用的一种生成方式,需要一张额外的表保存hi的值.保存hi值的表至少有一条记录(只与第一条记录有关),否则会出现错误.可以跨数据库. 创建 ...
- Hive导入数据的四种方法
Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...
- awk 统计文件中按照某列统计某列的和(sum)
把第一列相同的名称的第二列加起来: [root@localhost cc]# cat 1.txtaaa 10 bbb 20aaa 30ccc 40ccc 20ccc 40 [root@localhos ...
- c#与IronPython Clojure-clr的调用
一,python 安装ironpython http://ironpython.net/ 新建控制台程序,引入 IronPython,Microsoft.Scripting 新建xxx.py文件 va ...
- 照猫画虎owin oauth for qq and sina
ms随vs2013推出了mvc5,mvc5自带的模板项目中引用了新的身份认证框架 ms identity.其中owin部分实现了google,facebook,twitter等国外常见的第三方用户.可 ...