我是Apache Camel的新手,正在尝试构建api。它有三个类。
A类-这是为了读取下面application.properties文件
@Configuration
@ConfigurationProperties(prefix="api")
public class A{
private String username;
public String getUsername(){
return username
}
B类-阿帕奇骆驼路线。
类C-Bean类,其中类A是自动连接的。
@Component
public class b extends RouteBuilder{
@Autowired
ClassC customC;
public void configure{
from("direct:start")
.bean(customC)
.to("log:first-timer")
}
}
@Component
class C{
@Autowired
ClassA config;
String username=config.getUsername();
}
每当IDE执行api时,它都会在行中抛出Null指针异常。getUsername() 。我已经验证了spring boot能够加载应用程序。属性。
我不确定为什么调用自动加载类的方法会抛出空指针异常。
问题出在你的C类中。
@Component
class C{
@Autowired
A config;
String username = config.gtUsername();
}
Spring初始化期间的顺序如下:
C
new C()
)username=config.gtUsername()
并使用NullPointerException
失败,因为config
仍然null
。@Autowire
config
属性)您可以通过从构造函数中删除用户名属性的初始化来解决这个问题,而不是将其放入一个单独的方法(我们称之为init())中,并用PostConstruct对其进行注释。另请参见Spring PostConstruct和PreDestroy注释。
@Component
class C{
@Autowired
A config;
String username;
@PostConstruct
void init() {
username = config.getUsername();
}
}
然后,Spring初始化期间的顺序如下:
@Autowired
解决问题的另一个更简单的方法是使用构造函数注入(正如@Ferry在他的评论中已经建议的那样):
您不依赖隐式默认构造函数,而是提供了一个@Autowared
注释构造函数,它可以采用A config
参数。此外:通过这样做,您将不再需要A config
属性。
@Component
class C{
String username;
@Autowired
C(A config) {
username = config.getUsername();
}
}
然后,Spring初始化期间的序列将如下所示:
@Autowire
new C(config)
创建C
的实例,其中config
是之前在自动装配过程中创建的A
实例)config
初始化您的用户名
属性。问题内容: 我正在学习Spring,在尝试建立一个相对基本的Spring项目时遇到了一些问题。我正在创建一个应用程序以简单地从数据库中读取数据,但是我在自动装配方面遇到问题,或者缺少该问题。我的类在方法中引发了空指针异常,因为尚未初始化变量。有人可以在这里指出正确的方向吗? 应用程序类 CustomerService.class GetCustomerEvent.class 问题答案: 您没有初始
本文向大家介绍Java自动拆箱空指针异常的解决,包括了Java自动拆箱空指针异常的解决的使用技巧和注意事项,需要的朋友参考一下 公司搬迁,临时充当装修工,提前两个小时到公司忙着拆卸设备。结果接到客户反映,某部分功能偶尔不能用。于是参与救火,与写这段代码的小伙伴一起排查原因。 最终发现导致业务偶尔不能使用是由Long类型自动拆箱导致空指针异常引起的。下面就带大家分析一下Java中基础类型的包装类在拆
问题内容: 我正在尝试启动一个IntentService。当我这样做时,它会吐出: 我已经用谷歌搜索过,并查看了尽可能多的类似StackOverflow问题。但是,有一些细微的区别,我无法解决。首先,没有任何异常引用我的类。其次,通过更改上下文或再次检查以确保其不为null来解决类似的问题。 我有代码来检查情况并非如此: 我的IntentService是根据Google文档建模的。只是一个带有on
我在活动onCreate()中初始化列表,如下所示: 编辑:我的活动的launchmode是SingleTask 编辑2: 我无法发送更多有用的日志,因为这次崩溃是在生产中。我只有一些布料日志。 谢谢你的帮助,但我不能粘贴整个代码,因为隐私。 我想我在SingleTask-OnCreate-OnNewIntent用法上有问题。简单地说,我试图打开我的应用程序从通知与参数决定哪个片段将打开时,用户导
本文向大家介绍Java中避免空指针异常的方法,包括了Java中避免空指针异常的方法的使用技巧和注意事项,需要的朋友参考一下 没人会喜欢空指针异常!有什么方法可以避免它们吗?或许吧。。 本文将讨论到以下几种技术 1.Optional类型(Java 8中新引入的) 2.Objects类(Java 7中原有的) Java 8中的Optional类 它是什么? 1.Java 8中新引入的类型 2.它是作为
问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于