如何使用现有库创建Spring Bean

时间:2017-10-12 00:05:54

标签: java spring javabeans

我刚接触Spring并使用现有的Spring库/ api。所有bean都在java类中配置,即。没有xml,现有配置在main方法中有一行:

SpringApplication.run(ServerExchange.class, args);

库处理与私有服务器接口的协议,我已经能够创建类的正常实例,即:

AccountManager aM = new AccountManager()

但是,要在每个类中自动装配的配置(例如AccountManager)都没有完成,因为它的目的是创建为" bean&#34 ;,所以当我使用AccountManager时,@Autowired的依赖项为空

我一直在寻找在线并试图找到一个如何从主方法中的第一个给定行开始的例子,但我在网上找到的主要是基于xml或" ApplicationContext&# 34 ;.我不知道如何迈出第一步并简单地创建一个bean,任何人都可以提供一个代码示例来创建一个AccountManager bean吗?

提前致谢。

编辑: 为了澄清,我对主要方法中所需的代码感兴趣,一旦在各自的类中设置了bean,如何获取它的实例。

3 个答案:

答案 0 :(得分:0)

如果您需要在对象中自动装配任何字段,则无法使用new进行实例化,因为当您这样做时,Spring并不知道它。

您可以执行以下操作:

    {
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "project": {
    "name": "showhow-admin"
  },
  "apps": [
    {
      "root": "showhow-admin",
      "outDir": "example-dist",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "bc",
      "styles": [
        "styles.css"
      ],
      "scripts": [],
      "environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],
  "e2e": {
    "protractor": {
      "config": "./protractor.conf.js"
    }
  },
  "lint": [
    {
      "project": "showhow-admin/tsconfig.app.json"
    },
    {
      "project": "showhow-admin/tsconfig.spec.json"
    },
    {
      "project": "e2e/tsconfig.e2e.json"
    }
  ],
  "test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "css",
    "component": {
      "inlineStyle": true,
      "inlineTemplate": true,
      "flat": true,
      "spec": false
    }
  }
}

如果您的AccountManager被Spring知道。在类上添加注释,如@Component

由于我不是这种方式的Spring-boot用户,我在这里找到:How to get bean using application context in spring boot如何以与我使用的方式不同的方式获取ApplicationContext

答案 1 :(得分:0)

要创建AccountManager的bean,请执行以下操作:

@Bean
public AccountManager accountManager() {
    return new AccountManager();
}

答案 2 :(得分:0)

如果您想在课堂上进行配置,可以按照以下步骤进行配置。

@Configuration
public class AppConfig {
   @Bean 
public AccountManager accountManager() {
    return new AccountManager();
  }
}

或者如果你想使用xml那么

<beans>
   <bean id = "accountManager" class = "packageName.AccountManager" />
</beans>

然后您可以在课程中使用它,如下所示。

@Autowired
AccountManager accountManager ;