Java 如何使用在配置类中定义的方法?
我在一个项目中创建了一个配置类,定义了一个方法,并尝试在另一个项目中导入一个配置并调用定义的方法,但是我得到了null指针异常 我用config类创建了bean,并尝试使用autowire注释,但它对我不起作用Java 如何使用在配置类中定义的方法?,java,spring-boot,Java,Spring Boot,我在一个项目中创建了一个配置类,定义了一个方法,并尝试在另一个项目中导入一个配置并调用定义的方法,但是我得到了null指针异常 我用config类创建了bean,并尝试使用autowire注释,但它对我不起作用 projectA: @Configuration public class DepositServiceConfig { @Bean public DepositService depositService() { return new Depo
projectA:
@Configuration
public class DepositServiceConfig
{
@Bean
public DepositService depositService()
{
return new DepositService(depositModel.user_permisisons);
}
}
public class DepositService
{
private final DepositModel model;
public DepositService(depositModel model)
{
this.model = model;
}
public boolean hasRestrictions(string access)
{
return //
}
}
ProjectB:
@Import({
DepositServiceConfig.class,
})
public class DepositApp{
public static void main(String[] args)
{
SpringApplication.run(DepositApp.class, args);
}
}
@Component
public class ClientDeposits
{
@Autowired DepositServiceConfig depositConfig;
public boolean checkrestrcitions(){
if(depositConfig.depositService().hasRestrictions(access)) -- here i am getting null pointer exception.
}
如何使用config类中定义的depositService()bean而不出现空指针异常将
@Component
添加到公共类depositService
解决了您的问题。您必须将DepositService指定为spring组件,才能获得托管bean 您错误地自动连接了DepositServiceConfig,它是一个配置,不应自动连接。您需要在ClientDeposits类中自动连接DepositService并使用该bean。我在ClientDeposits中尝试了@Autowired DepositService DepositService,但仍然得到null异常不需要在DepositService类上注释@component,因为它已经在配置中创建了。