java

如何基于Autowired对构造函数进行注释

2020-10-13
在编写代码的时候,使用@Autowired注解是,发现IDE报的一个警告,如下: Spring Team recommends "Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies". 翻译: Spring建议"总是在您的bean中使用构造函数建立依赖注入.总是使用断言强制依赖". 这段代码警

Mybatis多数据源切换实现代码

2020-10-13
这次要完成的是从一个数据库中读取数据,然后再把数据插入到另一个数据库中.在同一套项目代码中要完成这个操作,就不可避免的涉及到了多数据源.本文即介绍在mybatis中完成多数据源的切换相关内容 指定数据源一 @Configuration // 扫描 Mapper 接口并容器管理 @MapperScan(basePackages = MasterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "masterSqlSessionFactory"

简单的理解java集合中的HashSet和HashTree几个重写方法

2020-10-12
Java中的set是无序的,但是是不可重复的 HashSet底层是哈希表,通过调用hashcode和equals方法实现去重 当我们HashSet里面存的是字符串时,就能默认去重了,因为String已经重写了hashcode和euqals方法 public static void main(String[] args) { HashSet<String> set = new HashSet(); set.add("java"); set.add("c")

关于Mybatis-Plus字段策略与数据库自动更新时间的一些问题

2020-10-12
字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" 问题描述: 当字段策略为 0 "忽略判断" 的时候,如果实体和数据库有字段是需要自动更新的,例如update_time,更新某条记录的时候自动刷新update_time,理论上我们在业务控制的时候是不需要设置update_time的,利用数据库特性就好,但是在该字段策略下,业务逻辑要更新字段(没有主动设置 update_time),这时候因为忽略判断,

SpringBoot 创建容器的实现

2020-10-12
spring 容器的创建对应 SpringApplication 中 run 中调用的 createApplicationContext 方法.这里创建了一个 web 容器,接下就进去 prepareContext 容器准备阶段: private void prepareContext(ConfigurableApplicationContext context, ConfigurableEnvironment environment, SpringApplicationRunListeners

详解Java Fibonacci Search斐波那契搜索算法代码实现

2020-10-12
一, 斐波那契搜索算法简述 斐波那契搜索(Fibonacci search) ,又称斐波那契查找,是区间中单峰函数的搜索技术. 斐波那契搜索采用分而治之的方法,其中我们按照斐波那契数列对元素进行不均等分割.此搜索需要对数组进行排序. 与二进制搜索不同,在二进制搜索中,我们将元素分成相等的两半以减小数组范围-在斐波那契搜索中,我们尝试使用加法或减法来获得较小的范围. 斐波那契数列的公式是: Fibo(N)=Fibo(N-1)+Fibo(N-2) 此系列的前两个数字是Fibo(0) = 0和Fibo

Java split函数拆分后变成null问题解决方案

2020-10-12
对于一些特殊的情况,split拆分后并没有保留全的元素 如下例子: String x ="a,,,,,,"; String []y = x.split(","); for(int i=0;i<y.length;i++){ System.out.println(y[i]); } 输出结果: 只拆分得到了第一个字母,后面默认的空字符串并没有保留. 后来想到了使用StringUtils函数,查了一下,修改为如下: String x ="a,,,,,,&qu

Mybatis动态SQL的实现示例

2020-10-12
场景 在实际应用开发过程中,我们往往需要写复杂的 SQL 语句,需要拼接,而拼接SQL语句又稍微不注意,由于引号,空格等缺失可能都会导致错误. Mybatis提供了动态SQL,也就是可以根据用户提供的参数,动态决定查询语句依赖的查询条件或SQL语句的内容. 动态SQL标签 if 和 where 标签 <!--动态Sql : where / if--> <select id="dynamicSql" resultType="com.lks.domain.Use

IDEA 端口占用的解决方法(推荐)

2020-10-12
IDEA 端口占用解决方法 后台开发时经常遇到端口占用问题 Intellij IDEA端口占用 解决方法: 方法1: 打开任务管理器,关闭java 进程: 方法2: 修改端口号的方法可解决 server: port: 8088 方法3(通用型方法) netstat -aon|findstr "8088" taskkill /t /f /pid 端口号 附录:使用idea windows端口占用解决 解决办法: 1.找到进程id:netstat -ano |findstr "8

如何把VS Code打造成Java开发IDE

2020-10-12
近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路.最终,我选定了轻量级的Visual Studio Code(以下简称VS Code). 各种IDE选型比较的过程就不赘述了,Eclipse.NetBeans.Srping Tools Suite等等,只能说青菜萝卜各有所爱. 插件淘沙 众所周知,VS Code是一款轻量级的通用编辑器,和Eclipse一样全靠海量的插件扩展,网上各类插件推荐文章又都是面向VS Code的最大ID

IntelliJ Idea2017如何修改缓存文件的路径

2020-10-12
IDEA的缓存文件夹.IntelliJIdea2017.1,存放着IDEA的破解密码,各个项目的缓存,默认是在C盘的用户目录下,目前有1.5G大小.现在想要把它从C盘移出. 在IDEA的安装路径下中,进入bin目录后找到属性文件:idea.properties 用记事本打开,找到如下代码段: #--------------------------------------------------------------------- # Uncomment this option if you w

图解JVM内存模型

2020-10-12
前言 上篇文章我们一起了解了jvm虚拟机类的加载机制,而且是以一种纯大白话进行的一场闲聊,相信小伙伴们应该印象深刻,感兴趣的小伙伴可以重温一下上一篇文章大白话谈JVM的类加载机制. 当jvm加载了类后,会把需要使用的对象放入到内存当中,那么jvm的内存模型是什么样的呢? 今天我们就来探索一下jvm的内存模型.由于有小伙伴反映想加些图更容易理解,王子接下来的文章打算用更多的图例来讲解. 方法区 很多小伙伴之前也了解过jvm的内存模型,知道有方法区这个东西,但可能了解的不是很详细. 其实方法区是在J

解决 IDEA 2020.2 reading pom.xml 卡死问题

2020-10-12
一.解决方案搜寻 刚出 IDEA 2020.2 版本的时候,当时第一时间更新了.打开公司的项目,没啥问题,但是当打开自己的项目的时候,就会看到右下角显示 reading pom.xml 然后就卡死了.很多次都这样,后来就回滚了 2020.1,直到今天才来再次尝试发现原因和解决方案. 1.1 导致原因的设定 如果有幸点进了 setting 中的 Maven 选项卡,那么可以看到 "Maven home dictionary" 也就是自定义的本地 Maven 路径被改成了 C:\Users

springcloud组件技术分享(推荐)

2020-10-12
Springcloud技术分享 Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量. Spring Cloud 是什么? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现.服务网关.服务路由.链路追踪等.Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模

java9开始——接口中可以定义private私有方法

2020-10-12
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开始,Interface 接口中允许定义私有方法和私有静态方法.下面我们就来为大家介绍其语法规则,和为什么要有这样的设计. 其实在Java 8之前,还有另一个被广为人之的知识点:接口中所有的方法必须是abstract 抽象方法.但是,从java 8开始接口中可以包含非abstract 方法,如下文中的

IDEA中配置操作Git的详细图文教程

2020-10-12
要注意这里git的安装路径不是从官网下载的路径,是在执行文件时自己设置的安装路径,一般都在C盘或D盘的Program Files文件夹中 IDEA中操作Git 创建本地仓库 2. 将文件添加到暂存区 可以看到刚刚添加的文件变成绿色,此时选中的文件被存入到暂存区,下一步需要转移到本地仓库 当提交多个文件的时候需要忽略一些不必要的文件,在项目git_1下创建一个文件 *.class.mtj.tmp/*.jar*.war*.ear*.ziphttp://www.java.com/en/download

JAVA中Comparable接口和自定义比较器示例讲解

2020-10-12
自然排序 TreeSet集合在存储数据时有一定的顺序,它会将一些数据进行比较,比较调用的是comparaTo()方法,该方法是在Comparable中定义的,自然排序要求TreeSet集合中存储的数据必须实现Comparable接口,并且重写ComparaTo()方法 public class 自然排序 { public static void main(String[] args) { //定义一个TreeSet集合 TreeSet treeSet = new TreeSet(); Teach

Java两种常用的随机数生成方式(小白总结)

2020-10-12
人机交互过程中,当我们需要机器给我们反馈不确定的数字结果时,就会需要用到随机数了,那么,在Java中,我们应当如何来生成并使用随机数呢? 一.通过Random类来实现 Random类是JDK的java.util包中的一个工具类,该类可用于在指定范围内产生随机数字.考察一下Random类的两种构造方法:无参构造和有参构造 Random(): 无参构造方法创建一个伪随机数生成器.Random(long seed):有参构造方法使用一个long型的种子创建伪随机数生成器. 下面分别使用两种方式创建Ra

MyBatis还是JPA?终于有答案了

2020-10-12
对于一个和数据库打交道的程序员来说,很快会面临着一个艰难的选择.到底是选择MyBatis还是JPA呢? 很多人说,技术选择,都要根据需求来,这个没错.但是,除了需求,还有很重要的一个环节,那就是队友的水平.如果你选择了一些比较高级的技术,那么就是在给整个团队埋坑. JPA的抽象层次更高,代码写起来也更简洁,但是它一点都不简单.虽然经过了多次的培训,我呆过的几个团队,还是把它用的和屎一样. 我扔掉了JPA 我仔细想了一下,有下面几点原因,造成了JPA在很多团队根本就玩不下去. JPA适合业务模型固

Spring OAuth2.0 单元测试解决方案

2020-10-11
为什么需要单元测试 单元测试拥有保证代码质量.尽早发现软件 Bug.简化调试过程.促进变化并简化集成.使流程更灵活等优势.单元测试是针对代码单元的独立测试,核心是"独立",优势来源也是这种独立性,而所面临的不足也正是因为其独立性:既然是"独立",就难以测试与其他代码和依赖环境的相互关系.单元测试与系统测试是互补而非代替关系.单元测试的优势,正是系统测试的不足,单元测试的不足,又恰是系统测试的优势.不能将单元测试当做解决所有问题的万金油,而需理解其优势与不足,扬长避短