首页 > 解决方案 > 如何将xml bean适配到spring boot

问题描述

我有一个用 XML 编写的拦截器:

<bean class ="com.packt.webstore.interceptor.AuditingInterceptor"/> 
<bean class ="com.packt.webstore.interceptor.PromoCodeInterceptor" > 
    <property name="promoCode" value ="OF3RTA"/> 
    <property name="errorRedirect" value="invalidPromoCode"/> 
    <property name ="offerRedirect" value ="products"/> 
</bean >

我如何在 Spring Boot 中编写相同的内容?我试过这个:

@Bean
PromoCodeInterceptor promoCodeInterceptor() {
    PromoCodeInterceptor promoCodeInterceptor = new PromoCodeInterceptor();
    promoCodeInterceptor.setPromoCode("OF3RTA");
    promoCodeInterceptor.setErrorReidect("invalidPromoCode");
    promoCodeInterceptor.setOfferRedirect("products");
    return promoCodeInterceptor;
}

但它不起作用。

///编辑

而这个呢?

<bean id="productValidator" 
class="com.packt.webstore.validator.ProductValidator">
  <property name="springValidators"> 
    <set> 
       <ref bean = "unitsInStockValidator"/> 
    </set > 
  </property> 
 </bean >

<bean id ="unitsInStockValidator" class 
="com.packt.webstore.validator.UnitsInStockValidator"/>

这段代码好吗?

@Bean
public ProductValidator productValidator() {
ProductValidator productValidator = new ProductValidator();
productValidator.setSpringValidators(unitsInStockValidator());
return productValidator;
}

@Bean
public UnitsInStockValidator unitsInStockValidator() {
  UnitsInStockValidator unitsInStockValidator = new UnitsInStockValidator();
  return unitsInStockValidator;
}

标签: javaspring

解决方案


@Bean注释仅在标有@Configuration. 创建新类并将您的 bean 定义放入其中

@Configuration
public class MyConfig {
    @Bean
    public PromoCodeInterceptor promoCodeInterceptor() {
        PromoCodeInterceptor promoCodeInterceptor = new PromoCodeInterceptor();
        promoCodeInterceptor.setPromoCode("OF3RTA");
        promoCodeInterceptor.setErrorReidect("invalidPromoCode");
        promoCodeInterceptor.setOfferRedirect("products");
        return promoCodeInterceptor;
    }
}

推荐阅读