简体   繁体   English

如何将以下基于 xml 的 spring bean 转换为基于 Java 注释的 bean?

[英]How do i convert the following xml based spring bean to java annotation based beans?

 <bean id="string.message.service" class="com.ce.indiabringsService">
 <constructor-arg ref="com.ce.indiabrings.consumer" />
 <constructor-arg ref="com.ce.indiabrings.value.function" />
 </bean>

I want to convert this to java annotation based bean (@Bean).我想将其转换为基于 Java 注释的 bean (@Bean)。

  1. create a method in configuration class在配置类中创建方法
  2. Construct mentioned object and return.构造提到的对象并返回。
  3. Annotate the method with @Bean使用@Bean注释方法

@Bean
public com.ce.indiabringsService getindiabringsServiceBean(){
    return new com.ce.indiabringsService(consumerObj,functionObj);
}

You need to create a class with org.springframework.context.annotation @Configuration annotation.您需要使用org.springframework.context.annotation @Configuration注释创建一个类。

Then use @Bean annotation on a method and return appropriate bean object.然后在方法上使用 @Bean 注释并返回适当的 bean 对象。

@Bean
public com.ce.indiabringsService getMessageService(){
    return new com.ce.indiabringsService(com.ce.indiabrings.consumer,com.ce.indiabrings.value.functioncom.ce.indiabrings.consumer);
}

Hope this helps you out.希望这可以帮助你。

One more option多一个选择

   @Bean
public com.ce.indiabringsService getIndiabringsService(com.ce.indiabrings.consumer  
 consumerBean,com.ce.indiabrings.value.function functionBean){
 indiabringsService indiabringsServiceBean =new indiabringsService();
 indiabringsServiceBean.setConsumer(consumerBean);
 indiabringsServiceBean.setFunction(functionBean);
 return indiabringsServiceBean;
}

you can inject indiabringsService by using @Autowired .您可以使用@Autowired注入indiabringsService

for creating indiabringsService bean, Internally spring will automatically inject consumer and function beans while creating indiabringsService bean.为了创建indiabringsService bean,在创建indiabringsService bean时,spring内部会自动注入consumer和function bean。

@Configuration
public class MyConfigurationClass {
    @Bean
    public com.ce.indiabringsService getIndiaBringsService() {
        return new com.ce.indiabringsService(com.ce.indiabrings.consumer,com.ce.indiabrings.value.functioncom.ce.indiabrings.consumer);
    }
}

And then you can autowire it as follows:然后您可以按如下方式自动装配它:

@Autowired
private com.ce.indiabringsService myIndiaBringsService;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM