皮皮网

【源码燕窝价格】【捐款网站源码】【源码手机皮肤】spring 2源码解读

来源:cookie记录源码 时间:2024-12-23 00:02:12

1.SpringSecurity Oauth2Authentication对象使用
2.(二)springboot之spring-boot-starter-web
3.clickhouse 二(springboot+mybatis实现clickhouse的源码插入查询)

spring 2源码解读

SpringSecurity Oauth2Authentication对象使用

        在调用资源服务器的过程中,我们会将申请的token 作为header值进行传递,携带调用者的身份信息。但是资源服务器是如何通过token对调用者的身份进行判断的呢?

        Security中有一个Filter实现了对token信息的转换,将token值转换成了调用者的用户信息。该filter就是 Oauth2AuthenticationProcessingFilter

        一、查看源码

        查看Oauth2AuthenticationProcessingFilter的doFilter方法

        通过查看Oauth2AuthenticationProcessingFilter的dofilter方法,重点有两点

        (1)将request中的token提取出来封装成Authentication对象

        (2)将Authentication交给authenticationManager进行鉴权处理

        下面我们重点看下这两处的处理。

        二、token到Authentication对象转换实现

        Authentication authentication = tokenExtractor.extract(request);

        tokenExtractor在Oauth2AuthencationProcessingFilter中的默认实现是BearerTokenExtractor,我们查看BearerTokenExtractor的extract()方法。

        三、Authentication对象的鉴权

        Authentication authResult = authenticationManager.authenticate(authentication);

        此处的authenticationManager的实现类是Oauth2AuthenticationManager,而不是我们之前一直提到的ProvicerManager。我们看下Oauth2AuthenticationManager中的authenticate()方法。

        RemoteTokenService 的 loadAuthentication() 方法

        用户认证转换类

        * 接口层注入的 OAuth2Authentication对象中的 principal属性即在该类的extractAuthentication() 方法中实现的。

        * security默认使用的是 DefaultAccessTokenConverter类中的extractAuthentication()方法中使用。

        * 通过继承UserAuthenticationConverter该类,实现其中的extractAuthentication()方法来满足我们自己构造 principal属性的需求。

        * 在ResourceConfig类中,继续使用DefaultAccessTokenConverter,但是类中的UserAuthenticationConverter我们里换成我们自己的CustomUserAuthenticationConverter实现类。

        *

        * 我们构造的principal属性是map类,里面包含phone和userId两个字段。

(二)springboot之spring-boot-starter-web

       springboot版本:3.0.2

       通过查看spring-boot-starter-web依赖文件的源码,我们可以发现其依赖的解读jar包包括以下内容:

       spring-boot-starter-web依赖启动器的主要功能是为Web开发提供所有必要的底层依赖。

       因此,源码在pom.xml文件中引入spring-boot-starter-web依赖启动器之后,解读我们就可以直接进行Web场景的源码开发,无需额外导入Tomcat服务器或其他Web依赖文件。解读源码燕窝价格当然,源码这些依赖文件的解读版本号是由spring-boot-starter-parent父依赖进行统一管理的。

       详细依赖图,源码请访问:spring-boot-starter-web依赖图 思维导图模板_ProcessOn思维导图、解读流程图 获取。源码

clickhouse 二(springboot+mybatis实现clickhouse的解读插入查询)

       本文详细介绍了如何利用SpringBoot和Mybatis实现与ClickHouse数据库的集成,旨在演示插入和查询操作的源码捐款网站源码实现过程。ClickHouse,解读作为一款由Yandex公司开源的源码面向列的数据库管理系统,特别适用于实时生成分析数据报告,尤其在OLAP分析方面表现出色。

       为了实现与ClickHouse的集成,首先需要在项目中添加相应的源码手机皮肤Maven依赖。确保引入了SpringBoot和Mybatis的相关依赖,这将为后续的配置和操作打下基础。

       接下来,配置数据源时,需要定义与ClickHouse服务器的连接参数。这包括服务器地址、软件联盟源码端口、数据库名称以及用户和密码等信息。这一步骤至关重要,确保了项目的正常运行。

       在参数配置阶段,需要对Druid连接池进行配置。仿传奇源码Druid连接池能够有效管理数据库连接,优化资源使用,并提供连接监控功能,为项目的稳定性提供保障。

       对于Mapper.xml文件,需要编写SQL语句以实现对ClickHouse表的增删查改操作。这里主要关注的是插入和查询操作的实现,以展示ClickHouse在实时数据处理方面的高效。

       Mapper接口的编写遵循Mybatis的规范,定义了具体的SQL操作方法,与具体的数据库操作对应,使得业务逻辑与数据库操作分离,提高代码的可维护性和可读性。

       在controller接口中,通过调用Mapper接口的相应方法,将业务逻辑与具体的数据库操作关联起来,完成数据的插入和查询操作的集成。

       为了验证集成的正确性和性能,创建了一个ClickHouse表并插入了几条数据进行测试。通过执行查询操作,可以验证数据的正确性和查询性能。

       对于需要源码的读者,可以在评论区留下邮箱,以便获取完整的项目实现代码。

       参考文章:SpringBoot2 整合 ClickHouse数据库,实现高性能数据查询分析