自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 aop 获取指定传参的字段值,防止用户频繁点击

1、先自定义一个注解@Documented@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface RequestDelay { /** * 用户id参数 * 不能为空 */ String userId();}2、注解的使用指定userId 为参数aa里面的userId字段@PostMapping("/xx/xx") @RequestD

2021-07-21 11:09:15 648

原创 事务还未提交,消息消费过快

需求,新创建订单后需要往消息队列上发一条信息,消费者收到这条消息后需要根据订单号查询订单,结果测试时发现根据订单号查出的数据为空,而订单表已经有了数据???刚开始是以为创建订单发送消息过早,没有插进数据就发了消息,检查代码,发现不是。看见代码上面加了事务,那就是事务还没有提交,消费者已经开始消费了消息,这个时候当然查不到数据解决方案一:当创建事务提交后才开始提交事务解决方案二:消费消息时,如果查不出数据,进行重试解决方案三:发送延时消息建议用第一和第二个解决方案...

2021-07-02 17:53:48 1143 1

原创 springboot+mybatis配置多数据源

两个配置类建两个多数据源配置@Configuration//指定哪个包下面的接口使用xxxSqlSessionFactory@MapperScan(basePackages = {"aaa.mapper"}, sqlSessionFactoryRef = "aaaSqlSessionFactory")public class InquiryDataSourceConfig { @Primary //主数据源必须 @Bean(name = "aaaDataSource"

2021-06-02 16:49:58 219

原创 jenkins 部署springboot项目脚本 (测试用)

#!/bin/bashJAR_NAME=health_user.jar SERVER_NAME=health-user # 源jar路径 #demo 项目目录 #target 打包生成jar包的目录 JAR_PATH=/var/lib/jenkins/workspace/$SERVER_NAME/targetfunction killproject(){#没有用 ps -ef | grep jar包名 来查进程id,而是通过端口号来查的 project_pid=$(netstat -

2021-04-23 11:21:36 189

原创 jacksonUtil工具类

public class JsonUtil { private JsonUtil() { } public static final ObjectMapper objectMapper = new ObjectMapper(); static { init(objectMapper); } public static void init(ObjectMapper objectMapper) { objectMappe..

2021-04-23 11:17:34 444

原创 jenkins 构建springboot项目 测试用 非docker

#!/bin/bashSERVER_NAME=health-user-devPORT=26019源jar路径#demo 项目目录 #target 打包生成jar包的目录 JAR_PATH=/var/lib/jenkins/workspace/$SERVER_NAME/targetfunction killproject(){#没有用 ps -ef | grep jar包名 来查进程id,而是通过端口号来查的 project_pid=$(netstat -lnp | grep $PORT

2021-04-07 10:51:57 167

原创 mybatis 拦截器 给所有表的sql增删改查操作加上某个字段,配合springboot

mybatis 拦截器有个需求需要对所有表新增一个字段resource_mark,来区分环境,但代码已经开发好,一个个添加麻烦,并且每个表都会有这个字段。解决方法:mybatis拦截器@Configurationpublic class MyBatisConfig { private final static Logger logger = LoggerFactory.getLogger(MyBatisConfig.class); //设计到的表,在配置文件配置,为空则代表全部

2021-01-07 14:40:02 3394 4

原创 gateway解决跨域问题

@Slf4j@Component@WebFilter(filterName = “CorsFilter”, urlPatterns = “/**”)public class CorsFilter implements Filter {private static final String DEFAULT_HEADER = "origin, x-requested-with, accept, access-control-allow-origin, authorization, content-typ

2020-12-09 10:53:22 646

原创 springboot自定义注解实现对前段时间格式的校验

一,先定义一个注解@Target({ElementType.FIELD, ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = DateTimeValidator.class)public @interface DateTime { String message() default "格式错误"; String[] format() default "yyyy-MM-

2020-11-03 14:02:00 464

原创 mybatis-generator 1.4.0最新版本。自动生成代码,不生成example

不生成example类,只生成一些基本的方法给我们使用配置1:安装maven环境<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version>

2020-10-22 17:38:33 805

原创 spring指定初始化加载方法和DestroyMethod

方式一使用 initMethod@Configuration@ComponentScan(value = {“com.alibaba.cola”)public class ColaConfig {@Bean(initMethod = "init")public SpringBootstrap bootstrap() { SpringBootstrap bootstrap = new SpringBootstrap(); return bootstrap;}}public

2020-10-12 11:29:48 165

原创 springboot 校验工具类

springboot 校验工具类public class ValidatorUtils { private static Validator validator; static { validator = Validation.buildDefaultValidatorFactory().getValidator(); } /** * 校验对象 * @param object 待校验对象 * @param groups 待校验的组 * @thro

2020-09-22 22:03:49 552

原创 freemarker 导出word工具类

freemarker 导出word工具类import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.util.ResourceUtils;imp

2020-08-25 12:01:20 189

原创 使用rabbitmq实现短信验证码的的发送

短信生产者,使用rabbitmq发送消息,达到应用的解耦,采用直连模式需要指定一个routingkey引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>配置rabbitmq文件server.port=8777spring.r

2020-06-27 01:35:35 2793

原创 线程状态

线程状态

2020-05-14 16:38:35 83

原创 解决select2在模态框上无法获取焦点导致ie无法输入中文bug

$.fn.modal.Constructor.prototype.enforceFocus = function(){};

2020-04-13 09:52:11 277

原创 redis搭建集群

!

2020-01-13 16:40:06 95

原创 微服务--客户端发现与服务端发现的优缺点

客户端发现与服务端发现的优缺点客户端发现(eureka)优点:简单直接,不需要代理的介入,知道客户端所有的直接地址,缺点:需要自己实现逻辑,挑出服务服务端发现(zookeeper,nginx,kubernetes)1:A服务找B服务只需要找代理发请求即可,不需要实现逻辑2:B服务对A服务隐藏不可见...

2019-12-13 16:01:32 1133

原创 linux搭建apache虚拟主机

为什么要搭建虚拟主机?apache默认不需要虚拟主机是可以正常访问的,虚拟主机主要是解决多个域名访问的问题。 比如你的站点要配置多个域名,可以通过虚拟主机实现,如果只是一个域名,就不需要配置虚拟主机了步骤1查看是否开启了httpd服务2.apache配置虚拟主机的方式有好几种,这里使用的是基于同一IP地址的虚拟主机不同域名的配置,如下图先在hosts文件中配置同一IP的两个域名一.w...

2019-08-21 16:08:17 380

原创 springBoot配置全局拦截器打印访问者的IP地址

springBoot配置全局拦截器打印访问者的IP地址自定义拦截器继承HandlerInterceptorAdapter 类 @Component public class ResourceInterceptor extends HandlerInterceptorAdapter { private static final String USER_A...

2019-08-08 17:34:04 2824 1

原创 将Map中的key由下划线转换为驼峰

将Map中的key由下划线转换为驼峰public static Map<String, Object> formatHumpName(Map<String, Object> map) { Map<String, Object> newMap = new HashMap<String, Object>(); Iterator&...

2019-08-08 17:25:57 2718 1

原创 java从项目里下载excel模板

从本地项目中下载项目模版 @RequestMapping(value = "/downloadExcelByName", method = RequestMethod.GET)public void downloadExcelByName(String fileName, HttpServletRequest request, HttpServletResponse response)...

2019-08-08 17:17:51 3300 2

原创 log4j2配置

@log4j2日志等级:All:最低等级的,用于打开所有日志记录. Trace:是追踪,就是程序推进一下.   Debug:指出细粒度信息事件对调试应用程序是非常有帮助的.Info:消息在粗粒度级别上突出强调应用程序的运行过程.Warn:输出警告及warn以下级别的日志.Error:输出错误信息日志.Fatal:输出每个严重的错误事件将会导致应用程序的退出的日志.OFF:最高等...

2019-08-08 17:03:38 125

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除