手写Spring框架,你Get到了吗?

在我们的日常工作中,经常会用到Spring、Spring Boot、Spring Cloud、Struts、Mybatis、Hibernate等开源框架,有了这些框架的诞生,平时的开发工作量也是变得越来越轻松,我们用 Spring Boot 分分钟可以新建一个Web项目。

记得自己刚开始工作的时候还是在用ServletWeb项目,自己写数据库连接池,用原生JDBC操作数据库,好了不发散了。回到这篇文章的主题,今天通过手写Spring框架,帮大家深入了解一下Spring的工作机制,文中涉及的代码只用来帮助大家理解Spring,不会在线上使用,有不严谨的地方还请大家掠过。

查看更多

理解PostgreSQL的模式、表、空间、用户间的关系

在平时的工作中,我们经常接触到数据库表用户以及角色的使用,由于经常使用默认的数据库表空间模式(Schema),所以我们往往忽略了数据库表空间和模式的概念以及作用。

接下来,先介绍一下模式和表空间的定义以及作用。

什么是Schema?

一个数据库包含一个或多个已命名的模式,模式又包含表。模式还可以包含其它对象, 包括数据类型函数操作符等。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,herschemamyschema都可以包含一个名为mytable的表。 和数据库不同,模式不是严格分离的:只要有权限,一个用户可以访问他所连接的数据库中的任意模式中的对象。

查看更多

Spring 5 响应式编程

要点

  • Reactor 是一个运行在 Java8 之上的响应式流框架,它提供了一组响应式风格的 API
  • 除了个别 API 上的区别,它的原理跟 RxJava 很相似
  • 它是第四代响应式框架,支持操作融合,类似 RxJava 2
  • Spring 5 的响应式编程模型主要依赖 Reactor

    查看更多

基于Zookeeper的服务注册与发现

背景

大多数系统都是从一个单一系统开始起步的,随着公司业务的快速发展,这个单一系统变得越来越庞大,带来几个问题:

  1. 随着访问量的不断攀升,纯粹通过提升机器的性能来已经不能解决问题,系统无法进行有效的水平扩展

  2. 维护这个单一系统,变得越来越复杂

  3. 随着业务场景的不同以及大研发的招兵买马带来了不同技术背景的工程师,在原有达达Python技术栈的基础上,引入了Java技术栈

    查看更多

使用Spring Cloud OAuth2和JWT保护微服务

采用 Spring Security Oauth2JWT 的方式,避免每次请求都需要远程调度 Uaa 服务,Uaa 服务只验证一次,返回JWT。返回的 JWT 包含了用户的所有信息,包括权限信息。

什么是JWT?

JSON Web Token(JWT)是一种开放的标准(RFC 7519),JWT定义了一种紧凑且自包含的标准,该标准旨在将各个主体的信息包装为 JSON 对象。主体信息是通过数字签名进行加密和验证的。常使用 HMAC 算法或 RSA(公钥/私钥的非对称性加密)算法对JWT进行签名,安全性很高。

查看更多

Spring AOP 源码解析

在 Spring 的容器中,我们面向的对象是一个个的 bean 实例,bean 是什么?我们可以简单理解为是 BeanDefinition 的实例,Spring 会根据 BeanDefinition 中的信息为我们生产合适的 bean 实例出来。

当我们需要使用 bean 的时候,通过 IOC 容器的 getBean(…) 方法从容器中获取 bean 实例,只不过大部分的场景下,我们都用了依赖注入,所以很少手动调用 getBean(...) 方法。

查看更多

Spring IOC容器源码解析

Spring 最重要的概念是 IOCAOP,本篇文章其实就是要带领大家来分析下 SpringIOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为Spring专家,不过一定有助于大家理解Spring的很多概念,帮助大家排查应用中和Spring相关的一些问题。为了降低难度,本文所说的所有的内容都是基于 xml 的配置的方式,实际使用已经很少人这么做了,至少不是纯 xml 配置,不过从理解源码的角度来看用这种方式来说无疑是最合适的。

查看更多

JVM知识总结

如何提升个人的专业能力?你可以Google搜一下,什么架构师之道呀、深入解读Spring源码呀等等等。我想说讲的都没错,技术的提升没有捷径,牛人指导我们学习线路,真正能让我们突破迷茫期,提升个人实力的还是得靠自己。当然有人带和没人带区别还是很大的。如果你觉得现在的工资很满意,平时上班也没什么压力,生活很惬意,不想提高个人实力,不想变成我们心中的大神牛人,那么恭喜你,有类标签很适合,佛系程序员。

查看更多