当前位置: 首页 > 面试题库 >

Spring Framework自动连接的空指针异常

岳永思
2023-03-14
问题内容

我正在学习Spring,在尝试建立一个相对基本的Spring项目时遇到了一些问题。我正在创建一个应用程序以简单地从数据库中读取数据,但是我在自动装配方面遇到问题,或者缺少该问题。我的GetCustomerEvent类在GetCustomers()方法中引发了空指针异常,因为CustomerService尚未初始化变量。有人可以在这里指出正确的方向吗?

应用程序类

package org.ben.test.main;
@Configuration
@ComponentScan(basePackages={"org.ben.test.persistence", "org.ben.test.main"})
public class Application {

    @Bean
    public CustomerService customerService() {
        return new CustomerService();
    }

    @Bean 
    public DataSource getDataSource() {
        DriverManagerDataSource dmds = new DriverManagerDataSource();
        dmds.setDriverClassName("org.postgresql.Driver");
        dmds.setUrl("jdbc:postgresql://localhost:5432/Customers");
        dmds.setUsername("postgres");
        dmds.setPassword("postgres");
        return dmds;

    }

    @Bean
    public JdbcTemplate jdbcTemplate() {
        DataSource ds = getDataSource();
        JdbcTemplate jdbc = new JdbcTemplate(ds);
        return jdbc;
    }

    public static void main(String[] args) {
        GetCustomerEvent ev = new GetCustomerEvent();
        ev.GetCustomers();
    }
}

CustomerService.class

package org.ben.test.persistence;

@Component
public class CustomerService {

    @Autowired JdbcTemplate jdbcTemplate;

    public CustomerService() {

    }

    public void getCustomers() {
        jdbcTemplate.query("SELECT * FROM Customers", new RowMapper() {
            @Override
            public Object mapRow(ResultSet arg0, int arg1) throws SQLException {
                System.out.println(arg0.getString("firstName"));
                return null;
            }
        });
    }

}

GetCustomerEvent.class

package org.ben.test.persistence;


@Component
public class GetCustomerEvent {

    @Autowired 
    CustomerService customerService;

    public GetCustomerEvent() {

    }

    public void GetCustomers() {
        customerService.getCustomers();
    }
}

问题答案:

您没有初始化Spring容器。

您需要创建上下文以使其起作用。



 类似资料:
  • 本文向大家介绍Java自动拆箱空指针异常的解决,包括了Java自动拆箱空指针异常的解决的使用技巧和注意事项,需要的朋友参考一下 公司搬迁,临时充当装修工,提前两个小时到公司忙着拆卸设备。结果接到客户反映,某部分功能偶尔不能用。于是参与救火,与写这段代码的小伙伴一起排查原因。 最终发现导致业务偶尔不能使用是由Long类型自动拆箱导致空指针异常引起的。下面就带大家分析一下Java中基础类型的包装类在拆

  • 我是Apache Camel的新手,正在尝试构建api。它有三个类。 A类-这是为了读取下面application.properties文件 B类-阿帕奇骆驼路线。 类C-Bean类,其中类A是自动连接的。 每当IDE执行api时,它都会在行中抛出Null指针异常。getUsername() 。我已经验证了spring boot能够加载应用程序。属性。 我不确定为什么调用自动加载类的方法会抛出空指

  • 问题内容: 我正在尝试启动一个IntentService。当我这样做时,它会吐出: 我已经用谷歌搜索过,并查看了尽可能多的类似StackOverflow问题。但是,有一些细微的区别,我无法解决。首先,没有任何异常引用我的类。其次,通过更改上下文或再次检查以确保其不为null来解决类似的问题。 我有代码来检查情况并非如此: 我的IntentService是根据Google文档建模的。只是一个带有on

  • 我在活动onCreate()中初始化列表,如下所示: 编辑:我的活动的launchmode是SingleTask 编辑2: 我无法发送更多有用的日志,因为这次崩溃是在生产中。我只有一些布料日志。 谢谢你的帮助,但我不能粘贴整个代码,因为隐私。 我想我在SingleTask-OnCreate-OnNewIntent用法上有问题。简单地说,我试图打开我的应用程序从通知与参数决定哪个片段将打开时,用户导

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db