IDEA解决vue项目卡死
IDEA解决vue项目卡死问题原因在加载vue项目的时候,把node_modules的包一起进行了加载
idea是基于index来实现快速加载项目配置的,故所有在idea打开目录下的文件都会被索引,包括vue项目运行时产生的node_modules文件夹里的js等文件
解决方式
在Ignored Files and Folders中加入node_modules再重启一下idea就好了
关于@Autowired注解失效问题
关于@Autowired注解扫描不到expected at least 1 bean which qualifies as autowire candidate需求:在旧的SSM项目中,经常会出现找不到Bean的情况,然后会报红色下划线解决方式:检查配置,检查注解
12@Autowiredprivate CommonService commonservice;
1.检查配置文件检查spring配置文件是否有去扫描包(如果少了这一步就报错找不到Bean)
12<!-- 自动扫描 --><context:component-scan base-package="com.foam"/>
2.是否有注解比如如service,repository,component,controller,Mapper等。
12345678@Repositorypublic interface CompanyMapper{……}@Servicepublic class Service{……}
3.是否有配置监听器123456 ...
实时问题解决
实战bug解决1.mybatisplus导致url无法访问原因:因为在application配置了componentScan去扫描了mybatisplus的mapper,导致其他的未扫描到解决方式:在自动生成的mapper上加上@mapper注解去进行组件扫描
2.druid多数据源切换不成功,报错找不到数据库原因:boot自带的数据库配置会去扫描默认数据源,而druid的路径不一样解决方式:编写一个默认的数据源
3.mybatisplus生成不了代码原因:freemarker模板引擎不可用解决方式:切换为velocity的模板引擎
4.JobThread Exception:java.lang.reflect.InvocationTargetException原因:这个是xxljob定时注解导致的,和redis的缓存注解冲突了解决方式:把redis的@cacheable注解去除掉就行了
5.驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。原因:sqlserver在1.8之前的版本安全验证不一样解决方法:把C:\Program Files\Java ...
AOP解决内部方法调用不生效问题
描述:在使用AOP切面的时候Controller层可以正常切入进去,但是Service层内部方法调用切入不进去
大致情况就算打注解放methodB上也不会进切面,Aop只支持外部调用
123456789101112131415161718import org.springframework.stereotype.Service;/** * 目标对象类 * @author Gufung */@Servicepublic class TestAopService { public void methodA() { System.out.println("method A run"); //内部调用方法B时AOP的增强处理方法不会执行 methodB(); } public void methodB() { System.out.println("method B run"); }}
解决方式1.配置 ...
设计模式-创建型模式-原型模式
介绍原型模式是指,一个抽象类 Prototype 具有一个clone 方法,其实现类ConcretePrototype1、ConcretePrototype2 实现各自的clone方法,在使用的时候,调用Prototype的clone方法可以clone任意实现类。其作用就是快速创建一个新的对象
角色
Prototype(抽象原型类):它是声明克隆方法的接口,是所有具体原型类的公共父类,可以是抽象类也可以是接口,甚至还可以是具体实现类。
ConcretePrototype(具体原型类):它实现在抽象原型类中声明的克隆方法,在克隆方法中返回自己的一个克隆对象。
Client(客户类):让一个原型对象克隆自身从而创建一个新的对象,在客户类中只需要直接实例化或通过工厂方法等方式创建一个原型对象,再通过调用该对象的克隆方法即可得到多个相同的对象。由于客户类针对抽象原型类Prototype编程,因此用户可以根据需要选择具体原型类,系统具有较好的可扩展性,增加或更换具体原型类都很方便。
何时使用原型模式
需要创建的对象应独立于其类型与创建方式
要实例化的类是在运行时决定的
类不容易创建,比如每个组件 ...
IDEA插件
插件官网JetBrains Marketplace
Alibaba Java Coding Guidelines首先要推荐的是和《手册》配套的 阿里巴巴 Java代码规范插件。安装该插件后,代码超过 80 行、手动创建线程池等,这些和《手册》中的规约不符时,IDEA中会给出警告提示。
jclasslib bytecode viewer下面要隆重介绍的是一款可视化的字节码查看插件:jclasslib大家可以直接在 IDEA 插件管理中安装(安装步骤略)使用方法:
在 IDEA 打开想研究的类
编译该类或者直接编译整个项目( 如果想研究的类在 jar 包中,此步可略过)
打开“view” 菜单,选择“Show Bytecode With jclasslib” 选项
选择上述菜单项后 IDEA 中会弹出 jclasslib 工具窗口那么有自带的强大的反汇编工具 javap 还有必要用这个插件吗?这个插件的强大之处在于:
不需要敲命令,简单直接,在右侧方便和源代码进行对比学习。
字节码命令支持超链接,点击其中的虚拟机指令即可跳转到 jvms 相关章节,超级方便。该插件对我们学习虚拟机指令有极 ...
RedisTemplate统一集成
1.配置redis-config123456789101112131415161718192021222324<!-- Jedis 连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"></property> <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"></property> <property name="numTestsPerEvictionRun" value="$ ...
IDEA内存调优
idea2020无法启动报错初始堆值大于最大堆值_寒烟雾柳的博客-CSDN博客
调整内存的时候一定Xms2048m不能大于Xmx4096m【否则idea启动不起来】
xmx建议设置为(总内存的3/4 ÷ 你要开的idea个数),这样才不会卡
123456789101112-Xms1024m-Xmx8192m-XX:MaxPermSize=2048m-XX:ReservedCodeCacheSize=256m-ea-Dsun.io.useCanonCaches=false-Dsun.awt.keepWorkingSetOnMinimize=true-Djava.net.preferIPv4Stack=true#-Djsse.enableSNIExtension=false-XX:+UseCodeCacheFlushing-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50
线程池工具类
1.编写线程池工具类1234567891011121314151617181920212223242526272829303132333435363738394041424344454647public class ThreadUtils { public static ExecutorService newFixedThreadPool() { return new ThreadPoolExecutor(4,4, 10L, TimeUnit.MILLISECONDS, new LinkedBlockingDeque<Runnable>(100), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy()); } /** * (1.8版本)使用线程池请求接口 */ public static <T> ...
分段执行
1234567891011int batchSize = 1000;if(dataList.size() <= batchSize){ insertByStocks(dataList,type);}else { for(int i = 0;i < dataList.size();i+=batchSize){ if((i + batchSize)> dataList.size()){ batchSize = dataList.size()-i; } insertByStocks(dataList.subList(i,i+batchSize),type); }}
batchSize: 每次执行多少条
dataList: 数据列表
insertByStocks:需要执行的方法