TypechoJoeTheme

香草物语

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码
搜索到 33 篇与 的结果
2022-11-23

Spring Cloud Alibaba笔记修订版-第二章微服务环境搭建

Spring Cloud Alibaba笔记修订版-第二章微服务环境搭建
因为第一章都是一些概念性的东西,包括系统架构的演变、微服务架构的介绍(服务调度、服务治理、服务容错、链路追踪等等),大家感兴趣的可以阅读原文,我们这里直接从第二章微服务环境搭建开始。本次使用的电商项目中的商品、订单、用户为案例进行讲解。一、技术选型JDK :1.8maven :3.8.6数据库 :MySQL 8.0.31持久层 :SpringData Jpa其他 :Spring Cloud Alibaba 2021.0.4.0,截止到目前最新版本开发工具 :IntelliJ idea 2022.2# 二、模块设计springcloud-alibaba:父工程shop-common:公共模块【实体类】shop-user:用户微服务【端口:807x】shop-product:商品微服务【端口:808x】`shop-order:订单微服务【端口:809x】2.1、创建父工程打开idea,创建maven工程,选择【New Project】,输入Name、GroupId、ArtifactId,选择存储目录,JDK选择本机安装的1.8版本。点击CREATE完成项目创建。springcloud...
Laughing
2022-11-23

Java

642 阅读
0 评论
2022年11月23日
642 阅读
0 评论
2022-11-22

Spring Cloud Alibaba笔记修订版-序言

Spring Cloud Alibaba笔记修订版-序言
一、为什么会有Spring Cloud Alibaba笔记修订版一系列的文章1、加强个人学习很无意间看到的“一本书”,之所以打上双引号,是一位这不是完整意义上的一本书,其实如标题说的一样,是一本笔记。【笔记】其实更像是个人学习的一个总结,所以书中内容可能会针对个人有深有浅,对于旁人来说,就是左一榔头、有一棒槌,云里雾里,不知所踪。为了个人的学习加深,也为了将别人的东西消化成自己的东西,因此在阅读这本书的时候,有意的做一下记录,形成一套完整的适合大多数人学习的Spring Cloud Alibaba笔记。2、完善代码书中错误【马虎】的代码比较多其实从一开始阅读,我就发发现笔记中有不少“错误”或者说是马虎的粘贴导致的错误,比如用户的微服务叫service-product,其实这是商品的微服务。笔记内代码相对比较古老,好多依赖都已经存在已知的漏洞笔记中版本比较古老Spring Cloud Alibaba笔记写的比较早,所以使用的Spring Cloud Alibaba还是比较早的版本,这并不是说是啥问题,只是随着时间的发展,新的版本替代老的版本是必然的趋势,因此我在阅读这个笔记的时候,...
Laughing
2022-11-22

Java

686 阅读
0 评论
2022年11月22日
686 阅读
0 评论
2022-11-13

JDK 8(Java SE Development Kit)全平台全版本安装包免费下载

JDK 8(Java SE Development Kit)全平台全版本安装包免费下载
Java虽然都更新到19了,但是我们日常使用比较多的还是Java8,虽然Spring Boot 3最低依赖都是Java17了,但是Java8的群体依然十分庞大。Java8(又称JDK 1.8)是Oracle于2014年3月19日发布正式版,是一个重要的长期支持版本(LTS),在生产环境中得到了普遍的运用;Java8 相比之前版本,新增了如下功能Lambda 表达式;使用函数式编程,使代码更少,更简洁;Data Time API 改进,优化对时间的处理新增 Stream API新增 Optional 类提供新的 Nashorn JavaScript 引擎,允许在 JVM 上运行特定的JS应用默认方法方法参数反射Oracle JDK 8u311下载安装平台下载地址密码Windows x64 64位jdk-8u311-windows-x648899Windows x86 32位jdk-8u311-windows-i5868899Linux x64 64位jdk-8u311-linux-x648899Linux x86 32位jdk-8u311-linux-i5868899Linux a...
Laughing
2022-11-13

开发辅助

784 阅读
0 评论
2022年11月13日
784 阅读
0 评论
2022-11-11

去掉IDEA 警告:Raw use of parameterized class ‘xxx’

去掉IDEA 警告:Raw use of parameterized class ‘xxx’
作为一个精致的代码主义者,是绝对不允许IDE里面出现各种屎黄色的警告信息的。比如Raw use of parameterized class xxx,当然出现这种警告有两种可能,一种是我们没有正确使用泛型,这种就比较好解决了正确使用即可,另外一种就比较膈应人,可能是调用别人的方法。一、对象带上具体的泛型 (推荐)这种就比较好理解了,好比我们相面New一个Map,我们只需要正确使用泛型即可。二、在方法上加注解这种就属于比较隔应的了,如果是调用别人的方法,要么强制转换,要么直接用,结果就是出现屎黄色的波浪线。这种方法就只能退而求其次,屏蔽到IDEA的提示,我们可以在方法上下面的注解 @SuppressWarnings({"rawtypes"})
Laughing
2022-11-11

Java

2,375 阅读
0 评论
2022年11月11日
2,375 阅读
0 评论
2022-11-06

Jackson反序列化时忽略某些属性的方法

Jackson反序列化时忽略某些属性的方法
在开发接口时,出于某些目的(比如有些字段我要设置默认值,不能受入参的影响),我们在入参字符串序列化成实体时,可能需要忽略某些属性。我们要达到的目的非常简单,一个用户类User.java,我们要达到的目的有两个:(1)控制序列化时,忽略name属性。(2)控制反序列化是,忽略name属性。一、@JsonIgnore注解当我们想控制是一个实体在序列化时,忽略某些属性,我们第一个想到的也许就是@JsonIgnore注解了,@JsonIgnore注解能控制实体在序列化时,忽略某些属性,但是无法控制实体在反序列化时忽略的属性。先来看一下我们测试用的User.java类。public class User implements Serializable { private String code; @JsonIgnore private String name; public String getCode() { return code; } public void setCode(String code) { ...
Laughing
2022-11-06

Java

1,148 阅读
0 评论
2022年11月06日
1,148 阅读
0 评论
2022-10-23

使用CompletableFuture<T>实现异步接口

使用CompletableFuture<T>实现异步接口
【同步API】同步API是我们传统方法,调用方法在被调用方法运行的过程中会一直等待,直到被调用方法返回。此时的调用过程,是阻塞式的调用。【异步API】与同步API相反,异步API会直接返回,或者至少在被调用方计算完成之前,将它剩余的计算任务交给另外一个线程去做,该线程和调用方是异步的,是非阻塞式调用。来看一下【同步API】与【异步API】的区别 public class Shop { public double getPrice(String product) { return calculatePrice(product); } public Future<Double> getPriceAsync(String product) { CompletableFuture<Double> futurePrice = new CompletableFuture<>(); new Thread(() -> { double price = ca...
Laughing
2022-10-23

Java

523 阅读
0 评论
2022年10月23日
523 阅读
0 评论
2022-10-12

Java BigDecimal Non-terminating decimal expansion; no exact representable decimal result

Java BigDecimal Non-terminating decimal expansion; no exact representable decimal result
在日常开发中,我们基本上都是用BigDecimal类型来处理金额,防止精度丢失。使用BigDecimal做除法时,如果出现除不尽的情况,系统就会报错之所以出现这个问题,是因为除法除不尽时,BigDecimal不知道如何处理了,因此,使用BigDecimal做除法时,我们需要指定结果的精度及四舍五入的方式。BigDecimal bigDecimalThree = new BigDecimal("3"); BigDecimal newBigDecimal = BigDecimal.ONE.divide(bigDecimalThree, 1, RoundingMode.HALF_EVEN); System.out.println(newBigDecimal);
Laughing
2022-10-12

Java

541 阅读
0 评论
2022年10月12日
541 阅读
0 评论
2022-10-03

java8函数式接口注解FunctionalInterface

java8函数式接口注解FunctionalInterface
函数式接口就是为Java 8的Lambda表达式准备的,Java 8允许使用Lambda表达式创建函数式接口的实例,因此Java 8 专门增加了@FunctionalInterface。什么是函数式接口我们提到如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口。FunctionalInterface作用@FunctionalInterface就是用来指定某个接口必须是函数式接口,所以@FunInterface只能修饰接口,不能修饰其它程序元素。看下一下面的方法@FunctionalInterface public interface BufferedReaderProcessor { /** * 静态方法 */ static void process() { System.out.println("process"); } /** * 抽象方法 * * @param bufferedReader *...
Laughing
2022-10-03

Java

848 阅读
0 评论
2022年10月03日
848 阅读
0 评论
2022-08-27

Java基础知识之内部类

Java基础知识之内部类
Java四种内部类。实例内部类:没有static修饰的内部类。静态内部类:使用static修饰的内部类。局部内部类:在方法中定义的内部类。匿名内部类:没有名称的局部内部类。package com.company.innerclasspackage; public class Outer { private String classDesc = "实例内部类访问"; private static String staticClassDesc = "静态内部类访问"; /** * 实例内部类 */ public class Inner1 { public void desc() { System.out.println(classDesc); } } /** * 静态内部类 */ public static class Inner2 { public void D...
Laughing
2022-08-27

Java

494 阅读
0 评论
2022年08月27日
494 阅读
0 评论
2022-07-31

Effective Java (高效 Java) 第三版-单例模式

Effective Java (高效 Java) 第三版-单例模式
Java中单例(`Singleton`)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制的作用,那么单例模式也许是一个值得考虑的选择。饿汉模式public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){} public static Singleton newInstance(){ return instance; } }类的构造函数定义为`private`的,保证其他类不能实例化此类,然后提供了一个静态实例并返回给调用者。饿汉模式是最简单的一种实现方式,饿汉模式在类加载的时候就对实例进行创建,实例在整个程序周...
Laughing
2022-07-31

Java

480 阅读
0 评论
2022年07月31日
480 阅读
0 评论
2022-07-31

Effective Java (高效 Java) 第三版-构造方法参数过多时使用 builder 模式

Effective Java (高效 Java) 第三版-构造方法参数过多时使用 builder 模式
静态工厂和构造方法都有一个限制:它们不能很好地扩展到很多可选参数的情景。考虑我们有一个人员的类,如果只有姓名是必填的,年龄可选的,也许我们可以提供两个构造函数,但是试想一下,如果有两个类型一样的参数,是不是就没法重载了。或者可选的参数比较多,就比较麻烦了。这个时候,我们就可以考虑builder模式了。 public class Person { private String name; private int age; public static class Builder { private String name; private int age; public Builder(String name) { this.name = name; } public Builder withName(String name) { this.name = name; return this; ...
Laughing
2022-07-31

Java

566 阅读
0 评论
2022年07月31日
566 阅读
0 评论
2022-07-31

Effective Java (高效 Java) 第三版-考虑使用静态工厂方法替代构造方法

Effective Java (高效 Java) 第三版-考虑使用静态工厂方法替代构造方法
public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; }静态工厂方法的优点构造方法没有名字,但是静态工厂方法是有名字的如果构造方法的参数本身并不描述被返回的对象,则具有精心选择名称的静态工厂更易于使用,并且生成的客户端代码更易于阅读。不需要每次调用时都创建一个新对象可以返回其返回类型的任何子类型的对象这种灵活性的一个应用是 API 可以返回对象而不需要公开它的类。 以这种方式隐藏实现类会使 API 非常紧凑。返回对象的类可以根据输入参数的不同而不同声明的返回类型的任何子类都是允许的。 返回对象的类也可以随每次发布而不同。在编写包含该方法的类时,返回的对象的类不需要存在这种灵活的静态工厂方法构成了服务提供者框架的基础,比如 Java 数据库连接 AP(JDBC)。服务提供者框架是提供者实现服务的系统,并且系统使得实现对客户端可用,从而将客户端从实现中分离出来。静态工厂方法的缺点没有公共或受保护构造方法的类不能被子类化要想将Collections框架中任何遍历的实...
Laughing
2022-07-31

Java

750 阅读
0 评论
2022年07月31日
750 阅读
0 评论