關(guān)于SpringBoot獲取IOC容器中注入的Bean(推薦)
更新時間:2018年05月15日 10:31:52 作者:noodles1994
本文通過實例代碼給大家詳解了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;
}
}
二: 創(chuàng)建一個獲取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測試結(jié)果
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測試結(jié)果

總結(jié)
以上所述是小編給大家介紹的關(guān)于SpringBoot獲取IOC容器中注入的Bean(推薦),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

