温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用SpringBoot怎么对IOC容器中注入的Bean进行获取

发布时间:2021-01-28 10:48:28 来源:亿速云 阅读:360 作者:Leah 栏目:编程语言

使用SpringBoot怎么对IOC容器中注入的Bean进行获取?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一: 注入一个TestUtils类

package com.shop.sell.Utils;  import com.shop.sell.dto.CartDTO;  import org.springframework.context.annotation.Bean;  import org.springframework.context.annotation.Configuration;  @Configuration  public class TestUtils {    @Bean(name="testDemo")    public CartDTO said() {      CartDTO cartDTO = new CartDTO();      cartDTO.setProductID(789);      cartDTO.setProductQuantity(10);      return cartDTO;    }  }

    二: 创建一个获取bean的公共类

package com.shop.sell.Utils;  import org.springframework.beans.BeansException;  import org.springframework.context.ApplicationContext;  import org.springframework.context.ApplicationContextAware;  import org.springframework.stereotype.Component;  @Component  public class SpringUtil implements ApplicationContextAware{    private static ApplicationContext applicationContext;    @Override    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {      if(SpringUtil.applicationContext == null) {        SpringUtil.applicationContext = applicationContext;      }    }    public static ApplicationContext getApplicationContext() {      return applicationContext;    }    public static Object getBean(String name){      return getApplicationContext().getBean(name);    }    public static <T> T getBean(Class<T> clazz){      return getApplicationContext().getBean(clazz);    }    public static <T> T getBean(String name,Class<T> clazz){      return getApplicationContext().getBean(name, clazz);    }  }

三: 在控制器中获取bean测试结果

package com.shop.sell.controller;  import com.shop.sell.Utils.ResultVOUtil;  import com.shop.sell.Utils.SpringUtil;  import com.shop.sell.VO.ProductInfoVO;  import com.shop.sell.VO.ProductVO;  import com.shop.sell.VO.ResultVO;  import com.shop.sell.dataobject.ProductCategory;  import com.shop.sell.dataobject.ProductInfo;  import com.shop.sell.dto.CartDTO;  import com.shop.sell.from.OrderForm;  import com.shop.sell.service.CategoryService;  import com.shop.sell.service.ProductService;  import org.springframework.beans.BeanUtils;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.context.ApplicationContext;  import org.springframework.web.bind.annotation.GetMapping;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RestController;  import java.util.ArrayList;  import java.util.Arrays;  import java.util.List;  /**   * 买家商品   */  @RestController  @RequestMapping("/buyer/product")  public class BuyerProductController {    private static ApplicationContext applicationContext;    @Autowired    private ProductService productService;    @Autowired    private CategoryService categoryService;    @GetMapping(value = "/list")    public CartDTO list(){      CartDTO cartDTO = (CartDTO) SpringUtil.getBean("testDemo");      return cartDTO;    }  }

看完上述内容,你们掌握使用SpringBoot怎么对IOC容器中注入的Bean进行获取的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI