当前位置: 首页 > 知识库问答 >
问题:

无法在Spring中初始化bean类

萧德馨
2023-03-14

我正在尝试使用Spring开发Rest代码

@RestController
public class MongoController {

    @Autowired
    private MongoDAO mongoDAO ;

    @RequestMapping(value = "/mongotest", method = RequestMethod.GET)
    public String creatTest() {

        return " YO Mongo";
    }


}  

我的MongoDAO类如下所示

@Service("mongoDAO")
@Component
public class MongoDAO {


    @Resource
    private DBCollection user ;
    @Resource
    private MongoDatabase userDatabase;
    @Resource
    private MongoCollection<Document> usersCollection;
    @Resource
    private MongoClient mongoClient;

/*  public MongoDAO(final MongoDatabase userDatabase) {
        usersCollection = userDatabase.getCollection("user");
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        DB db = mongoClient.getDB("ITAU");
        user = db.getCollection("user");
    }*/

    public MongoDAO(MongoDatabase userDatabase1) {
        usersCollection = userDatabase1.getCollection("user");

    }

    public MongoDAO() {
        usersCollection = userDatabase.getCollection("user");

    }

但我得到的错误是..

原因:org . spring framework . beans . factory . beancreationexception:创建在文件[C:\ Users \ user \ Desktop \ ITAU \ 77 \ ABC-iCOE-WAL \ ItauBankingTransac s \ rest-client \ target \ classes \ com \ ABC \ WAL \ itaudemo \ mongo \ Dao \ mongoDAO . class]中定义的名为“mongoDAO”的bean时出错:bean的实例化失败;嵌套异常为org . spring framework . beans . bean instantiation异常:无法实例化bean类[com。ABC . wal . itaudemo . mongo . Dao . mongodao]:构造函数抛出异常;嵌套异常是org . spring framework . beans . factory . support . abstractautowirecapablebeanfactory . instantiate bean中的Java . lang . nullpointerexception(abstractautowirecapablebeanfactory . Java:1076)

共有2个答案

白云
2023-03-14

只需使用@Service(“蒙古道”),无需@Component

@Service("mongoDAO")
public class MongoDAO {

您可以使用这两种注释中的任何一种,为了可读性,在服务层代码中使用了@Service。@Component更像是一个通用的注释。

马坚
2023-03-14

userDatabase字段在创建MongoDaaobean后自动装配。如果您想在构造操作后执行一些操作,请尝试以下操作:

@Service("mongoDAO")
public class MongoDAO {


    @Resource
    private DBCollection user ;
    @Resource
    private MongoDatabase userDatabase;
    @Resource
    private MongoCollection<Document> usersCollection;
    @Resource
    private MongoClient mongoClient;

    public MongoDAO() {

    }

    @PostConstruct
    public postConstruct() {
        usersCollection = userDatabase.getCollection("user");

    }

可以省略构造函数。通常,最好不要为组件类使用自定义构造函数。

 类似资料:
  • 我在Weblogic 12上部署了一个WebApp JSP项目作为WAR。 我的gradle构建包括mvc和webflow: 我试图配置OAuth2以使用来自我的客户端JSP应用程序的client_credentials流。 我需要@Controller类来使用WebClient并将访问令牌传播到资源服务器。 下面是创建WebClient的我的Bean。 但是我得到以下错误在编译: 然而,当我取消

  • 我在想Spring中bean的懒惰初始化。对我来说,这里的“懒惰”是否意味着当一个bean被引用时会被创建并不十分清楚。 我认为Spring中的延迟初始化支持是不同的。我认为这是一个基于“方法调用”的惰性创建。我的意思是,每当对该方法调用任何方法时,都会创建该方法。 我认为这可以通过创建特定bean的代理实例并对任何方法调用进行初始化来轻松解决。 我是否遗漏了一些东西?为什么没有实施?这个概念有什

  • SOFABoot 提供了模块并行启动以及 Spring Bean 异步初始化能力,用于加快应用启动速度。本文介绍如何使用 SOFABoot 异步初始化 Spring Bean 能力以提高应用启动速度。 使用场景 在实际使用 Spring/Spring Boot 开发中,一些 Bean 在初始化过程中执行准备操作,如拉取远程配置、初始化数据源等等。在应用启动期间,这些 Bean 会增加 Spring

  • 问题内容: 我有多个上下文文件。要求是:在其余的Bean中首先初始化一个特定的Bean(进行一些配置更改)。 有没有一种方法可以首先加载该bean? 一种选择是使用“取决于”属性。 但这将需要更新所有其他bean,因此这似乎不是最佳解决方案。 我们有更好的选择吗? 问题答案: 恕我直言,您应该等待它们修复https://jira.spring.io/browse/SPR-3948 一种可能的方法是

  • 问题内容: 我想创建以下具有方法 setThresholds(Number highThreshold,Number lowThreshold)的 Spring bean(一个JMX监视器 ) 。 我可以在配置中调用该方法(带有两个参数)吗?我不想编写代码来调用它。 问题答案: 可以通过使用 MethodInvokingFactoryBean(Spring [4.x]( https://docs.

  • 我试图在一个课程中使用xampp,但我无法使tomcat正常工作,我得到的错误是: Tomcat启动/停止时出现错误,返回代码:1确保安装了Java JDK或JRE,并且所需端口空闲,有关详细信息,请检查“/xampp/tomcat/logs”文件夹 我见过很多有这个问题的人,但他们得到的建议都没有帮助我摆脱它。 我已经确定了环境变量如下所示: CATALINA_HOME:C:\XAMPP\Tom