首页 > 开发 > Java > 正文

关于SpringBoot获取IOC容器中注入的Bean(推荐)

2024-07-14 08:40:49
字体:
来源:转载
供稿:网友

一: 注入一个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;   } } 

四: 使用postman测试结果

spring,boot,ioc容器,bean

总结

以上所述是小编给大家介绍的关于SpringBoot获取IOC容器中注入的Bean(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表