注意哦 :仔细查看上面的项目结构 创建相应的文件夹xml
这里也会出现爆红 , 后面会自己消失
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/spring.xml</param-value></init-param><load-on-startup>1</load-on-startup><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>实体类- @Data 是lombok的注解
java
/** * @author : look-word * 2022-07-17 10:12 **/@Datapublic class Product implements Serializable {private Integer id;private String product_name;private Integer stock;private Integer version;}Orderhighlighter- php
/** * @author : look-word * 2022-07-17 10:12 **/@Datapublic class Order implements Serializable {private String id;private Integer pid;private Integer userid;}持久层ProductMapperjava
@Mapper@Componentpublic interface ProductMapper {// 查询商品(目的查库存)@Select("select * from product where id = #{id}")Product getProduct(@Param("id") int id);// 减库存@Update("update product set stock = stock-1 where id = #{id}")int reduceStock(@Param("id") int id);}OrderMapperjava
@Mapper@Componentpublic interface OrderMapper {// 生成订单@Insert("insert into `order` (id,pid,userid) values (#{id},#{pid},#{userid})")int insert(Order order);}serviceProductServicejava
/** * @author : look-word * 2022-07-17 10:28 **/public interface ProductService {// 扣除库存void reduceStock(Integer id) throws Exception;}ProductServiceImpljava
/** * @author : look-word * 2022-07-17 10:29 **/@Transactional@Servicepublic class ProductServiceImpl implements ProductService {@Resourceprivate ProductMapper productMapper;@Resourceprivate OrderMapper orderMapper;@Overridepublic void reduceStock(Integer id) throws Exception {// 查询商品库存Product product = productMapper.getProduct(id);if (product.getStock() <= 0) {throw new RuntimeException("库存不足");}// 减库存int i = productMapper.reduceStock(id);if (i == 1) {Order order = new Order();order.setId(UUID.randomUUID().toString());order.setUserid(1);order.setPid(id);Thread.sleep(500);orderMapper.insert(order);} else {throw new RuntimeException("扣除库存失败");}}}controllerjava/** * @author : look-word * 2022-07-17 10:12 **/@RestControllerpublic class ProductAction {@Resourceprivate ProductService productService;@GetMapping("product/reduce/{id}")private Object reduce(@PathVariable Integer id) throws Exception {productService.reduceStock(id);return "ok";}}启动测试- 点击右侧的maven
还记得我们在pom.xml配置的tomcat的插件吗 , 我们配置的意思是打包(package)之后会自动运行测试
在执行打包命令之前 , 先执行clean命令
执行package命令
- 浏览器访问
http://localhost:8001/product/reduce/1
推荐阅读
- 老人临死前几小时有哪些征兆?
- 包粽子糯米要泡多长时间?
- 微软|1MHz频率的CPU跑Win7 启动7个半小时后果断蓝屏
- 招聘|除了公务员,这3个岗位更适合女生报考,转正有编制!
- 公路|新疆独库公路变“堵哭公路” 100公里走8小时:自驾游暴增、民宿近2W一晚
- 美媒:拜登哈里斯即将发表演讲-拜登2小时后发表新总统上任演讲
- 丰巢柜滞留多久要收费?
- 高三女生写13个对不起后自杀-女生写13个对不起
- 河南|深圳某工厂员工,刚进厂两个小时就自离,老板当场发火:气死我了
- 高三女生写13个对不起后自杀-高中学生压力大自残怎么办
