关于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;@...
·
一: 注入一个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测试结果
更多推荐
已为社区贡献2条内容
所有评论(0)