- 博客(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 665
原创 事务还未提交,消息消费过快
需求,新创建订单后需要往消息队列上发一条信息,消费者收到这条消息后需要根据订单号查询订单,结果测试时发现根据订单号查出的数据为空,而订单表已经有了数据???刚开始是以为创建订单发送消息过早,没有插进数据就发了消息,检查代码,发现不是。看见代码上面加了事务,那就是事务还没有提交,消费者已经开始消费了消息,这个时候当然查不到数据解决方案一:当创建事务提交后才开始提交事务解决方案二:消费消息时,如果查不出数据,进行重试解决方案三:发送延时消息建议用第一和第二个解决方案...
2021-07-02 17:53:48 1176 1
原创 springboot+mybatis配置多数据源
两个配置类建两个多数据源配置@Configuration//指定哪个包下面的接口使用xxxSqlSessionFactory@MapperScan(basePackages = {"aaa.mapper"}, sqlSessionFactoryRef = "aaaSqlSessionFactory")public class InquiryDataSourceConfig { @Primary //主数据源必须 @Bean(name = "aaaDataSource"
2021-06-02 16:49:58 225
原创 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 201
原创 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 459
原创 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 178
原创 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 3473 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 655
原创 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 477
原创 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 814
原创 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 173
原创 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 565
原创 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 196
原创 使用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 2821
原创 解决select2在模态框上无法获取焦点导致ie无法输入中文bug
$.fn.modal.Constructor.prototype.enforceFocus = function(){};
2020-04-13 09:52:11 292
原创 微服务--客户端发现与服务端发现的优缺点
客户端发现与服务端发现的优缺点客户端发现(eureka)优点:简单直接,不需要代理的介入,知道客户端所有的直接地址,缺点:需要自己实现逻辑,挑出服务服务端发现(zookeeper,nginx,kubernetes)1:A服务找B服务只需要找代理发请求即可,不需要实现逻辑2:B服务对A服务隐藏不可见...
2019-12-13 16:01:32 1151
原创 linux搭建apache虚拟主机
为什么要搭建虚拟主机?apache默认不需要虚拟主机是可以正常访问的,虚拟主机主要是解决多个域名访问的问题。 比如你的站点要配置多个域名,可以通过虚拟主机实现,如果只是一个域名,就不需要配置虚拟主机了步骤1查看是否开启了httpd服务2.apache配置虚拟主机的方式有好几种,这里使用的是基于同一IP地址的虚拟主机不同域名的配置,如下图先在hosts文件中配置同一IP的两个域名一.w...
2019-08-21 16:08:17 396
原创 springBoot配置全局拦截器打印访问者的IP地址
springBoot配置全局拦截器打印访问者的IP地址自定义拦截器继承HandlerInterceptorAdapter 类 @Component public class ResourceInterceptor extends HandlerInterceptorAdapter { private static final String USER_A...
2019-08-08 17:34:04 2846 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 2737 1
原创 java从项目里下载excel模板
从本地项目中下载项目模版 @RequestMapping(value = "/downloadExcelByName", method = RequestMethod.GET)public void downloadExcelByName(String fileName, HttpServletRequest request, HttpServletResponse response)...
2019-08-08 17:17:51 3321 2
原创 log4j2配置
@log4j2日志等级:All:最低等级的,用于打开所有日志记录. Trace:是追踪,就是程序推进一下. Debug:指出细粒度信息事件对调试应用程序是非常有帮助的.Info:消息在粗粒度级别上突出强调应用程序的运行过程.Warn:输出警告及warn以下级别的日志.Error:输出错误信息日志.Fatal:输出每个严重的错误事件将会导致应用程序的退出的日志.OFF:最高等...
2019-08-08 17:03:38 141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人