Spring Boot

Spring Boot + Mybatis Plus 整合——双剑合璧

一笑奈何 提交于 2020-11-19 02:51:20
前言 我前面为了自己的业务开发也写了一套SpringBoot+mybatis整合的自动代码生成工具,并实现了 lombok的使用 ,与 swagger 的整合,但是因为主要只考虑了,自己的编码习惯和业务需求,有很多不支持与问题,后续将持续完善。地址: 自动生成三层代码URL 今天就说说Spring Boot + Mybatis Plus 整合——双剑合璧: POM配置: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency>

nginx 500错误分析

非 Y 不嫁゛ 提交于 2020-11-18 20:03:39
在春节时浅橙的接口nginx上偶尔会报500的错误,但tomcat应用日志里找不到什么东西。后来想到有可能不是应用报的错,而是在应用处理之前tomcat就报错了,于是在spring boot中加上了tomcat的访问日志。几天后,发现了这个错 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@4542552a rejected from java.util.concurrent.ThreadPoolExecutor@a3464b4[Running, pool size = 10 , active threads = 10 , queued tasks = 0 , completed tasks = 43433 ] 看起来是线程池的问题,而且是业务逻辑进入处理之前出的问题,业务逻辑的总入口是 * 浅橙请求我方api接口封装 * * @Description * * @author <a href="changjunhui8173@adpanshi.com"

漫画:程序员太难了!为什么 Java 中的 main 方法必须是它?

落爺英雄遲暮 提交于 2020-11-18 17:57:22
作者 | 漫话编程 来源 | 漫话编程(ID:mhcoding) 在 Java 中,想必所有人都不会对 main 方法感到陌生,main 方法是 Java 应用程序的入口方法。程序运行时,要执行的第一个方法就是 main 方法。 在使用 Java 写下第一个 hello world 的时候,我们需要创建一个 main 方法,当我们使用 Spring Boot 启动一个 web 应用的时候,我们也同样需要一个 main 方法。 当我们在 Intellij IDEA 中想要创建 main 方法的时候,只需要输入 psvm 就会自动帮忙创建一个 main 方法: 我们得到一个 main 方法后,不知道你有没有发现,任何时候,我们要创建的 main 方法的形式都是一样的: public static void main(String[] args) { } 首先都是 public 的、都是 static 的,返回值都是 void,方法名都是 main,入参都是一个字符串数组。 以上的方法声明中,唯一可以改变的的部分就是方法的参数名,你可以把 args改成任意你想要使用的名字。 当然,main 方法还可以写成以下形式,不过其实没啥区别: public static void main(String... args) { } 那么,不知道大家有没有想过,为什么 main 方法必须得是

Springboot的拦截器HandlerInterceptor功能

我的梦境 提交于 2020-11-18 14:42:16
1、在Web请求处理的过程中,拦截器是服务器端进行数据处理的最后一道屏障,可以将所有用户请求的信息在拦截器中进行验证。在SpringBoot中可以继续使用SpringMVC所提供的拦截器进行处理。 1 package com.demo.config; 2 3 import java.lang.reflect.Method; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 8 import org.springframework.web.method.HandlerMethod; 9 import org.springframework.web.servlet.HandlerInterceptor; 10 import org.springframework.web.servlet.ModelAndView; 11 12 /** 13 * 14 * @author 实现拦截器接口 15 * 16 */ 17 public class MyInterceptor implements HandlerInterceptor { 18 19 long start = System.currentTimeMillis(); 20 21

springboot + rabbitmq 用了消息确认机制,感觉掉坑里了

六眼飞鱼酱① 提交于 2020-11-18 14:39:26
本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 最近部门号召大伙多组织一些技术分享会,说是要活跃公司的技术氛围,但早就看穿一切的我知道,这 T M 就是为了刷 KPI 。不过,话说回来这的确是件好事,与其开那些没味的扯皮会,多做技术交流还是很有助于个人成长的。 于是乎我主动报名参加了分享,咳咳咳~ ,真的不是为了那点 KPI ,就是想和大伙一起学习学习! 这次我分享的是 springboot + rabbitmq 如何实现消息确认机制,以及在实际开发中的一点踩坑经验,其实整体的内容比较简单,有时候事情就是这么神奇,越是简单的东西就越容易出错。 可以看到使用了 RabbitMQ 以后,我们的业务链路明显变长了,虽然做到了系统间的解耦,但可能造成消息丢失的场景也增加了。例如: 消息生产者 - > rabbitmq服务器(消息发送失败) rabbitmq服务器自身故障导致消息丢失 消息消费者 - > rabbitmq服务(消费消息失败) 所以说能不使用中间件就尽量不要用,如果为了用而用只会徒增烦恼。开启消息确认机制以后,尽管很大程度上保证了消息的准确送达,但由于频繁的确认交互, rabbitmq 整体效率变低,吞吐量下降严重,不是非常重要的消息真心不建议你用消息确认机制。 下边我们先来实现

java b2b2c开源商城系统源码

北慕城南 提交于 2020-11-18 04:17:02
网址: www.hulianrongyun.com,本人QQ:4407509,有问题可以联系本人 最近公司要开发商城,让我多方咨询,最后看了很多,要不就是代码、表字段注释不全,要不就是 bug多,要么就是文档缺少,最后决定自己开发一套商城。 下面是开发的一些心得体会,权且记录下来,给自己做个记录把。 本人 QQ:4407509,有问题可以联系本人 之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。 由于 Java 是开源的,最近几年 Hadoop 等开源产品越来越成熟,而且是基于 Java 的,所以最终选择 Java 最后后台开发语言,现在前端是自己的前端工程师写的 JS,后期准备改成前端是 PHP ,中间是 Go 语言,后台服务器是 JAVA,因为 PHP 写前端很厉害,不过这个也是后期了。 控制层:这几年 SpringBoot 发展的非常火,而且开发效率比较高, SpringMVC 系列已经完全没落了,所以现阶段选择 SpringBoot 。 视图层: 这个我个人认为哪一个都差不多, jsp 、 freemarker 也好,最终都是生成的 html 。 数据库 设计: 1、关键的一个是绝对不能有外键强关联 , 我看到类似用 hibernate 、 SpringData 产品的一些公司,全部都是强关联,那你以后想删除一些数据,那真是噩梦的

java springmvc+springboot+mybatis+restful b2b2c电子商城

守給你的承諾、 提交于 2020-11-18 03:50:50
电子商务平台源码请加企鹅求求:一零三八七七四六二六。用java实施的电子商务平台太少了,使用spring cloud技术构建的b2b2c电子商务平台更少,大型企业分布式互联网电子商务平台,推出PC+微信+APP+云服务的云商平台系统,其中包括B2B、B2C、C2C、O2O、新零售、直播电商等子平台。 Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码请加企鹅求求:一零三八七七四六二六 技术解决方案 开发语言: java、j2ee 数据库:mysql JDK支持版本: JDK1.6、JDK1.7、JDK1.8版本 核心技术:分布式、云服务、微服务、服务编排等。 核心架构: 使用Spring Cloud分布式微服务云架构进行服务化开发,所有模块功能完全解耦,提供服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等。 技术列表: Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion Spring Cloud Bus 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署 Eureka 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

Spring Boot 配置文件

核能气质少年 提交于 2020-11-17 11:13:53
@[TOC] 在Spring Boot中,配置文件有两种不同的格式,一个是==properties==,另一个是==yaml==。properties文件比较常见相对于properties而言,yaml更加简洁明了,而且使用的场景也更多,很多的开源项目都是使用yaml进行配置。除了简洁,yaml还有另外一个特点,就是yaml中的数据是有序的,properties中的数据是无序的。在一些需要路径匹配的的配置中,顺序就显得尤为重要,此时我们一般采用yaml。 一、properties 1.配置文件的默认位置,及执行优先级顺序 首先,当我们创建一个Spring Boot工程时,默认resources目录下就有一个appliction.properties文件,可以在appliction.properties文件中进行项目配置,但是这个文件并非唯一的文件,在Spring Boot中,一共有4个地方可以存放application.properties文件。 1.当前项目根目录下的config目录下 2.当前项目的根目录下 3.resources目录下的config目录下 4.resources目录下 按如上顺序,四个配置文件的优先级依次降低。如下: 2.配置文件默认位置的修改 上面4个位置是默认位置,即Spring Boot启动,默认会从这四个位置按顺序去查找相关属性并加载。但是

spring-boot-plus项目配置文件(四)

前提是你 提交于 2020-11-17 07:12:47
spring-boot-plus项目配置文件 配置文件说明 配置说明 项目中配置文件主要使用yml格式 配置文件位置:spring-boot-plus\src\main\resources\config spring boot 配置分为公共配置:application.yml文件 项目中各个环境配置文件 application-dev.yml 开发环境 application-local.yml 本地环境 application-prod.yml 生成环境 application-test.yml 测试环境 application-uat.yml 用户验收测试 根据项目实际情况进行配置 配置文件与maven环境一一对应,对应的pom.xml文件 <!--MAVEN打包选择运行环境--> <!-- 1:local(默认) 本地 2:dev:开发环境 3:test 4:uat 用户验收测试 5.prod:生产环境 --> <profiles> <profile> <id>local</id> <properties> <profileActive>local</profileActive> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile>

Spring Boot Sample 014之spring-boot-error-controller

蹲街弑〆低调 提交于 2020-11-17 07:01:34
一、环境 Idea 2020.1 JDK 1.8 maven 二、目的 spring boot 异常处理controller实现方式。 gitHub地址: https://github.com/ouyushan/ouyushan-spring-boot-samples 三、步骤 3.1、点击File -> New Project -> Spring Initializer,点击next 3.2、选择Web依赖,选中Spring Web。可以选择Spring Boot版本,本次默认为2.2.6,点击Next 3.3、项目结构 四、添加文件 pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework