自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1463)
  • 收藏
  • 关注

转载 Gradle 的使用教程 -Gradle 通过 mavenLocal() 指向本地仓库 -Gradle 依赖包的存储位置

// groovy 中定义变量// def 是弱类型,groovy会自动根据情况来给变量赋予对应的类型def i = 18;println i;// 字符串定义str1 = 'xiaoming' // 定义普通字符串str2 = "name:${str1}" //可以引用变量age:18''' //按格式定义字符串// 定义一个集合类型// 往list中添加元素// 取出list中第3个元素// 定义一个map// 向map中添加键值对// 打印出key3的值。

2024-02-29 09:57:04 303 1

转载 Gradle下载spring包出现Received status code 401 from server: Unauthorized

更多信息详见spring官方文档y:https://spring.io/blog/2020/10/29/notice-of-permissions-changes-to-repo-spring-io-fall-and-winter-2020。如果阿里云仓库里面没有,IDE还在报401的错误,也就是几乎没有办法下载到依赖的。如果是/libs-snapshot 或者 /libs-milestone,需要修改为/snapshot 或者 /milestone。//本地仓库,地址是maven本地仓库路径。

2024-02-29 09:54:48 268

原创 Spring Boot 之 ModelFactory

【代码】Spring Boot 之 ModelFactory。

2023-12-04 16:16:20 689

转载 MongoDB动态条件之分页查询

转自二、MongoTemplate结合Query三、MongoTemplate结合BasicQuery。

2023-11-29 14:37:09 462

转载 MongoDB使用篇 - 条件查询

nor 用于连接多个查询条件,表示查询的文档必须不符合所有条件。$not 用于一个查询条件,表示查询的文档必须不符合该条件。$expr 用来对文档中的两个字段进行比较,进而查询出符合条件的文档。$or 用于连接多个查询条件,表示查询的文档符合其中一个条件即可。$and 用于连接多个查询条件,表示查询的文档必须符合所有条件。$ne 查询与条件值不相同或者不存在的文档。$mod 查询字段值符合余数条件的文档。e.g. 查询字段a的值小于字段b的值的文档。

2023-11-29 14:28:07 668

转载 MongoDB 如何在MongoDB中设置自增的主键

自增主键是指在每次插入新数据时,自动分配一个唯一且递增的值作为主键。一些数据库,如MySQL,在表中使用自增主键非常方便。然而,在MongoDB中,并没有内置支持自增主键的功能。但是,我们可以使用其他方法来实现类似的功能。在MongoDB中,虽然没有内置支持自增主键的功能,但我们可以使用计数器集合或结合ObjectId的时间戳来实现类似的功能。通过上述方法,我们可以在插入新数据时,实现主键自增的效果,使每个文档都具有唯一且递增的主键值。

2023-11-28 13:42:56 377

转载 mongodb设置自增主键

在MongoDB中,文档的唯一标识符是一个称为"_id"的字段,它在每个文档中都是唯一的。默认情况下,MongoDB会自动生成一个唯一的"_id"字段,可以是任意类型的值,例如字符串、整数、对象等。但是,有时我们需要使用自增的整数作为主键,以便更方便地对文档进行排序和查询。例如,我们可能需要按照用户注册的顺序对用户进行排序,或者按照文章发布的时间顺序进行查询。现在,我们可以使用自定义函数来创建文档并设置自增主键。现在,我们可以使用自定义函数来创建文档并设置自增主键。3. 创建文档并设置自增主键。

2023-11-28 13:41:26 467

转载 Java MongoDB project 多表查询 mongodb 多表联查

1.主要功能 是将每个输入待处理的文档,经过$lookup 阶段的处理,输出的新文档中会包含一个新生成的数组列(户名可根据需要命名新key的名字 )。数组列存放的数据 是 来自 被Join 集合的适配文档,如果没有,集合为空(即 为[ ])聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息。在这种模式设计下,如果要查询订单表对应商品的库存情况,应如何写代码呢?实际上内连接只是需要过滤空值即可。此集合中的 sku 数据等同于订单集合中的商品名称。

2023-11-28 13:30:36 191

转载 springboot如何把HttpServletRequest传入到controller

是由如tomcat这种Servlet容器创建的。Tomcat 创建的 Request 和 Response 的类结构图。至于这个是怎么传到你对应的controlle法内的,实际上就是SpringMVC里面的起的作用。这里先不展开,下面再讨论,先看一张图。

2023-10-11 16:53:00 260

转载 Spring Boot注入Servlet、Filter、Listener 注解方式和使用RegistrationBean二种方式 加源码分析

2. urlPatterns = {"/css/*", "/images/*"} 当请求 /css/目录资源或者 /images/目录下资源的时候,会经过该过滤器。2. urlPatterns = {"/css/*", "/images/*"} 当请求 /css/目录资源或者 /images/目录下资源的时候,会经过该过滤器。//"/servlet01", "/servlet02" 就是注入的Servlet的url-pattern。//创建原生的filter。

2023-07-13 09:46:27 119

转载 SpringServletContainerInitializer

serlvet容器启动时 ,会将SPI注册的Java EE 接口 ServletContainerInitializer 的所有实现类(例如:SpringServletContainerInitailizer)挨个回调 onStartup 方法,,而 onStartup需要的参数,就是通过@HandlerType 传递的,在jar包的META-INF/services/ 下面创建一个文件,,文件名是接口的全限定名,,,文件内容是接口的实现类的全限定名,,只能在使用jar文件中,不能使用在web项目中。

2023-06-28 15:40:06 129

转载 java类加载机制

我们把上面生成的SayHello.class改为SayHello.myclass(这样反编译jdui就无法查看),然后自定义类加载器加载SayHello.myclass正在上传…重新上传取消image.png/*** 需要实现从myClass加载*/@Override/*** 把一个文件转化为byte字节数组。

2023-04-27 14:30:49 349

转载 一文搞懂SpringSecurity---[Day05]anyRequest,antMatcher,regexMatchers,mvcMatchers详解

在Spring Security的配置类中配置 .servletPath() 是 mvcMatchers()返回值特有的方法,antMatchers()和 regexMatchers()没有这个方法。无论是 antMatchers() 还是 regexMatchers() 都具有两个参数的方法,其中第一个参数都是HttpMethod,表 示请求方式,当设置了 HttpMethod 后表示只有设定的特定的请求方式才执行对应的权限设置。参数是不定向参数,每一个参数是一个ant表达式,用于匹配URL规则。

2023-04-11 14:20:49 466

转载 Spring Security Config : HttpSecurity安全配置器 ExpressionUrlAuthorizationConfigurer

这里每组RequestMatcher表示一组调用者想设定成相同权限控制的Http method/URL pattern,这里所设置的权限属性其实是基于SpEL的权限表达式。// 安全配置器指定一个安全表达式处理器 SecurityExpressionHandler,// 添加一组需要共同权限设置的 RequestMatcher,并对这组 RequestMatcher 设置相同的权限控制。

2023-04-06 17:23:26 1206

转载 Spring Security Config : AbstractInterceptUrlConfigurer

创建目标FilterSecurityInterceptor用到的AccessDecisionManager可以由调用者设置,如果不设置,则使用该方法创建一个缺省的AccessDecisionManager,该缺省的AccessDecisionManager实现类使用AffirmativeBased,一票赞成即可通过。抽象方法,要求子类提供实现。抽象方法,要求子类提供实现。// 将新建的安全拦截过滤器 FilterSecurityInterceptor 添加到目标安全构建器 http 的Filter清单,

2023-04-06 17:22:32 103

转载 Spring security源码解析系列04-AutowireBeanFactoryObjectPostProcessor分析

这里有一个参数的构造函数 ,属性类型 是 AutowireCapableBeanFactory. 这个 构造 方法就是在Spring 注入的时候调用。//InitializingBean 的afterPropertiesSet 调用, 自定义的方法的反射调用。// 这里调用 initializeBean 方法,主要是对 object 进行 属性完善,// 如果是 SmartInitializingSingleton类型,加入列表。//主要是进行Aware 的各种类型扩展,

2023-03-27 19:53:23 144

转载 PostProcessor(后置处理器)

前面介绍Spring。以及,还有一个。这些相当于工具,那谁来操作这些工具呢?幕后的操作者就是Spring中后置处理器(PostProcessor)。BeanFactoryPostProcessor(Bean 工厂后置处理器)和BeanPostProcessor(Bean 后置处理器)下面简述一下它们的作用别小看上面三个接口,Spring绝大部分重要技术都是这三个接口的子类来实现,它们也是扩展接口,可以自定义类来实现它们,以增强Spring功能或者是扩展Spring功能,又或是第三方框架。

2023-03-27 19:52:18 163

转载 Spring Security 源码分析(一):过滤器链

实例 调用apply方法获取中的配置,并调用buildinit();/*** 内部配置初始化*//*** 配置逻辑*/可以看到构建操作为将通过apply方法应用进来的配置分别初始化和构建,链条为。中的(认证管理器生成配置)、(过滤器管理器生成配置)、(过滤器生成配置) 都是继承通过这个链条生成目标对象,这 3 个配置也是的配置核心。

2023-03-22 14:15:47 422

转载 WebSecurity源码分析

WebSecurity是spring-security整个体系里面最为重要的一个安全类,通过之前的文章分析,我们可以得知spring-security是通过一个名称为springSecurityFilterChain的过滤器对所有的请求进行过滤的,同时在WebSecurityConfiguration源码分析中我们可以得知这个过滤器是通过以下方式被WebSecurity构建出来的123456789101112= null&&!if (!});

2023-03-22 14:12:38 513

转载 Spring Security 源码分析九:Java config - 阶段性总结

本文是对 Spring Security Core 4.0.4 Release 进行源码分析的系列文章之一;本博文是有关 Spring Security 的配置相关的内容的阶段性总结;本文为作者的原创作品,转载需注明出处;笔者将千言万语汇集成了上面这张图;从左至右,DelegatingFilterProxy 是六大之一;它的目的就是将不同的访问请求转发到对应的 SecurityFilterChain 上;比如,将/web/**请求转发到上,将/foo/**转发到上;

2023-03-22 14:12:01 90

转载 【Spring-Security源码分析】WebSecurity

对用户请求的认证是使用的authenticationManager.authenticate(),关于这部分请参考https://blog.csdn.net/shenchaohao12321/article/details/87721655,认证成功后会使用accessDecisionManager.decide()方法完成用户访问的授权,下面分析授权流程。使用默认实现,这意味着此后将返回servletPath和pathInfo的原始值,而不是用于安全模式匹配的修改后的值。

2023-03-21 16:27:26 438

转载 Spring Security Config : AbstractConfiguredSecurityBuilder

在生命周期基础之上实现并final了基类定义的抽象方法#doBuild,将构建划分为三个主要阶段#init,#configure,#performBuild;对 #init/#configure阶段提供了前置回调#beforeInit/#beforeConfigure空方法供基类扩展;// 构建过程配置方法 : 调用所有 SecurityConfigurer 的 #configure 配置方法。// 构建过程初始化方法 : 调用所有 SecurityConfigurer 的 #init 初始化方法。

2023-03-21 16:21:29 207

转载 如何使用IDEA画UML图

UML 是在消化、吸收、提炼至今存在的所有软件建模语言的基础上提出的,集百家之所长,它是软件建模语言的集大成者。UML还突破了软件的限制,广泛吸收了其他领域的建模方法,并根据建模的一般原理,结合了软件的特点,因此具有坚实的理论基础和广泛性。统一建模语言 (Unified Modeling Language,UML) 是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

2023-03-17 11:25:08 1391

转载 SpringSecurity------WebSecurityConfiguration配置类

简单的说,这个类的作用就是用来创建FilterChainProxy,FilterChainProxy是一个Servlet Filter,他是一组SecurityFilterChain的代理,用于管理这些SecurityFilterChain。这个方法是接口ImportAware的方法,当前配置类是通过@EnableWebSecurity注解上的@Import注解引入的,实现该接口的方法使得当前配置类可以获取到@EnableWebSecurity的debug属性值。

2023-03-15 15:35:50 1336

转载 SpringBoot--@Configuration(proxyBeanMethods = false) 的作用

如果配置类中的@Bean标识的方法之间不存在依赖调用的话,可以设置为false,可以避免拦截方法进行代理操作,提升性能。可以支持通过常规Java调用相同类的@Bean方法而保证是容器内的Bean,这有效规避了在“Lite模式”下操作时难以跟踪的细微错误。会走bean的生命周期中的一些行为(比如:@PostConstruct、@Destroy等 Spring中提供的生命周期)@Bean标识的返回值对象还是会放入到容器中的,从容器中获取bean还是可以是单例的,会走生命周期。如果为true,则是Full模式。

2023-03-13 10:45:48 291

转载 spring-boot-kafka启动报错,无法自动创建Topic

经过排查和寻找方案,才知道原因,我的Kafka版本是2.3.1,凡是2.2版本以上的,都添加了一个新的属性。因此需要在application.yml文件这样设置一下就Ok了。

2023-02-22 17:53:18 957

转载 kafka 3.0.0 Windows下启动不了的问题及kafka使用教程

删除topic会报错,此时停掉所有的cmd,然后将日志文件删除,重新启动可以解决。# broker.id 要保持唯一,只启动一台的话则不需修改。replication-factor:设置分区副本。因kafka3.0之后内置zk所以不需要额外下载。# 修改zk连接地址,默认本机启动则不需要修改。partitions:分区。然后就可以快乐的发送啦。# 修改日志存放位置。# 修改日志存放位置。

2023-02-22 15:08:23 555

转载 activemq Artemis笔记

Queue 是和Address关联的,Address对Queue是一对多的关系,当对应于一个Address的消息到来时,消息讲发送给Address的一个或多个Queue(取决于Routing Types的配置),Queue同时可以配置成自动创建和删除。消息{1,2,3,4,5}依次发送到address.foo的Q1,Consumer 1 & Consumer 2 共同消息Q1的一部分消息,Consumer 1 & Consumer 2之间的负载取决于Artemis的负责策略。

2023-02-20 20:08:37 560

转载 window下安装Apache ActiveMQ Artemis消息队列, 搭建MQTT服务器

Apache ActiveMQ™是最流行的开源,多协议,基于Java的消息服务器。它支持行业标准协议,因此用户可以通过广泛的语言和平台选择。可以使用C,C ++,Python,.Net等连接。使用无处不在的AMQP协议集成您的多平台应用程序。使用STOMP通过websockets 在Web应用程序之间交换消息。使用MQTT管理您的IoT设备。支持您现有的JMS基础架构及其他。ActiveMQ提供强大的功能和灵活性,以支持任何消息传递用例。在ActiveMQ官网“经典”的5.x Broker。

2023-02-20 18:32:07 510

转载 CentOS8安装ActiveMQ Artemis

1、下载安装包https://activemq.apache.org/components/artemis/download/,选择tar.gz格式的安装包apache-artemis-2.17.0-bin.tar.gz。*://xxx.xxx.xxx.xxx*(外网访问地址)*://192.168.1.103*(内网访问地址)5、修改配置文件:进入/broker/etc目录。

2023-02-20 18:27:47 184

转载 activemq 下载以及安装、应用

System.out.println("从out.queue队列收到的回复信息为:"+text);System.out.println("Consumer收到的信息为:"+text);访问 http://localhost:8161/console 进入监视界面。将artemis解压完成后,在重新建一个文件夹artmisbroker。使用Windows service方式运行artemis。即可在artmisbroker目录下生成所需的文件。在springboot中的使用。

2023-02-20 18:25:23 214

转载 Windows安装并配置ActiveMQ-Artemis环境包

apache-artemis的端口修改在D:\jenkins_cj\apache-artemis-2.10.0\bin\myartemis\etc\broker.xml文件下。在D:\jenkins_cj\apache-artemis-2.10.0\bin目录下有新生成的myartemis目录。五、切换到D:\jenkins_cj\apache-artemis-2.10.0\bin目录下。三、下载完成后,解压到任意目录,我是解压到了D:\jenkins_cj。七、运行后,输入账户:admin。

2023-02-20 18:24:32 501

转载 Postgres spring boot R2dbc 应用程序中缺少 DatabaseClient

与直接注册 ConnectionFactory 实例相比,配置支持还有一个额外的优势,即还为容器提供了一个 ExceptionTranslator 实现,该实现将 R2DBC 异常转换为 Spring 的可移植 DataAccessException 层次结构中的异常,用于使用 @Repository 批注注释的数据访问类。这种方法允许您使用标准的 io.r2dbc.spi.ConnectionFactory 实例,容器使用 Spring 的 AbstractR2dbcConfiguration。

2023-02-17 14:49:45 49

转载 ForkJoin看这篇就够了!

求解出子问题的解,合并得到原问题的解。Fork/Join采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务的结果再进行汇总返回,得到最终的任务。为了减少在帮助其他线程执行任务时发生竞争,会使用双端队列来存放任务,被窃取的任务只会从队列的头部获取任务,而正常处理的线程每次都是从队列的尾部获取任务。每个线程都会先保证将自己队列中的任务执行完,当自己的任务执行完之后,会去看其他线程的任务队列中是否有未处理完的任务,如果有则会帮助其他线程执行;

2023-02-15 17:24:54 147

转载 PostgreSQL安装教程

数据库初始化后,默认会创建一个名为 postgres 的linux登录用户,这里进行密码修改。# 找到listen_address那里,解开注释并修改引号内localhost的值为*同样的还是先到bin目录下,备份文件也拷贝这里。7. 修改数据库登录密码。

2023-02-14 17:22:23 142

转载 ES可视化工具--ElasticHD--下载、安装、使用

1. 下载zip压缩包:https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/1. 下载:https://github.com/360EntSecGroup-Skylar/ElasticHD/releases。github地址:https://github.com/360EntSecGroup-Skylar/ElasticHD。原文网址:ES可视化工具--ElasticHD--下载、安装、使用_IT利刃出鞘的博客-CSDN博客。

2023-02-02 16:04:45 550

转载 lombok 基础注解之 @Value

作用于类,使所有的成员变量都是 final 的,是以下注解的集合:@ToString、@EqualsAndHashCode、@Getter、@RequiredArgsConstructor。/** --------------- equals、hashCode、toString 省略 --------------- **/适合加在值不希望被改变的类上,像是某个类的值当创建后就不希望被更改,只希望读它而已 适合用在 POJO 或 DTO 上。所有的成员变量都是 final 的 不会这么做。

2023-01-31 15:40:22 704

转载 Spring的@Configurable

大家都知道,在Spring容器里的对象可以通过@Autowired来注入,但是如果这个对象是你自己new出来的,恐怕很难通过@Autowired来获得对象了。我们先看一下我们的一个普通对象,这个对象里我们注入一个Spring的ApplicationContext。@Configurable这个注解就是为了给非Spring容器管理的对象提供注入Spring容器内对象的一个注解。可以看到,Spring为我们添加了很多方法,这也就解释了为啥能注入spring bean的原因了。我们写测试类来看看结果,

2023-01-31 14:45:42 1090

转载 解决Invalid character found in the request target. The valid characters are defined in RFC 7230 and RF

conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=|  ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},然后去掉这句话的注释。但若是在IE浏览器上进行访问,这个错误还是会出现,在IE上访问出现这个错误的原因:因为url的参数json中有双引号,火狐和谷歌浏览器会自动对url进行转码,但IE不会。

2022-12-14 13:28:14 8083

转载 Spring事务aftercommit原理及实践

我们的aftercommit在triggerAfterCommit执行,这个方法里面抛出了异常,因为没有catch,异常会往上传递,在cleanupAfterCompletion里也没有处理异常,但是对于mybatis来讲,它改变了autocommit状态,所以更改被提交了。这是一个你想不到的坑。如果你要做数据库操作,你需要在一个新的事务中,可以使用。回顾我们上面展示的场景,我们在一个事务里,注册了一个aftercommit钩子,并且aftercommit里面,也会再次操作数据库,执行dml操作。

2022-11-17 21:51:24 1345

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除