互联网框架day19(mq 秒杀)

在这里插入图片描述
1.4成功信息的展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package cn.tedu.seckill.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.jt.common.pojo.Seckill;

import cn.tedu.seckill.service.SecService;

@RestController
@RequestMapping("/seckill/manage")
public class SecController {
	@Autowired
	private SecService secService;
	//查询可以秒杀的所有商品list
	@RequestMapping("list")
	public List<Seckill> queryAllList(){
		return secService.queryAllList();
	}
	//根据商品id值访问表格获取一个具体的商品信息
	@RequestMapping("datail")
	public Seckill queryOne(Integer seckillId){
		return secService.queryOne(seckillId);
	}
	
}

package cn.tedu.seckill.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jt.common.pojo.Seckill;

import cn.tedu.seckill.mapper.SecMapper;

@Service
public class SecService {
	@Autowired
	private SecMapper secMapper;
	public List<Seckill> queryAllList() {
		return secMapper.selectAll();
	}

	public Seckill queryOne(Integer seckillId) {
		return secMapper.selectOneById(seckillId);
	}

}

package cn.tedu.seckill.mapper;

import java.util.List;

import com.jt.common.pojo.Seckill;

public interface SecMapper {

	List<Seckill> selectAll();

	Seckill selectOneById(Integer seckillId);

}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.tedu.seckill.mapper.SecMapper">
	<select id="selectAll" resultType="Seckill">
		select * from seckill;
	</select>
	<select id="selectOneById" parameterType="int"
	 resultType="Seckill">
	 	select * from seckill where seckill_id=#{seckillId};
	 </select>
</mapper>
package cn.tedu.seckill.config;

public class RabbitmqNameUtils {
	public static final String queueName="seckillq"; 
	public static final String exName="seckillEx"; 
	public static final String routingKey="seckill"; 
}

package cn.tedu.seckill.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * 扫描范围加载 在配置内容中准备多个
 * 需要的bean对象
 * @author 在路上
 *
 */
@Configuration
public class SeckillConfig {
	//内存的队列queue对象
	@Bean
	public Queue queue01(){
		return new Queue(RabbitmqNameUtils.queueName, true, false, false,null);
	}
	//内存的交换机对象
	@Bean
	public DirectExchange ex01(){
		return new DirectExchange(RabbitmqNameUtils.exName, 
				false, false,null);
	}
	//绑定关系对象
	@Bean
	public Binding bind01(){
		//将seckill去 seckillex 绑定 seckill路由
		return BindingBuilder.bind(queue01()).to(ex01()).with(RabbitmqNameUtils.routingKey);
	}
}

package cn.tedu.rabbitmq.consumer;

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

import cn.tedu.seckill.config.RabbitmqNameUtils;

@Component
public class Consumer01 {
	/*
	 * 自动配置中实现了连接对象的创建
	 * @rabbitlister
	 * 生成一个内存中的消费对象,根据绑定队列名称
	 * 实现各种绑定的关系,自动从队列接受监听信息,转给
	 * 当前类的对象,实现对象调用consumer
	 */
	//编写消费的逻辑代码
	@RabbitListener(queues=RabbitmqNameUtils.queueName)
	public void consume(String msg){
		//msg就是消息队列中保存的消息body
		System.out.println("1"+msg);	
	}
}

在这里插入图片描述
秒杀数据
在这里插入图片描述
在这里插入图片描述

2.秒杀核心逻辑
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值