JAVA
文章平均质量分 74
小鱼在编程
这个作者很懒,什么都没留下…
展开
-
MapperStruct实现类为空
MapperStruct实现类为空原创 2023-10-21 22:30:29 · 519 阅读 · 0 评论 -
不吹牛X,我真的干掉了if-else
不吹牛X,我真的干掉了if-else如何才能有很高的扩展性?常规方式如何解决?思考如何干掉if-else?使用策略模式来解决if-else的问题尝试使用Spring来配合策略模式总结:原创 2020-05-18 23:11:09 · 8010 阅读 · 7 评论 -
SpringCloud学习之—Eureka集群搭建
Eureka集群的搭建上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个“微服务”,单个应用使用空间有限,因此和zookeeper一样,它也需要搭建集群(Cluster)。搭建Eureka集群的原理就是创建多个eureka应用(端口不同),然后将所有的注册中心的地址联合到一起。下边就以创建三个集群为例一、将之前的创建的eu...原创 2020-02-27 02:00:01 · 330 阅读 · 0 评论 -
SpringCloud之Ribbon负载均衡的入门操作
使用Ribbon进行负载均衡在使用Ribbon之前,我们先想一个之前的问题,之前我们将服务提供者注册进了eureka注册中心,但是在消费者端,我们还是使用的restTemplate调用的时候,其中写的还是http://localhost:8001这样的调用方式,是不是有一些不妥呢?是不是应用像dubbo那样,使用服务名进行调用呢?不然,我们使用注册中心有什么用呢?好的呢,我们先保留这个思考 。...原创 2020-02-27 01:58:18 · 318 阅读 · 0 评论 -
SpringCloud之eureka注册中心入门
eureka注册中心一、基本概念SpringCloud封装 了Netflix公司的eureka作为自己微服务的注册中心。这个注册中心和dubbo中的zookeeper很相似,简单来说,只要你可以将你的”微服务“模块注册到注册中心,就可以供其他服务调用,一般来说,只有provider会注册到eureka,consumer也可以注册,但是并不建议这么做。eureka的架构图如下:二、在Sp...原创 2020-02-24 23:39:13 · 296 阅读 · 0 评论 -
SpringCloud入门学习
我相信,如果小伙伴们能来到这里,肯定对微服务有一定的认识。我们之前创建web项目的时候,常见的有两种方式:1).创建一个war包,然后放在servlet容器中运行(比如Tomcat等);2).使用SpringBoot创建一个jar包运行,这也是使用了内嵌式的servlet容器。这么做的好处是:开发布署方便,直接放在tomcat的webapp目录下或者使用java -jar xxx.jar ...原创 2020-02-24 11:43:54 · 1063 阅读 · 0 评论 -
策略模式的学习之道
策略模式1.需求分析:一个考试系统,当考生的成绩通过后(成绩大于60分)会通过各种方式通知用户。通知方式有:APP消息推送、短信、邮件、站内消息四种方式;但是每种方式是否进行通知是要进行在表中配置的;假设我们从表中查询后的对象如下:/** * 成绩对象 */public class Score { //成绩 private int score; /...原创 2020-02-18 23:44:02 · 684 阅读 · 0 评论 -
打开UML类图的正确姿势
UML(Unified Modeling Language) 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型...原创 2020-02-16 23:53:37 · 3615 阅读 · 0 评论 -
在Spring中使用嵌入式数据库-H2
Spring3以后开始支持嵌入式数据库,嵌入式数据库目前在市面上有好多种,HSQL,DERBY,H2...今天就主要讲一下h2的使用对于一个数据库产品来说,主要就是如何存储数据和读取数据了。所谓嵌入式就是直接运行在项目中,不需要安装额外的产品。说白了就是一个jar包,可以随项目启动和结束而结束,它主要有以下特点:优点:小而简,但是可以存储的数据还是很大,大概有512G左右;不用...原创 2020-02-05 03:17:28 · 611 阅读 · 0 评论 -
Jdk8中Stream流的使用,让你脱离for循环
学习要求:知道一点儿函数式接口和Lambda表达式的基础知识,有利于更好的学习。1.先体验一下Stream的好处需求:给你一个ArrayList用来保存学生的成绩,让你打印出其中大于60的成绩。 public static void main(String[] args) { ArrayList<Integer> arrList = new ArrayList&l...原创 2020-02-05 03:14:39 · 3659 阅读 · 0 评论 -
重申一遍,在Java中只有值传递,没有引用传递
一、基本概念:值传递和引用传递是指在方法调用中,由调用者传递过来的参数是一个具体的值还是一个地址引用。我发现小伙伴认为Java中存在引用传递的最大原因就是对上边概念中的这个“地址”有误解,它指的是栈中变量的引用,并不是指堆中对象的地址。值传递:顾名思义,就是由调用方法的地方将实际的值传到方法中。也就是说,我将我的值给你了,你想怎么改就怎么改,但是你的任何改变都不会影响我自身。引用传递: 引...原创 2020-01-30 13:42:24 · 956 阅读 · 0 评论 -
在Spring中使用嵌入式数据库-H2
Spring3以后开始支持嵌入式数据库,嵌入式数据库目前在市面上有好多种,HSQL,DERBY,H2...今天就主要讲一下h2的使用对于一个数据库产品来说,主要就是如何存储数据和读取数据了。所谓嵌入式就是直接运行在项目中,不需要安装额外的产品。说白了就是一个jar包,可以随项目启动和结束而结束,它主要有以下特点:优点:小而简,但是可以存储的数据还是很大,大概有512G左右;不用...原创 2020-01-20 00:50:35 · 772 阅读 · 0 评论 -
回溯算法之八皇后问题
一、什么是回溯算法?我们肯定都玩过迷宫游戏吧,比较复杂的迷宫,肯定是不可能第一遍就直接过了,只能一步一步地进行尝试。当走到一个死胡同时,只能退回到上一个分岔口进行重新选择。数独游戏也是这样的,对于一个不确定的方格,我们就会先将这个方格可能出现的问题记录下来,一个一个地尝试,直到得到正确解。有着“通用解”称呼所以,回溯算法就是类似于枚举的算法,将这一步的所以可能性一个一个地进行尝试。上边迷宫中的分...原创 2020-01-12 12:35:31 · 958 阅读 · 0 评论 -
回溯算法之八皇后问题
一、什么是回溯算法?我们肯定都玩过迷宫游戏吧,比较复杂的迷宫,肯定是不可能第一遍就直接过了,只能一步一步地进行尝试。当走到一个死胡同时,只能退回到上一个分岔口进行重新选择。数独游戏也是这样的,对于一个不确定的方格,我们就会先将这个方格可能出现的问题记录下来,一个一个地尝试,直到得到正确解。有着“通用解”称呼所以,回溯算法就是类似于枚举的算法,将这一步的所以可能性一个一个地进行尝试。上边迷宫中的分...原创 2020-01-12 02:55:40 · 564 阅读 · 1 评论 -
数据结构之递归案例一
什么是递归?顾名思义,所谓递归就是一个函数(或方法)自己调用自己,最简的如下:public void text() { text();}就是这么简单,但是一定要给这个递归函数一个出口,不然就会无限循环下去,最后的结果就是OutOfMemory(内存溢出),如果是在main函数中调用的话,就会出现栈空间已满的错误。如何给一个递归的方法写一个出口呢?只要在递归的过程中,有...原创 2020-01-09 00:01:01 · 1075 阅读 · 0 评论 -
在SpringBoot中使用AOP切面编程
如果有对SpringAOP不太懂的小伙伴可以查看我之前的Spring学习系列博客SpringBoot的出现,大大地降低了开发者使用Spring的门槛,我们不再需要去做更多的配置,而是关注于我们的业务代码本身,在SpringBoot中使用AOP有两种方式:一、使用原生的SpringAOP(不是很推荐,但这是最基本的应用)基原理就是之前写的SpringAOP在web应用中的使用的第三种方式,使用...原创 2019-12-29 21:43:43 · 1800 阅读 · 0 评论 -
在idea中创建多模块的SpringBoot项目
在idea中创建多模块的SpringBoot项目首先,了解下maven项目的三种打包方式:1.war打包为war包项目时,可以放在tomcat下运行2.jar打包成jar包就是要使用java -jar xxx.jar方式来运行,最常见的就是SpringBoot项目3.pom它只是用来做依赖管理,打包成的项目并不能直接运行。比如Springboot项目的父依赖以及再住上的依赖打包方式...原创 2019-12-25 00:28:07 · 2869 阅读 · 0 评论 -
dependencies与dependencyManagement的区别
当我们的maven项目中的依赖过多时,为了更好的做版本管理,我们要创建一个父项目来管理这些依赖(这个父项目的打包方式为pom)dependencies与dependencyManagement的区别:在父项目中的dependencies中定义的所有依赖,在子项目中都会直接继承,在父项目中的dependencyManagement中定义的所有依赖,子项目并不会继承,我们还要在子项目中引入我们...原创 2019-12-24 23:48:26 · 1008 阅读 · 0 评论 -
Lambda入门,看这一篇幅就够了
jdk1.8中的lambda表达式学习笔记一、引入一个例子我们写一个多线程的例子,如下:采用实现Runable接口的方式package cn.lyn4ever.lambda;public class TestMain1 { public static void main(String[] args) { //线程1 MyThread myThre...原创 2019-12-01 21:59:19 · 1284 阅读 · 0 评论 -
利用Spring AOP创建通知
写在最前端1.SpringAOP中共有六种通知类型,只要我们自定义一个类实现对应的接口,它们全都是org.springframework.aop包中的。2.AOP的连接点可以是方法调用、方法调用本身、类初始化、对象实例化时,但是SpringAOP中全是方法调用,更简单,也最实用写一个公共类,用于目标对象public class Person { private String...原创 2019-11-26 23:38:38 · 1008 阅读 · 0 评论 -
SpringAOP基础
例1.已知有这么一段代码,会打印出Hello public static void main(String[] args) { sayHello(); } public static void sayHello(){ System.out.print("Hello"); }现在我们想打印出 Java Hello world 这...原创 2019-11-26 21:05:14 · 963 阅读 · 0 评论 -
Java开发中解决Js的跨域问题
主流方法有JSONP和CORS两种,这里记一下后者的方式,理论基础就是在请求的时候在http请求头中添加如下属性://指定允许其他域名访问Access-Control-Allow-Origin:http://localhost:8989如果后端用Java开发,在返回请求中可以添加如下属性1.在跨域问题中,如果不操作cookie,只需要在后端代码中添加如下代码就可以response.se...原创 2019-11-13 23:32:04 · 962 阅读 · 0 评论 -
从properties中读取配置创建对象
主要做两个事,从properties配置文件中读取信息,通过反射创建对象思路主要有两种,遍历得到的属性集合,然后设置类的属性遍历类的属性集合,从配置文件中读取(不推荐,因为类的属性有多样化,会报错)try { Properties prop = new Properties(); prop.load(new FileInputStream( "F:\\user.prop...原创 2019-10-28 22:23:56 · 1512 阅读 · 0 评论 -
SpringBoot打包为war包,并在tomcat中运行
先看一下我创建的最简单的项目吧。controller类@RestControllerpublic class TestController { @RequestMapping("index") public String index() { return "hello"; }}pom文件没有做任何修改,我们直接启动这个项目,注意看启动的...原创 2019-10-13 19:42:46 · 1102 阅读 · 0 评论 -
查看SpringBoot应用中的嵌入式tomcat的版本
第一种,在启动springboot项目的时候,日志中可以看到第二种,直接在maven依赖文件中查看地址在:你的maven库文件夹/org/springframework/boot/spring-boot-dependencies/springboot版本/*.pom在这个pom文件下搜索tomcat.version本文由博客一文多发平台 OpenWrite 发布!...原创 2019-10-13 19:36:55 · 2613 阅读 · 0 评论 -
Iterator和ListIterator关系
一.相同点 都是迭代器,当需要对集合中元素进行遍历不需要干涉其遍历过程时,这两种迭代器都可以使用。 二.不同点 1.使用范围不同,Iterator可以应用于所有的集合,Set、List和Map和这些集合的子类型。而ListIterator只能用于List及其子类型。 2.ListIterator有add方法,可以向List中添加对象,而Iterator不能。...转载 2018-12-25 22:23:54 · 257 阅读 · 0 评论 -
用JAVA来打印输出一个金字塔
用JAVA来打印输出一个金字塔,如下:#话不多说,来吧!!!只写上这个方法,自己去调用//直接在方法中输出,调用时只需printStar(int a)就可public static void printStar( int a ){ for (int x = 1;x &lt;= a; x++) { //在每一行的前边来添加空格,来使*居中 for (int z = a...原创 2018-11-06 21:24:48 · 4630 阅读 · 0 评论