Java @Bean注释方法的正确使用

Java @Bean注释方法的正确使用,java,spring,Java,Spring,@Bean注释用于为应用程序上下文创建Bean,我们可以将逻辑放入其中以创建对象。 但是我们可以在代码中的某个地方手动调用这个方法吗?在这个地方,正在创建的bean的引用不是自动连接的??? 我可以称之为这种方法,但这是一种好的做法吗?如果我调用它,那么这不意味着我没有正确地设计我的类依赖关系吗 有人能分享一下他们的想法吗 谢谢 Amar@Bean注释创建一个spring管理的Bean。要获得它,请使用@Autowired 如果您需要访问某个对象,您不能自动访问它,那么通常应考虑重新设计代码。

@Bean
注释用于为应用程序上下文创建Bean,我们可以将逻辑放入其中以创建对象。 但是我们可以在代码中的某个地方手动调用这个方法吗?在这个地方,正在创建的bean的引用不是自动连接的??? 我可以称之为这种方法,但这是一种好的做法吗?如果我调用它,那么这不意味着我没有正确地设计我的类依赖关系吗

有人能分享一下他们的想法吗

谢谢


Amar

@Bean注释创建一个spring管理的Bean。要获得它,请使用@Autowired

如果您需要访问某个对象,您不能自动访问它,那么通常应考虑重新设计代码。

但是如果您坚持,您将不得不手动创建对象,或者通过编程从应用程序上下文获取对象

像这样的方法应该会奏效:

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
ctx.getBean("someName");

您始终有两种选择:

  • 基于注释的
  • 基于XML的
  • 如果您出于任何原因不想使用@Autowired annotation,可以使用ctx.getBean()


    您可以阅读关于这场holly war的文章

    您是否在询问如何在xml或java配置之外创建spring管理的bean?不要从其他对象调用
    @bean
    带注释的方法,然后调用
    @Configuration
    类…@RC。是的,假设我正在调用一个方法。在这个方法中,我需要那个bean,我可以在那里调用这个方法吗?@M.Deinum“@Configuration”也可以用于方法,对吗??我创造@Bean@Configurationpublic beanname(){return new…;}。我不太确定我写的是否正确不,这不是好的做法。与其手动调用
    @Bean
    方法,不如更改代码,以便您可以在需要的任何地方访问
    ApplicationContext
    ,然后在
    ApplicationContext
    中查找Bean,或者更好,让Spring注入它。
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    ctx.getBean("beanName");