
框架
Piconjo_Official
你的生活我的梦.
展开
-
使用SpringCloud实现Java分布式开发【part-7】:Spring Cloud Bus消息总线的介绍及使用
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Spring Cloud Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器除此之外 还有一些很有用的原创 2020-09-25 00:01:31 · 1932 阅读 · 1 评论 -
使用SpringCloud实现Java分布式开发【part-6】:Spring Cloud Config分布式配置中心的搭建及使用
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Spring Cloud Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器除此之外 还有一些很有用的原创 2020-09-23 11:10:19 · 676 阅读 · 0 评论 -
使用SpringCloud实现Java分布式开发【part-5】:Spring Cloud Gateway网关的介绍及使用、路由前缀处理、局部过滤器和全局过滤器、负载均衡和熔断配置、跨域配置
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Spring Cloud Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器【在本篇中 将介绍Spri原创 2020-09-22 15:28:03 · 2440 阅读 · 0 评论 -
使用SpringCloud实现Java分布式开发【part-4】:Feign服务调用的介绍及使用、Feign的负载均衡和熔断器、请求压缩和日期级别的配置
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器【在本篇中 将介绍Feign服务调用】Feign服原创 2020-09-22 09:12:09 · 1335 阅读 · 0 评论 -
使用SpringCloud实现Java分布式开发【part-3】:Hystrix熔断器的介绍和使用步骤、服务降级和服务熔断及超时时长的配置
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器【在本篇中 将介绍Hystrix熔断器】Hystr原创 2020-09-21 19:56:16 · 1375 阅读 · 0 评论 -
使用SpringCloud实现Java分布式开发【part-2】:Ribbon负载均衡的介绍及使用方式
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器【在本篇中 将介绍Ribbon负载均衡】Ribbo原创 2020-09-21 16:40:06 · 1942 阅读 · 0 评论 -
使用SpringCloud实现Java分布式开发【part-1】:Eureka注册中心的搭建、高可用集群的配置及高级配置
SpringCloud简介Spring Cloud是Spring旗下的项目之一Spring Cloud并不是一个组件 而是许多组件的集合其将当下非常流行的一些技术整合到了一起 实现了多个分布式开发中的重要功能协调了分布式环境中各个系统 并且为各类服务提供模板性的配置其主要涉及的组件包括:Eureka:注册中心Zuul或Gateway:服务网关Ribbon:负载均衡Feign:服务调用Hystrix或Resilience4j:熔断器【在本篇中 将介绍Eureka注册中心】Eurek原创 2020-09-21 15:21:27 · 1528 阅读 · 0 评论 -
MyBatis逆向工程generator自动代码生成
概述名字听起来挺高大上的 但实际上所谓MyBatis逆向工程 就是通过相应的插件自动生成MyBatis数据库连接的一些文件(例如mapper、pojo…)以提高工作效率步骤首先 导入依赖:<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5&l原创 2020-06-23 14:39:26 · 3099 阅读 · 0 评论 -
Netty的简介、BIO NIO AIO和Reactor模型
✅Netty简介Netty是由JBOSS提供的一个Java开源框架Netty提供异步的 基于事件驱动的网络应用程序框架和工具 用于快速开发高性能 高可靠性的网络服务器和客户端程序也就是说 Netty是一个基于NIO的客户端和服务器端编程框架使用Netty可以快速简单开发出一个网络应用 例如实现了某种协议的客户端和服务端应用相当于 Netty是简化了网络应用的编程开发过程特点Netty提供了简单易用的API基于事件驱动的编程方式来编写网络通信程序支持更好的吞吐量✅BIO、NIO、AIO原创 2020-06-22 16:55:16 · 2662 阅读 · 0 评论 -
SpringBoot集成Spring Security用JWT令牌实现登录和鉴权 [ 附源码 ]
最近在做项目的过程中 需要用JWT做登录和鉴权 查了很多资料 都不甚详细 在踩过很多坑之后整理了一下 做个笔记一、概念什么是JWTJson Web Token (JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)该token被设计为紧凑且安全的 特别适用于分布式站点的单点登录(SSO)场景随着JWT的出现 使得校验方式更加简单便捷化JWT实际上就是一个字符串 它由三部分组成:头部 载荷和签名用[.]分隔 类似于:xxxx.xxxx.xxxx直接根据t原创 2020-05-16 14:38:49 · 6839 阅读 · 19 评论 -
SpringBoot专题学习Part30:SpringBoot整合Spring Security实现Web权限控制【完结】
一、概述目前流行的安全框架有Shiro和Spring SecurityShiro较简单易用Spring Security较复杂 但功能强大Spring Security能无缝整合SpringBoot 因此SpringBoot底层使用的是SpringSecuritySpring Security是针对Spring项目的安全框架 其可以实现强大的web安全控制对于安全控制 仅需引入spri...原创 2020-04-04 18:29:34 · 9132 阅读 · 0 评论 -
SpringBoot专题学习Part29:SpringBoot的Async异步任务、Scheduled定时任务、mail邮件发送任务
一、Async异步任务在Java应用中绝大多数情况下默认都是通过同步的方式来实现交互处理的但在处理与第三方系统交互的时候 容易造成响应迟缓的情况可以使用多线程来完成此类任务 但其实 在Spring 3.x之后 已经内置了@Async注解来完美解决该问题首先来模拟一个同步任务响应迟缓的场景 以供比较:Service:@Servicepublic class AsyncService {...原创 2020-04-03 23:04:43 · 8061 阅读 · 0 评论 -
SpringBoot专题学习Part28:SpringBoot整合Elasticsearch(使用Jest和Spring Data Elasticsearch进行操作)
一、前言Elasticsearch是一个底层基于Lucene的分布式搜索服务 且提供了Restful风格的API 采用多shard(分片)的方式保证数据安全 还提供了自动resharding的功能Elasticsearch可以快速存储 搜索和分析海量数据SpringBoot默认支持两种技术来和Elasticsearch进行交互:Jest和Spring Data Elasticsearch...原创 2020-04-03 19:04:42 · 8680 阅读 · 0 评论 -
Elasticsearch搜索中间件的Docker环境下安装和基本使用操作(增删改查、条件搜索、全文搜索、短语搜索、高亮搜索)
一、前言检索功能是应用中非常常见的功能 而开源的Elasticsearch是全文搜索引擎的首选Elasticsearch是一个底层基于Lucene的分布式搜索服务 Lucene是开源软件工具包 并不能直接使用而Elasticsearch相当于是对其的封装 且提供了Restful风格的API 采用多shard(分片)的方式保证数据安全 还提供了自动resharding的功能github等大型...原创 2020-04-02 22:42:09 · 8426 阅读 · 0 评论 -
SpringBoot专题学习Part27:SpringBoot整合RabbitMQ(发送接收消息、序列化、监听消息、AmqpAdmin的使用)
一、介绍RabbitMQ是一套开源的消息队列服务软件 是由LShift提供的一个AMQP的开源实现由以高性能 健壮以及可伸缩性出名的Erlang写成具有很高的稳定性和可靠性二、使用1、准备和配置首先是引入RabbitMQ的依赖若使用Spring Initializer创建项目 可在创建的时候带上RabbitMQ模块或者直接手动引入依赖:<dependency> &...原创 2020-04-01 14:23:46 · 9289 阅读 · 0 评论 -
消息中间件RabbitMQ的核心概念和运行机制
一、概念RabbitMQ是一套开源的消息队列服务软件 是由LShift提供的一个AMQP(Advanced Message Queuing Protocol高级消息队列协议)的开源实现由以高性能 健壮以及可伸缩性出名的Erlang写成具有很高的稳定性和可靠性1、核心概念:Message(消息):消息是不具名的 它由消息头和消息体组成消息体是不透明的 而消息头则由一系列的可选属性组...原创 2020-03-30 23:26:31 · 8666 阅读 · 0 评论 -
SpringBoot专题学习Part26:Spring Cache整合Redis实现缓存及SpringBoot 2.x新版本自定义CacheManager
Spring Cache默认使用的是ConcurrentMapCacheManager管理器创建的是ConcurrentMapCache缓存 然后将数据保存在ConcurrentMap中实际使用缓存中间件的场合会更多 例如Redis EhCache等Redis是一个高性能的支持网络 可基于内存亦可持久化的日志型 Key-Value数据库Spring Cache默认使用的是SimpleCac...原创 2020-03-30 00:23:33 · 8420 阅读 · 0 评论 -
SpringBoot专题学习Part25:Spring Cache缓存抽象的使用(@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig)
一、概念缓存是每个系统都应该考虑的功能 用于加速系统的访问和提升系统的性能例如一个电商网站的商品信息 如果每次都要查询数据库 耗时过大此时 可以引入一个缓存中间件 将商品数据信息放入缓存中 就不用查询数据库了 直接查询缓存即可缓存中若有 则直接使用 缓存中若没有 则查询数据库 并将数据信息放入缓存中因为 应用程序和缓存的交互是非常快的 速度比查询数据库要快的多 尤其是数据库庞大的情况下...原创 2020-03-28 20:50:48 · 7977 阅读 · 0 评论 -
Java爬虫框架WebMagic的介绍及使用(定时任务、代理)
一、概述1、介绍WebMagic的底层用到了HttpClient和Jsoup 能够更方便地开发爬虫WebMagic项目代码分为核心和扩展两部分其中:★核心部分(webmagic-core)是一个精简的 模块化的爬虫实现而扩展部分则包括一些便利的 实用性的功能★扩展部分(webmagic-extension)提供了一些便捷的功能 例如用注解模式编写爬虫等同时内置了一些常用的组件 便...原创 2020-03-28 09:59:10 · 10848 阅读 · 0 评论 -
SpringBoot专题学习Part24:自定义SpringBoot的启动器(Starter)
一、概述:Spring Boot的强大之处就在于能够抽取场景作为启动器只要加载了启动器 即可快速配置好相应的场景那么 自定义starter(场景启动器)的步骤是:1、首先要确定该场景需要的依赖是什么2、然后编写自动配置使用@Configuration注解来指定一个类为配置类使用@ConditionalOnXXX注解 在指定条件成立的情况下该自动配置类才生效例:@Condition...原创 2020-03-27 16:56:51 · 7832 阅读 · 0 评论 -
SpringBoot专题学习Part23:SpringBoot的启动原理 运行原理 自动配置原理及监听器的监听顺序
SpringBoot中有四个比较重要的事件回调机制ApplicationContextInitializerSpringApplicationRunListenerApplicationRunnerCommandLineRunner围绕着这四个接口 可了解SpringBoot的启动原理 运行原理 自动配置原理启动时 调用了SpringApplication类的run()方法pub...原创 2020-03-27 00:47:18 · 7800 阅读 · 0 评论 -
SpringBoot专题学习Part22:SpringBoot整合JPA - Spring Data JPA
一、概念1、什么是Spring DataSpring Data的目的是为了简化构建基于Spring框架应用的数据访问其包括了非关系数据库 Map-Reduce 框架 云数据服务等等 另外也包含对关系数据库的访问支持Spring Data的下面有很多子项目:– Spring Data Commons– Spring Data JPA– Spring Data KeyValue– Sp...原创 2020-03-25 17:45:34 · 8007 阅读 · 0 评论 -
SpringBoot专题学习Part21:SpringBoot整合MyBatis的配置及使用 - 配置文件实现
首先 引入Mybatis的启动器:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version><...原创 2020-03-25 15:45:28 · 7884 阅读 · 0 评论 -
SpringBoot专题学习Part20:SpringBoot整合MyBatis的配置及使用 - 注解实现
SpringBoot整合MyBatis 使得对数据库的操作变得非常方便可用注解和配置文件这两种方式来实现注解方式相对而言会更加简单首先 引入Mybatis的启动器:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-...原创 2020-03-25 00:17:48 · 7964 阅读 · 0 评论 -
SpringBoot专题学习Part19:SpringBoot配置及使用JDBC的Template和Druid的数据源监控
对于数据访问层 无论是SQL数据库还是NOSQL数据库 Spring Boot默认采用整合Spring Data的方式进行了统一的处理且Spring Data里添加了大量的自动配置 还引入各种Template和Repository来简化对数据访问层的操作 大大方便了开发者因而 只需进行简单的设置即可一、配置及使用JDBC与Template1、配置使用JDBC步骤很简单 三部曲:1、...原创 2020-03-23 23:28:19 · 7945 阅读 · 0 评论 -
SpringBoot切换成其它的嵌入式Servlet容器(Jetty和Undertow)
SpringBoot默认使用的内置Servlet容器是Tomcat然而 SpringBoot还支持其它的Servlet容器 默认的Tomcat只是其中一种SpringBoot还支持Jetty和UndertowJetty适合用于长链接应用 例如聊天Undertow是一个高性能非阻塞的Servlet容器 并发性能非常好 但不支持jsp若要切换 只需要在pom文件中排除自带的Tomcat...原创 2020-03-19 20:23:20 · 8030 阅读 · 0 评论 -
SpringBoot专题学习Part18:SpringBoot配置服务器参数和Web三大组件(Servlet、Filter、Listener)
简述通常的web应用需要打成war包 然后配置好Tomcat容器而SpringBoot启动的时候 外部无须Tomcat容器因为SpringBoot使用的是自带的嵌入式的Tomcat在启动器spring-boot-starter-web的内部自带了spring-boot-starter-tomcat 即嵌入式Tomcat配置服务器参数若是外部的Tomcat 想进行相应的配置 须进入co...原创 2020-03-19 17:48:13 · 11141 阅读 · 0 评论 -
SpringBoot专题学习Part17:SpringBoot自定义定制错误响应页面及JSON数据
有时候页面出现了一些错误 然后就会出现错误页面但是SpringBoot默认的错误页面有点丑 可以自定义修改一下用浏览器访问的时候 显示的是错误页面用其它途径访问的时候 返回的是JSON数据因而 分成这两部分来记录 该如何定制修改首先 是原理原理:SpringBoot处理异常在ErrorMvcAutoConfiguration类中其给容器添加了4个比较重要的类:1、Defa...原创 2020-03-19 15:33:31 · 8290 阅读 · 0 评论 -
SpringBoot专题学习Part16:SpringBoot实现国际化语言切换功能(i18n)
国际化是什么听起来很高大上的国际化 其实就是通过浏览器的语言信息来动态显示国际化效果通俗来说 就是 点击中文按钮的时候显示中文 点击英文按钮的时候显示英文(当然还支持其它语言国际化的实现步骤:1)、编写国际化配置文件2)、使用ResourceBundleMessageSource管理国际化资源文件3)、在页面取出国际化内容在SpringBoot内部已经实现了第2步和第3步 它的底...原创 2020-03-17 23:59:34 · 9024 阅读 · 0 评论 -
SpringBoot专题学习Part15:SpringBoot下的扩展和全面接管SpringMVC
在不结合SpringBoot时 要配置SpringMVC时 须写配置文件来配置路径转发和拦截器之类的组件例如:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/...原创 2020-03-16 23:53:55 · 7803 阅读 · 0 评论 -
SpringBoot专题学习Part14:SpringBoot下的SpringMVC自动配置的内容
Spring Boot已经在内部自动配置好了SpringMVC那么 具体是自动配置了哪些内容让我们来了解:注:英文内容是直接从官网扒的Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.自动配置了ViewResolver(视图解析器) 根据方法的返回值得到视图对象View 然后视图对象决...原创 2020-03-16 23:41:02 · 7827 阅读 · 0 评论 -
SpringBoot专题学习Part13:Thymeleaf模板引擎基础语法入门
SpringBoot默认不支持jsp页面支持模板引擎 例如Velocity Freemarker Thymeleaf等模板引擎就是将数据填充到模板中 最终生成一个页面不同模板引擎之间的语法不相同SpringBoot推荐Thymeleaf 语法更简单 且功能更强大Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎类似JSP Velocity FreeMaker...原创 2020-03-16 23:27:40 · 7915 阅读 · 0 评论 -
SpringBoot专题学习Part12:SpringBoot在Web开发中对静态资源的映射规则
静态资源是例如js css img等资源SpringBoot里的映射规则有很多种让我们分类来了解:一、配置webjars的路径所有/webjars/**都会在/META-INF/resources/webjars/下寻找静态资源webjars:以jar包的方式导入静态资源可以以Maven依赖的方式引入例如jquery bootstrap等js文件<dependency>...原创 2020-03-16 17:40:11 · 8033 阅读 · 0 评论 -
SpringBoot专题学习Part11:SpringBoot中日志文件的配置及使用
日志框架的选择目前市面上的日志框架:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…其中 使用日志分为日志的抽象层和日志的实现日志的抽象层:JCL(Jakarta Commons Logging)(更新极慢 最后一次2014年更新)SLF4j(Simple Logging Facade for Java)★jboss-loggin...原创 2020-03-16 15:40:39 · 7916 阅读 · 0 评论 -
SpringBoot专题学习Part10:详解SpringBoot的自动配置原理
自动配置原理SpringBoot在启动时 会加载主配置类 通过注解开启自动配置功能@EnableAutoConfiguration该注解的作用:利用选择器来为Spring容器导入一些组件其底层有一个方法:List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes)...原创 2020-03-15 23:44:51 · 7938 阅读 · 0 评论 -
SpringBoot专题学习Part9:SpringBoot配置文件加载位置、优先级及外部配置加载顺序
一、配置文件加载位置及优先级配置文件默认可放在这四个目录下:file:./config/file:./classpath:/config/classpath:/且由上到下的优先级是从高到低的 所有位置的文件都会被扫描并加载 互补配置高优先级配置的内容会覆盖低优先级配置的内容 高优先级未配置的属性则用低优先级的file:当前项目根目录下classpath:当前项目类目录下...原创 2020-03-15 22:10:28 · 7817 阅读 · 0 评论 -
SpringBoot专题学习Part8:文件占位符和Profile
一、文件占位符随机数可用占位符:${random.value}${random.int}${random.long}${random.int(10)}${random.int[1024,65536]}若获取的是未配置的值 则会报错若获取的是未定义的值 则会将表达式原封不动地输出出来例:person.name=张三${random.uuid}person.age=${r...原创 2020-03-15 21:56:20 · 7845 阅读 · 0 评论 -
SpringBoot专题学习Part7:注解方式@PropertySource和@ImportResource导入配置文件
@PropertySource注解@PropertySource:加载指定的配置文件@ConfigurationProperties默认是从全局配置文件中获取值若不是从全局配置文件中获取值 则须加上@PropertySource注解来指定@PropertySource的value值还可以传入数组的方式加载多个配置文件person.name=陈涛person.age=19person....原创 2020-03-15 19:53:13 · 6523 阅读 · 0 评论 -
SpringBoot专题学习Part6:SpringBoot属性的注解配置方式
配置的历史:Spring1.0时代此时jdk1.5刚刚出来 注解开发并未盛行 一些Spring配置都是xml格式Spring2.0时代Spring引入了注解开发 但并不完善 因此并未完全替代xml 此时是将xml与注解相结合Spring3.0时代3.0以后的Spring的注解已经非常完善了 因此Spring推荐使用完全的java配置来代替xml配置但在国内并未推广流行现在Spri...原创 2020-03-15 19:08:47 · 7781 阅读 · 0 评论 -
SpringBoot专题学习Part5:配置文件中的值的获取/@ConfigurationProperties和@Value的使用及对比
@ConfigurationProperties和@Value这两个注解都能获取配置文件中的属性值那么 它们都是如何使用的 且有什么具体的区别 使用时有什么注意事项呢废话不多说 直接进入正题两个用于测试的实体类:public class Dog { private String name; private Integer age;}public class Perso...原创 2020-03-15 17:11:04 · 7946 阅读 · 0 评论