自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用自定义starter注入切面完成日志打印

1、自定义starter自定义starter的项目结构如下图:不需要主启动类,不需要test模块,不需要项目配置文件。MethodLog注解package com.zmy.starter.annocation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.

2021-03-03 21:32:20 428 1

原创 MyBatis-Plus的IPage分页total不正确问题

场景:执行了一条连接查询的sql语句,进行分页后,total不正确问题。如下图:分析:分页部分代码如下:String sql = searchSqlBuilderInstance.generateSql();Page page = new Page(commonSearchDTO.getPageAndTableInfo().getPageNum(),commonSearchDTO.getPageAndTableInfo().getPageSize());IPage<Map<Str

2021-02-25 14:21:19 4605 4

原创 idea中使用easy code

使用easy code配置mybatis plus模板。可根据个性化需求进行相应更改。1、安装插件settings->plugins->搜索easy code,安装下图插件。重启生效。2、配置模板2.1、新建分组mybatisplus2.2、添加各类文件内容如下。可根据具体需求自定义。entity##引入宏定义$!define##使用宏定义设置回调(保存位置与文件后缀)#save("/entity", ".java")##使用宏定义设置包后缀#setPac

2021-01-05 18:09:41 113

原创 @ConditionalOnClass编译问题

@ConditionOnClass的编译问题

2022-06-23 15:48:22 233

原创 activiti5基础和springboot整合

activiti5基础,springboot和activiti5进行整合使用。

2022-06-21 15:45:53 521

原创 Excel模板下载\数据导出

web程序excel模板下载及数据导出

2022-06-02 18:37:45 62

原创 idea的mapper.xml文件里写sql语句出现Tag name expected错误提示

原因是:xml文件的某些特殊字符是自动转义的, xml解析器会忽视CDATA中的内容

2022-06-02 16:45:15 307

原创 编程题目(三)使用栈计算字符串表达式的值

写一个函数,传入字符串表达式,返回表达式的结果,如传入"100+4*(30-100/5)",结果返回140(不能用JDK内置表达式求值和其它第三方框架)。

2022-06-02 16:38:13 187

原创 sql语句生成工具

完全出于兴趣,写了一个sql语句生成工具。项目的源码地址在github,github项目地址https://github.com/Zmyk/sql-generate-util,有兴趣的大佬可以看一下源码,欢迎大佬点评指导。使用示例如下:public class QuerySqlTest { @Test public void test01() throws Exception { List<Select> selects = Arrays.asList(

2022-03-03 17:13:19 3696

原创 spring-gateway网关聚合swagger实现多个服务接口切换

前提条件微服务已经集成了swagger,并且注册进了nacos。gateway配置package com.zmy.springcloud.config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.gateway.route.RouteL

2022-03-03 17:08:02 1008

原创 Validated校验

JavaWeb项目参数合法性校验目前Web项目校验参数合法性时,经常用到@Validated、@Valid等,下面总结下各种情况下的使用。情景1@Data@AllArgsConstructor@NoArgsConstructorpublic class TableColumnBO { @NotBlank(message = "表名不能为空") private String tableName; @NotBlank(message = "字段名不能为空") pri

2021-06-23 11:21:53 225

转载 @Transactional注解的失效场景

参考@Transactional注解的失效场景1、@Transactional 应用在非 public 修饰的方法上如果Transactional注解应用在非public 修饰的方法上,Transactional将会失效。之所以会失效是因为在Spring AOP 代理时,如上图所示 TransactionInterceptor (事务拦截器)在目标方法执行前后进行拦截,DynamicAdvisedInterceptor(CglibAopProxy 的内部类)的 intercept 方法或 JdkDy

2021-06-09 12:23:30 51

转载 MYSQL DATE_FORMAT函数

参考Wcschool功能DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。format可选值格式描述%a缩写星期名%b缩写月名%c月,数值%D带有英文前缀的月中的天%d月的天,数值(00-31)%e月的天,数值(0-31)%f微秒%H小时 (00-23)%h.

2021-05-28 13:57:55 281

原创 Linux手动安装nginx

本次以安装nginx-1.12.2为例1、安装nginx之前需要安装如下素材:2、安装第一步,安装依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel第二步,下载并安装nginx安装包(nginx官网:http://nginx.org/)# 下载wget http://nginx.org/download/nginx-1.12.2.tar.gz# 解压缩tar -zxvf linux-n.

2021-05-25 17:22:39 220 1

转载 Java日期格式化

日期转为指定格式字符串package org.maoge.common;import java.text.SimpleDateFormat;import java.util.Date;public class SimpleDateFormatDemo { public static void main(String[] args) { //默认输出格式 Date date=new Date(); System.out.println(date);//Fri Oct 27 16:56:3

2021-04-02 17:04:48 253

原创 面试编程题目(一)细菌总数计算

题目如图:第一题:import lombok.AllArgsConstructor;import lombok.Data;import java.util.Arrays;import java.util.Collections;import java.util.List;/** * @description: 细菌实体类 * @author: zhangmy * @Version: 1.0 * @create: 2021-03-30 11:23 **/@Data@AllAr

2021-04-02 00:03:56 104

原创 springboot项目使用maven打包,第三方jar问题

springboot项目使用maven package打包为可执行jar后,第三方jar会被打包进去吗?答案是肯定的。做了实验如下:第三方jar的项目结构及jar包结构如下:将上面的jar包安装到本地maven仓库后,在其他的springboot项目中引用该starter,过程如下:该springboot项目使用maven package打包为可执行jar包后,观察jar包结构:在META-INF中有一个MANIFEST.MF文件,描述了boot项目的一些属性。找到指定目录查看:

2021-04-01 23:54:52 347

转载 SpringBoot中的classpath

一句话总结:classpath 等价于 main/java + main/resources + 第三方jar包的根目录。下面详细解释。首先,classpath顾名思义,是编译之后项目的路径,而不是对源程序的路径描述。但是它与源程序的一些路径是相互对应的,存在映射关系。需要介绍一下package打包、build 之间的关系及特点:​1、 不管是build还是package,都不会把项目中使用的第三方jar包也一起打进去。build生成了如下的目录:2、由图可以看出,build将项目进行编译,m

2021-04-01 22:28:38 658

转载 Springboot 多模块启动Services

在IDEA开发工具快捷键Ctrl+Shift+A,输入services效果图在此services窗口显示所有的Spring boot 项目,方便项目启动、停止

2021-04-01 18:08:37 888

原创 记一次切面事务问题

场景:在spring aop的一个环绕增强方法中,多次修改数据库。首次尝试:在环绕增强方法上增加了注解@Transactional(rollbackFor = Exception.class)@Aspectpublic class StockManageAspect { @Transactional(rollbackFor = Exception.class) @Around("annotationPointcut()") public Object doAround(Pr

2021-04-01 17:55:03 267 1

原创 maven install时发布源码

在pom文件中添加如下插件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions&

2021-04-01 16:15:11 325

原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

扫描不到mapper.xml文件。检查mybatis.mapper-locations的配置路径是否正确。

2021-04-01 15:58:00 68

原创 SpringBoot中忽略实体类中的某个属性不返回给前端的方法

SpringBoot中忽略实体类中的某个属性不返回给前端的方法:使用Jackson的方式://第一种方式,使用@JsonIgnore注解标注在属性上,忽略指定属性public class PropertyDTO { @JsonProperty("disable") private Integer disable; @JsonProperty("placeholder") private String placeholder; //使用@JsonIgnore注解,忽略

2021-03-31 16:56:36 7273

原创 java开发插件

最近想要用java开发一个插件。前提插件使用idea开发,插件项目选择java项目,导出为jar包作为插件使用。使用处采用URLClassLoader加载器加载,反射调用。一个简单的插件调用处@Testpublic void test13() throws Exception { File file = new File("E:\\javaWorkSpace\\simple-plugin\\out\\artifacts\\simple_plugin_jar\\simple-plugin.

2021-03-26 18:53:34 1491

原创 SpringBoot

SpringBootSpringBoot自动配置包:spring-boot-autoconfigure1、启动器Springboot将所有的场景,定义为一个个启动器。需要什么功能,就导入什么启动器NameDescriptionspring-boot-starterCore starter, including auto-configuration support, logging and YAMLspring-boot-starter-activemqStarter

2021-03-24 11:27:26 60

原创 HashMap的get方法时间复杂度

源码:public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value;}final Node<K,V> getNode(int hash, Object key) { Node<K,V>[] tab; Node<K,V> first, e; int n; K k; if ((tab

2021-03-24 11:04:44 3503

原创 编程题目(二)

题目:给定一个数组和一个目标数值,判断数组中是否有两个数的和等于这个目标的数字第一种方式,最直接的想到了双层for循环,时间复杂度为O(n^2)Integer arr[] = {1, 2, 3, 4, 5};int global = 5;for (int i = 0; i < arr.length; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[j] == global - arr[i])

2021-03-24 10:38:30 62

原创 官网

spring API文档下载地址spring 中文文档

2021-03-17 19:18:49 39

原创 JDK1.8----ConcurrentHashMap的put方法源码

public V put(K key, V value) { return putVal(key, value, false); } /** Implementation for put and putIfAbsent */ final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPointerExc.

2021-03-15 23:33:01 148

原创 ArrayList扩容

实验代码: public void test01() { ArrayList<String> strings = new ArrayList<>(); for (int i = 0; i < 40; i++) { strings.add(String.valueOf(i + 1)); System.out.println("元素个数为:" + strings.size() + "\t容量为:" +

2021-03-10 11:09:35 76 1

转载 @Import注解

1、@Import注解须知@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中加入IOC容器的方式有很多种,@Import注解就相对很牛皮了,@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷@Import注解有三种用法2、@Import的三种用法@Import的三种用法主要包括:1、直接填class数组方式2、ImportSelector方式【重点】3、Impo

2021-03-05 15:40:05 6970 2

转载 spring.factories文件

在阅读spring-boot相关源码时,常常见到spring.factories文件,里面写了自动配置(AutoConfiguration)相关的类名,因此产生了一个疑问:“明明自动配置的类已经打上了@Configuration的注解,为什么还要写spring.factories文件?”这个话题需要从@SpringBootApplication注解开始说起。查看@SpringBootApplication源码,我们能看到继承的以下注解:@Target(ElementType.TYPE)@Retent

2021-03-03 22:54:47 499 1

原创 Springboot中@Aspect无法引入

解决方法:在pom文件中引入下面两个依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> <scope>test</scope> </dependency> <depende

2021-03-03 20:31:42 877 1

转载 关于@EnableConfigurationProperties 注解

先说作用:@EnableConfigurationProperties注解的作用是:使使用 @ConfigurationProperties 注解的类生效。说明:如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。说白了 @EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入。测试

2021-03-03 19:01:09 160 1

转载 MySql Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts‘

MySql Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’ 解决方法环境:linux,mysql5.5.21错误:Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’原因:同一个ip在短时间内产生太多(超过mysql数据库max_connection

2021-03-03 12:24:31 545

原创 SpringBoot中使用切面实现的日志记录

导入maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>定义注解InsertLog.java@Target(ElementType.METHOD)@Retention(RetentionPol

2021-03-01 10:20:20 551 1

原创 Java设计模式(五)----JDK动态代理

学习动态代理之前,先了解两个java.lang.reflect包下的类Proxy 类//该方法返回一个interfaces接口的代理类对象public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h) throws IllegalArgumentException InvocationHandler 接口//实现了该接口的类的对象,作为参数传

2021-02-25 18:43:13 30

原创 Java设计模式(四)----工厂模式

工厂模式简单工厂模式工厂方法模式抽象工厂模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构。一、简单工厂模式简单工厂模式中,一个工厂类处于对产品类实例化的中心位置上,它知道每一个产品,它决定哪一个产品类应当被实例化。这个模式的优点是允许客户端相对独立于产品创建的过程,并且在系统引入新产品的时候无须修改客户端,即在某种程度上支持“开-

2021-02-23 16:46:40 37

原创 Java设计模式(三)----单例模式

单例模式单例模式的主要作用是确保一个类只有一个实例存在。单例模式可以用在建立目录、数据库连接等需要单线程操作的场合,用于实现对系统资源的控制。由于Java语言的特点,使得在Java中实现单例模式通常有两种表现形式。饿汉式单例类:类加载时,就进行对象实例化;懒汉式单例类:第一次引用类时,才进行对象实例化。饿汉模式在类被加载时,静态变量m_instance会被初始化,此时类的私有构造函数会被调用,单例类的唯一实例就被创建出来了。单例类中一个最重要的特点是类的构造函数是私有的,从而避免外界利

2021-02-23 15:35:19 37 1

原创 Java设计模式(二)----设计原则

单一职责原则Single Responsibility Principle,简称SRP定义一个类,应当只有一个引起它变化的原因;即一个类应该只有一个职责。单一职责原则的优点有以下几个方面:1、降低类的复杂性;2、提高类的可读性;3、提高代码的可维护性和复用性;4、降低因变更引起的风险。里氏替换原则Liskov Substitution Principle,简称LSP定义所有引用基类的地方必须能透明地使用其子类对象。清晰明确地说明只要父类能出现的地方子类就..

2021-02-23 11:12:03 48

空空如也

空空如也

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

TA关注的人

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