- 博客(118)
- 收藏
- 关注

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

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

原创 使用自定义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
827
1
原创 编程题目(二)
题目:给定一个数组和一个目标数值,判断数组中是否有两个数的和等于这个目标的数字第一种方式,最直接的想到了双层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])
2024-11-26 09:21:03
307
2
转载 @Import注解
1、@Import注解须知@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中加入IOC容器的方式有很多种,@Import注解就相对很牛皮了,@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷@Import注解有三种用法2、@Import的三种用法@Import的三种用法主要包括:1、直接填class数组方式2、ImportSelector方式【重点】3、Impo
2024-11-26 09:20:46
13086
3
原创 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容量为:" +
2024-11-26 09:20:33
285
1
原创 SpringBoot中忽略实体类中的某个属性不返回给前端的方法
SpringBoot中忽略实体类中的某个属性不返回给前端的方法:使用Jackson的方式://第一种方式,使用@JsonIgnore注解标注在属性上,忽略指定属性public class PropertyDTO { @JsonProperty("disable") private Integer disable; @JsonProperty("placeholder") private String placeholder; //使用@JsonIgnore注解,忽略
2024-11-25 10:36:26
17810
1
原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
扫描不到mapper.xml文件。检查mybatis.mapper-locations的配置路径是否正确。
2024-11-25 10:36:17
247
转载 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
2024-11-25 10:35:50
1590
1
转载 关于@EnableConfigurationProperties 注解
先说作用:@EnableConfigurationProperties注解的作用是:使使用 @ConfigurationProperties 注解的类生效。说明:如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。说白了 @EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入。测试
2024-11-25 10:35:40
345
1
原创 Springboot中@Aspect无法引入
解决方法:在pom文件中引入下面两个依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> <scope>test</scope> </dependency> <depende
2024-11-25 10:35:29
1389
1
原创 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
2024-11-25 10:35:16
5522
2
转载 spring.factories文件
在阅读spring-boot相关源码时,常常见到spring.factories文件,里面写了自动配置(AutoConfiguration)相关的类名,因此产生了一个疑问:“明明自动配置的类已经打上了@Configuration的注解,为什么还要写spring.factories文件?”这个话题需要从@SpringBootApplication注解开始说起。查看@SpringBootApplication源码,我们能看到继承的以下注解:@Target(ElementType.TYPE)@Retent
2024-11-25 10:34:39
713
1
原创 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.
2024-11-25 10:34:25
1210
1
原创 SpringBoot
SpringBootSpringBoot自动配置包:spring-boot-autoconfigure1、启动器Springboot将所有的场景,定义为一个个启动器。需要什么功能,就导入什么启动器NameDescriptionspring-boot-starterCore starter, including auto-configuration support, logging and YAMLspring-boot-starter-activemqStarter
2024-11-25 10:34:08
978
1
原创 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.
2024-11-25 10:33:50
2669
1
原创 记一次切面事务问题
场景:在spring aop的一个环绕增强方法中,多次修改数据库。首次尝试:在环绕增强方法上增加了注解@Transactional(rollbackFor = Exception.class)@Aspectpublic class StockManageAspect { @Transactional(rollbackFor = Exception.class) @Around("annotationPointcut()") public Object doAround(Pr
2024-11-25 10:33:36
609
1
原创 maven install时发布源码
在pom文件中添加如下插件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions&
2024-11-25 10:33:13
925
1
转载 Springboot 多模块启动Services
在IDEA开发工具快捷键Ctrl+Shift+A,输入services效果图在此services窗口显示所有的Spring boot 项目,方便项目启动、停止
2024-11-25 10:33:00
1153
1
转载 SpringBoot中的classpath
一句话总结:classpath 等价于 main/java + main/resources + 第三方jar包的根目录。下面详细解释。首先,classpath顾名思义,是编译之后项目的路径,而不是对源程序的路径描述。但是它与源程序的一些路径是相互对应的,存在映射关系。需要介绍一下package打包、build 之间的关系及特点:1、 不管是build还是package,都不会把项目中使用的第三方jar包也一起打进去。build生成了如下的目录:2、由图可以看出,build将项目进行编译,m
2024-11-25 10:32:44
933
1
原创 springboot项目使用maven打包,第三方jar问题
springboot项目使用maven package打包为可执行jar后,第三方jar会被打包进去吗?答案是肯定的。做了实验如下:第三方jar的项目结构及jar包结构如下:将上面的jar包安装到本地maven仓库后,在其他的springboot项目中引用该starter,过程如下:该springboot项目使用maven package打包为可执行jar包后,观察jar包结构:在META-INF中有一个MANIFEST.MF文件,描述了boot项目的一些属性。找到指定目录查看:
2024-11-25 10:32:21
1638
1
原创 面试编程题目(一)细菌总数计算
题目如图:第一题: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
2024-11-13 09:37:51
654
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
2024-11-13 09:37:38
386
转载 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.
2024-11-13 09:37:06
590
转载 @Transactional注解的失效场景
参考@Transactional注解的失效场景1、@Transactional 应用在非 public 修饰的方法上如果Transactional注解应用在非public 修饰的方法上,Transactional将会失效。之所以会失效是因为在Spring AOP 代理时,如上图所示 TransactionInterceptor (事务拦截器)在目标方法执行前后进行拦截,DynamicAdvisedInterceptor(CglibAopProxy 的内部类)的 intercept 方法或 JdkDy
2024-11-13 09:36:37
138
1
原创 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.
2024-11-13 09:36:28
1005
1
原创 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
2024-11-13 09:36:03
2197
原创 Validated校验
JavaWeb项目参数合法性校验目前Web项目校验参数合法性时,经常用到@Validated、@Valid等,下面总结下各种情况下的使用。情景1@Data@AllArgsConstructor@NoArgsConstructorpublic class TableColumnBO { @NotBlank(message = "表名不能为空") private String tableName; @NotBlank(message = "字段名不能为空") pri
2024-11-13 09:35:16
608
1
原创 idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
原因是:xml文件的某些特殊字符是自动转义的, xml解析器会忽视CDATA中的内容
2024-11-13 09:34:41
1513
原创 编程题目(三)使用栈计算字符串表达式的值
写一个函数,传入字符串表达式,返回表达式的结果,如传入"100+4*(30-100/5)",结果返回140(不能用JDK内置表达式求值和其它第三方框架)。
2024-11-13 09:34:28
901
原创 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
1145
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
107
原创 Java设计模式(四)----工厂模式
工厂模式简单工厂模式工厂方法模式抽象工厂模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构。一、简单工厂模式简单工厂模式中,一个工厂类处于对产品类实例化的中心位置上,它知道每一个产品,它决定哪一个产品类应当被实例化。这个模式的优点是允许客户端相对独立于产品创建的过程,并且在系统引入新产品的时候无须修改客户端,即在某种程度上支持“开-
2021-02-23 16:46:40
115
原创 Java设计模式(三)----单例模式
单例模式单例模式的主要作用是确保一个类只有一个实例存在。单例模式可以用在建立目录、数据库连接等需要单线程操作的场合,用于实现对系统资源的控制。由于Java语言的特点,使得在Java中实现单例模式通常有两种表现形式。饿汉式单例类:类加载时,就进行对象实例化;懒汉式单例类:第一次引用类时,才进行对象实例化。饿汉模式在类被加载时,静态变量m_instance会被初始化,此时类的私有构造函数会被调用,单例类的唯一实例就被创建出来了。单例类中一个最重要的特点是类的构造函数是私有的,从而避免外界利
2021-02-23 15:35:19
111
1
原创 Java设计模式(二)----设计原则
单一职责原则Single Responsibility Principle,简称SRP定义一个类,应当只有一个引起它变化的原因;即一个类应该只有一个职责。单一职责原则的优点有以下几个方面:1、降低类的复杂性;2、提高类的可读性;3、提高代码的可维护性和复用性;4、降低因变更引起的风险。里氏替换原则Liskov Substitution Principle,简称LSP定义所有引用基类的地方必须能透明地使用其子类对象。清晰明确地说明只要父类能出现的地方子类就..
2021-02-23 11:12:03
329
原创 Java----值类型和引用类型
一、值类型与引用类型int num=10;String str="hello"num是int基本类型变量,值就直接保存在变量中。str是String引用类型变量,变量中保存的只是实际对象对应的地址信息,而不是实际对象数据。对于基本类型变量num,赋值运算符将会直接修改变量的值,原来的数据将被覆盖掉,被替换为新的值。对于引用类型变量str,赋值运算符只会改变变量中所保存的对象的地址信息,原来对象的地址被覆盖掉,重新写入新对象的地址数据。但原来的对象本身并不会被改变,只是不再被任何引用所指向的
2021-02-23 10:04:20
403
转载 idea启动springboot项目控制台报错Command line is too long. Shorten command line for xxx or also for Spring B解决
错误:Error running ‘xxx项目’: Command line is too long. Shorten command line for xxx or also for Spring Boot default configuration.解决方案:1.在IDEA中找到 Run-> Edit Configurations打开2.在 Environment-> Shorten command line 的内容配置为 JAR即可解决:...
2021-02-23 09:13:48
1730
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人