大学生涯
未读基本语法1. 注释Java 中的注释有三种: 单行注释:通常用于解释方法内某单行代码的作用。 多行注释:通常用于解释一段代码的作用。 文档注释:通常用于生成 Java 开发文档。 用的比较多的还是单行注释和文档注释,多行注释在实际开发中使用的相对较少。 123456789// 这是单行注释/* * 这是多行注释 *//** * 这是文档注释 */ 在我们编写代码的时候,如果代码量比较少,我们自己或者团队其他成员还可以很轻易地看懂代码,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会执行(编译器在编译代码之前会把代码中的所有注释抹掉,字节码中不保留注释),是我们程序员写给自己看的,注释是你的代码说明书,能够帮助看代码的人快速地理清代码之间的逻辑关系。因此,在写程序的时候随手加上注释是一个非常好的习惯。 .class文件中没有注释 代码的注释不是越详细越好。实际上好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。 若编程语言足够有表达力,就不需要注释,尽量通过代码来阐述。 举个例子: 去掉下面复杂的注释,只需要创建一个与注释所言同一事物的函数 ...
大学生涯
未读基础概念1. Java语言的特点 简单易学(语法简单,上手容易); 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 可靠性(具备异常处理和自动内存管理机制); 安全性(Java 语言本身的设计就提供了多重安全防护机制如访问权限修饰符、限制程序直接访问操作系统资源); 高效性(通过 Just In Time 编译器等技术的优化,Java 语言的运行效率还是非常不错的); 支持网络编程并且很方便; 编译与解释并存; 2. Java SE vs Java EE Java SE(Java Platform,Standard Edition): Java 平台标准版,Java 编程语言的基础,它包含了支持 Java 应用程序开发和运行的核心类库以及虚拟机等核心组件。Java SE 可以用于构建桌面应用程序或简单的服务器应用程序。 Java EE(Java Platform, Enterprise Edition ):J ...
Gateway官网 一. 概述简介1. Gateway 是什么Spring Cloud Gateway是 Spring 官方基于 Spring Boot 2.x、Spring WebFlux 和 Project Reactor 构建的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的 API路由管理方式。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,目标是替代 ZUUL,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。 2. 什么是网关?网关(Gateway)又称网间连接器,网关在网络层实现服务之间网络互连。用程序的话来说就是请求转发。他就好比小区的门一样,你想进来小区,必须通过门才能进来。为什么要有这个门?为了方便管理以及安全考虑,就好比现在疫情期间,动不动小区封了,假如小区没有门,想要封小区还得费特别大的劲将小区给围住。 再回到程序当中,现在非常流行微服务系统,将整体应用拆分为了多个模块,那么问题来了,前端页面肯定会涉及到调用不同微服 ...
NacosNacos 配置中心在 Spring Boot 项目中,默认会提供一个 application.properties 或者 application.yml 文件, 可以把一些全局性的配置或者需要动态维护的配置写入改文件,比如数据库连接,功能开关,限流阈值,服务地址等。 为了解决不同环境下服务连接配置等信息的差异,Spring Boot 还提供了基于 spring.profiles.active={profile}的机制来实现不同的环境的切换。 1.起源随着单体架构向微服务架构的演进,各个应用自己独立维护本地配置文件的方式开始显露出它的不足之处。 主要有下面几点: 配置的动态更新:在实际应用会有动态更新位置的需求,比如修改服务连接地址、限流配置等。在传统模式下,需要手动修改配置文件并且重启应用才能生效,这种方式效率太低,重启也会导致服务暂时不可用。 配置集中式管理:在微服务架构中某些核心服务为了保证高性能会部署上百个节点,如果在每个节点中都维护一个配置文件,一旦配置文件中的某个属性需要修改,可想而知,工作量是巨大的。 不同部署环境下配置的管理:前面提到通过 pr ...
Nacos 注册中心1. 简介Nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理: Kubernetes Service gRPC & Dubbo RPC Service Spring Cloud RESTful Service 功能1.服务发现和服务健康监测Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用 原生 SDK、OpenAPI、或一个独立的 Agent 注册 Service 后,服务消费者可以使用 D ...
1.Eureka 高可用在 eureka 的基础上添加 Spring security(增加安全性,如密码验证操作)a.在 eureka 模块中引入 spring-boot-starter-security 依赖12345<!--security--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency> b.修改注册中心配置文件 application.yml12345678910111213141516171819server: port: 8083eureka: instance: hostname: localhost # 当前服务所在服务器的域名 client: register-with-eureka: false # 不向注册中心注册自己 fetch-regist ...
1.配置文件配置方式父工程 pom.xml123456789101112131415161718192021222324252627282930313233343536373839404142434445464748<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.nianxi ...
大学生涯
未读请求处理1.Rest 映射及源码解析请求映射 @xxxMapping; @GetMapping @PostMapping @PutMapping @DeleteMapping Rest 风格支持(使用HTTP请求方式动词来表示对资源的操作) 以前: /getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户 核心 Filter;HiddenHttpMethodFilter 用法 开启页面表单的 Rest 功能 页面 form 的属性 method=post,隐藏域 _method=put、delete 等(如果直接 get 或 post,无需隐藏域) 编写请求映射 12345spring: mvc: hidden method: filter: enabled: true #开启页面表单的Rest功能 ...
大学生涯
未读Web 场景1.web 开发简介Spring Boot provides auto-configuration for Spring MVC that works well with most applications.(大多场景我们都无需自定义配置) The auto-configuration adds the following features on top of Spring’s defaults: Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans. 内容协商视图解析器和 BeanName 视图解析器 Support for serving static resources, including support for WebJars (covered later in this document)). 静态资源(包括 webjars) Automatic registration of Converter, GenericConverter, and Forma ...
大学生涯
未读最佳实践1.SpringBoot 应用如何编写 引入场景依赖 官方文档 查看自动配置了哪些(选做) 自己分析,引入场景对应的自动配置一般都生效了 配置文件中 debug=true 开启自动配置报告。 Negative(不生效) Positive(生效) 是否需要修改 参照文档修改配置项 官方文档 自己分析。xxxxProperties 绑定了配置文件的哪些。 自定义加入或者替换组件 @Bean、@Component… 自定义器 XXXXXCustomizer; 2.Lombok 简化开发Lombok 用标签方式代替构造器、getter/setter、toString()等鸡肋代码。 spring boot 已经管理 Lombok。引入依赖: 1234<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency> IDEA 中 F ...