
spring
大佛拈花
你现在的气质里,藏着你走过的路,读过的书和爱过的人
展开
-
Nacos注册中心
在我之前的文章https://blog.youkuaiyun.com/GoSaint/article/details/85039317中,讲了使用nacos替换zookeeper作为注册中心,今天我使用nacos集成SpringBoot作为配置中心和注册中心!在这之前我们先来看下nacos都有哪些功能点:动态配置服务动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配...原创 2020-04-18 00:05:48 · 445 阅读 · 2 评论 -
微服务治理之道
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.These services are built aroun..转载 2020-05-14 14:10:45 · 286 阅读 · 0 评论 -
微服务链路追踪原理
背景介绍在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时,很难从错综复杂的服务调用网络中找到问题根源,从而错失了止损的黄金时机。而链路追踪的出现正是为了解决这种问题,它可以在复杂的服务调用中定位问题,还可以在新人加入后台团队之后,让其清楚地知道自己所负责的服务在哪一环。除此之外,如果某个...转载 2020-04-24 12:58:35 · 375 阅读 · 0 评论 -
Nacos配置中心
在https://blog.youkuaiyun.com/GoSaint/article/details/105590470这篇文章中集成了SpringBoot,并且作为注册中心,接下来继续集成配置中心。1添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> ...原创 2020-04-18 14:02:56 · 524 阅读 · 0 评论 -
ZooKeeper 并不适合做注册中心
zookeeper 的 CP 模型不适合注册中心zookeeper 是一个非常优秀的项目,非常成熟,被大量的团队使用,但对于服务发现来讲,zookeeper 真的是一个错误的方案。在 CAP 模型中,zookeeper 是 CP,意味着面对网络分区时,为了保持一致性,他是不可用的。因为 zookeeper 是一个分布式协调系统,如果使用最终一致性(AP)的话,将是一个糟糕的设计,他的核...转载 2020-04-23 00:14:16 · 580 阅读 · 0 评论 -
found [date (Types#DATE)], but expecting [timestamp (Types#TIMESTAMP)]
在对应的列上加注解可以解决 @Column(name = "hiredate", columnDefinition = "DATE") private Timestamp hiredate;原创 2021-09-16 16:46:30 · 457 阅读 · 0 评论 -
Spring之ScopeMetadata
Spring之ScopeMetadata概述ScopeMetadataScopedProxyMode概述Spring在注册bean的时候。会通过bean的作用域来决定是否使用代理模式去创建bean。如果是单例模式,那么不会使用代理,非单例就会使用。并且如果这个bean实现了接口,就会使用JDK动态代理,如果继承类,就会使用Cglib代理。在AnnotatedBeanDefinitionReader方法doRegisterBean中,最后组装BeanDefinitionHolder的时候会决定使用代理原创 2021-01-06 09:29:58 · 391 阅读 · 1 评论 -
Spring IOC源码分析(基于注解)中
public AnnotationConfigApplicationContext(Class<?>... componentClasses) { this(); register(componentClasses); refresh();}回顾回顾上一节的基本流程。this()方法的主要作用是完成SpringIOC容器的初始化操作。这里包括如下几点:创建BeanDefinitionReader,bean定义读取器。该读取器读取对应的ioc容器实例。获取beanF.原创 2020-11-30 14:49:30 · 197 阅读 · 0 评论 -
Spring IOC源码分析(基于注解)上
1 入口代码public class Info { public static void main(String[] args) { ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); System.out.println(ac.getBean(AppConfig.class).name); }}2 AnnotationConfigApplicatio原创 2020-11-19 12:23:35 · 297 阅读 · 0 评论 -
Spring Cloud之consual注册中心
1 下载安装consual(Win)官网地址https://www.consul.io/docs/index.html百度网盘地址:https://pan.baidu.com/s/1zdyHaWyoJj23wt4qT8-7uA提取码:85p52 启动consualconsul.exe agent -dev本地环境,访问localhost:8500...原创 2020-04-28 12:49:19 · 875 阅读 · 0 评论 -
Spring Cloud config实战
今天在做一个项目的时候,对于一些系统或者接口的URL地址,感觉在一个项目里面很难管理;或者说各系统之间调用不方便。如果说在分布式项目中单独做一个模块去管理这些个常量或者属性文件的配置,也是可以的,并且之前也是这样做的;但是我认为没有必要去单独的部署一个应用去管理这些配置文件。突然想到了Spring Cloud Config这个组件。就打算实战一把。首先我们需要一个服务注册中心去管理这些个服...原创 2018-10-16 16:42:10 · 1164 阅读 · 5 评论 -
JWT 入门教程
JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。5、服务器收到 ...原创 2020-05-11 10:43:24 · 233 阅读 · 0 评论 -
SpringBoot项目(Spring security)获取登录用户用户名
String username=SecurityContextHolder.getContext().getAuthentication().getName();AuthUser user=userRepository.findFirstByUserName(username);SecurityContextHolder ==>从ThreadLocal中获取用户ThreadLoc...原创 2020-04-29 09:45:37 · 5257 阅读 · 4 评论 -
BeanFactory 简介以及它 和FactoryBean的区别
一 BeanFactory、BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()、containsBean()等管理Bean的通用方法。Spring的容器都是它的具体实现如:DefaultListableBeanFactoryXmlBeanFactoryApplicationContext这些实现类又从不同...原创 2020-03-30 21:24:37 · 409 阅读 · 0 评论 -
Spring IoC 加载过程
Spring IoC 加载过程再简单地总结一下 Spring IoC 加载的全部过程,大致可分为定位、解析、注册、实例化四个步骤:*定位:就是资源文件定位,资源文件可以是文件、URL、二进制数组,和Bean配置有关的通常是 XML / @Configuration / 注解(Java文件);一般是在 ApplicationContext 的实现类里完成的,可以将外部的资源,读取为 Resour...原创 2020-03-30 20:04:33 · 797 阅读 · 0 评论 -
Spring Bean的生命周期
大佛拈花:具体过程如下。(1)当调用者通过 getBean(beanName)向容器请求某一个 Bean时,如果容器注册了 org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor 接口,则在实例化 Bean之前,将调用接 口的postProcessBef...原创 2020-03-22 15:11:58 · 650 阅读 · 0 评论 -
《Spring实战》系列之Bean的装配-Days02
2.1 回顾 对于我第一天在bean的装配中写的,是一些基本的语法或者是Spring本身的一些规定,但是我没有对此进行深究。接下来就让我们仔细的讨论一下细节问题。和传统的类的定义和方法的调用做一些比较。这样就会体现出Ioc的特点。 下面的UML图就是我之前定义的一个接口和自己的一个实现。 public interface CompactDisc { void play()原创 2017-09-30 09:49:15 · 2593 阅读 · 0 评论 -
Spring5.0的第一次尝鲜
对于这次尝鲜,说白了和Spring5.0的新特性基本没有多大的关系,如果说您不小心进来了,却发发现文章的内容和标题似乎不太匹配,那么我将是非常的抱歉,因为这浪费了您宝贵的时间。但是我还是要说:因为这确实是Spring5.0中的一个demo.而我在这里写下这个Demo的原因是这个Demo全部是注解的配置,因为我的习惯还停留在XML的阶段。 好了,让我们引入context包吧,这里使用maven配置原创 2017-10-12 23:37:44 · 3578 阅读 · 0 评论 -
Spring IOC DefaultListableBeanFactory解析1
Spring的核心所在就是IOC以及AOP。但是我认为最为重要的还是IOC。关于IOC的基本概念我不涉及,反正就是将对象以及以来的权力交给Spring容器来处理。通常我们Spring入门的时候都会创建一个Java Bean。然后配置文件去定义这个bean。之后使用ApplicationContext或者BeanFactory来获取这个Bean的对象。我首先定义了一个User:p...原创 2018-11-15 13:09:07 · 271 阅读 · 0 评论 -
Spring IOC之ignoredDependencyInterface
在阅读Spring源码的时候,我曾经遇到了一个方法ignoredDependencyInterface();当时很是困惑,在查阅大量的资料的时候才初步的理解到了这个方法的作用。这篇文章是迈向Spring IOC源码的初步。可能在文章中存在个人的偏见或者主观臆测,希望大家不要留面子,直接指证,我们一起进步吧。好了,我们开始吧! 在这里我使用的源码是Spring4.3...原创 2018-12-15 14:11:27 · 2832 阅读 · 6 评论 -
Spring Alibaba Nacos替换dubbo zookeeper
阿里巴巴不得不说在开源方面是国内做的最好的,没有之一吧。先是druid数据库连接池。笔者有幸在学习之处就使用到它,它是在2012年开源的,但是大规模的使用却是在2015年。后来又推出了dubbo RPC框架。这个在2012年开源的,但是后续没有人维护,再到后来携程pull了一个分支自己去维护,也就是dubbox。直到2017年dubbo开始复活,并且每个月发布新的版本。在国内dubbo的使用还是...原创 2018-12-16 18:37:09 · 10842 阅读 · 4 评论 -
你了解Spring BeanFactoryAware嘛
其实再写这篇文章之前呢,我是看Spring IOC源码,可是老师啃不动。那么就从外围开始吧。在Spring生命周期的探索当中,其中网上主流的做法就是让我们的Bean实现一大波接口,到目前为止,这些接口的名称一个也没有记住,Spring的这个名称太长啦。其中有这么一个接口BeanFactoryAware。什么意思呢?在我之前的文章中为大家介绍过,那就是Spring的Bean是...原创 2018-12-25 00:46:02 · 9800 阅读 · 12 评论 -
SpringBoot使用ApplicationEvent&Listener完成业务解耦
这里写自定义目录标题构建项目创建UserRegister事件创建User对象UserService@EventListener实现监听ApplicationListener实现监听ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要...原创 2019-09-16 16:56:01 · 528 阅读 · 0 评论 -
Spring Resource文件操作接口
Spring中获取资源的方式一共有以下四种:通过Resource接口获取资源 通过ResourceLoader接口获取资源 通过ApplicationContext获取资源 将resource注入到bean中的方式获取资源下面是对每种方式的详细讲解 :1.通过Resource接口获取资源 Resource接口的实现类有...原创 2019-09-22 13:50:27 · 1105 阅读 · 0 评论 -
XML解析 验证之XSD和DTD验证以及 SpringXML验证源码分析
1.DTD(Documnet Type Definition)DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规...原创 2019-09-25 00:07:28 · 997 阅读 · 0 评论 -
Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
项目报错如下:Caused by: org.hibernate.AnnotationException: No identifier specified for entity:原因是没有加@Id注解,但是我发现我的字段上是加了的。最后发现引入的包不对。错误的包:import org.springframework.data.annotation.Id;正确的包:impo...原创 2019-10-10 14:50:43 · 236 阅读 · 0 评论 -
《Spring实战》系列之Bean的装配-Days01
1 自动化装配beanSpring通过两个方面实现对bean的自动装配1 ) 组件扫描(component scaning):Spring会自动发现Spring上下文中的bean2 ) 自动装配(autowriting):Spring自动满足bean之间的依赖1.1 创建可被发现的bean 现在我们创建一个接口:public interface CompactDisc {原创 2017-09-02 19:09:58 · 2563 阅读 · 0 评论