@compent 结合 @PostConstruct 加载数据字典

@Compent spring组件 // org.springframework.stereotype.Component
@PostConstruct java注解 //javax.annotation.PostConstruct

@PostConstruct在项目中的用处
1.spring项目加载数据字典
@PostConstruct注解的方法在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为一些数据的常规化加载,比如数据字典之类的。

以例子说明

  • 实际项目中可以在PostConstruct执行时候将数据字典保存到redis或其他缓存中,设置过期时间,项目启动全部获取;其他地方调用的时候直接可以从缓存中获取

/**
 * @description 构造数据字典
 */
@Component
public class DataDict {
	
	private Logger logger = LoggerFactory.getLogger(this.getClass());
	
	public DataDict() {
		logger.info("--------数据字典构造方法---");
	}
	
	// 这个就不列出来了,就是一个订单的service
	@Autowired
	private SdOrderService sdOrderService;
	
	private SdOrder orderTest;
	
	public SdOrder test() {
		return orderTest;
	}
	
	@PostConstruct
	public void init() {
		logger.info("--------@PostConstruct的方法---");
		String orderNo = "SD201909111129308026";
		// 根据订单号查询数据看数据
		orderTest = sdOrderService.selectByOrderNo(orderNo);
	}
}


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring.xml","classpath:spring-mybatis.xml","classpath:spring-rabbitmq.xml"})
@WebAppConfiguration
public class EverythingTest {
	private Logger logger = LoggerFactory.getLogger(this.getClass());
    @Autowired
	private DataDict dataDict;
	
	@Test           
	public void testPostConstruct() {
		SdOrder order = dataDict.test();
		logger.info("----订单>:{}",order);
	}
}

// 打印结果
// [INFO][][main][2019-09-20 16:22:05] andy.bean.po.DataDict.<init>(DataDict.java:24) [--------数据字典构造方法---]

// [INFO][][main][2019-09-20 16:22:22] andy.bean.po.DataDict.init(DataDict.java:38) [--------@PostConstruct的方法---]

// [INFO][][main][2019-09-20 16:23:23] com.launch.sharedevice.EverythingTest.testPostConstruct(EverythingTest.java:63) [----订单>:SdOrder(userId=202, orderNo=SD201909111129308026, costRuleId=123, deviceNo=989820000212, price=0.01, currencyType=0, payFrom=1, payItem=3, payStatus=0, payTime=null, thirdTradeNo=null, number=1)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值