- 博客(1468)
- 收藏
- 关注
转载 using写在命名空间外面和里面,有什么区别与讲究?
作用域不同,写在某一个namespace里面,是在该namespace中起作用,写在外面,则是全局作用域了,测试一下就知道了。在 namespace 声明的顶部:在该命名空间内有效(不建议采用)在文件的顶部:在整个文件内有效(该文件可以包含多个命名空间)使用 using 命令的位置?
2024-05-10 13:57:20 104
转载 C#入门(2): namespace、类
例如,两个开发团队可能都创建了名为File的类,但如果这两个类位于不同的名称空间中,那么就不会出现冲突。在这个例子中,我们看到Dog类的实例可以调用Eat方法(从Animal类继承)和Bark方法(在Dog类中定义)。继承是面向对象编程的一个重要特性,它可以让你创建一个新的类,继承另一个类的属性和方法。protected internal:受保护的内部成员可以在同一程序集的任何类中或者在同一个类的派生类中访问。protected:受保护的成员可以在其声明的类中或者在同一个类的派生类中访问。
2024-05-10 13:47:01 64
转载 详解main函数参数argc、argv及如何传参
到这里先知道 main 函数参数的形式即可,它第一个参数为 int 类型的变量,第二个参数是一个char* 类型的指针数组,关于char* argv[ ] 和 (char*)argv[] 的区别在下面文章中有详细讲解。(1)argc 代表命令行参数的个数,是一个整数值,虽然它也是一个参数,但不用去单独输入,在 给 argv[ ]传参后,系统会根据空格自动记录共有多少参数,并赋值给 argc。(3)argv是一个指向字符串数组的指针,每个元素都是一个指向传递给程序的参数的指针。
2024-05-10 13:44:59 123
转载 cron表达式详解
"/"代表触发步进(step),"/"前面的值代表初始值("*"等同"0"),后面的值代表偏移量,比如"0/25"或者"*/25"代表从0分钟开始,每隔25分钟触发1次,即0分钟触发1次,第25分钟触发1次,第50分钟触发1次;"/"代表触发步进(step),"/"前面的值代表初始值("*"等同"0"),后面的值代表偏移量,比如"0/20"或者"*/20"代表从0秒钟开始,每隔20秒钟触发1次,即0秒触发1次,20秒触发1次,40秒触发1次;"5/20"代表5秒触发1次,25秒触发1次,45秒触发1次;
2024-05-09 17:45:14 56
转载 Visual Studio 2019 C# 上位机入门(1):如何创建工程编写一个简单应用
如果找不到Windows 窗体应用,就参考这篇文章:https://blog.csdn.net/weixin_44084713/article/details/110850989。原因是在安装Visual Studio 2019的时候没有选择安装.Net的相关组件,如果安装的时候没点,那么就再单独安装一下也可以,具体参考文章里有。然后选择生成中的生成解决方案,在项目路径下的Release文件夹下可以找到生成的可执行文件。2.点击已经放置好的控件后右下角没有显示属性栏,可以鼠标放在控件上右键选择属性就有了。
2024-05-09 17:41:23 351
转载 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 3256 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 1414
转载 MongoDB使用篇 - 条件查询
nor 用于连接多个查询条件,表示查询的文档必须不符合所有条件。$not 用于一个查询条件,表示查询的文档必须不符合该条件。$expr 用来对文档中的两个字段进行比较,进而查询出符合条件的文档。$or 用于连接多个查询条件,表示查询的文档符合其中一个条件即可。$and 用于连接多个查询条件,表示查询的文档必须符合所有条件。$ne 查询与条件值不相同或者不存在的文档。$mod 查询字段值符合余数条件的文档。e.g. 查询字段a的值小于字段b的值的文档。
2023-11-29 14:28:07 1273
转载 MongoDB 如何在MongoDB中设置自增的主键
自增主键是指在每次插入新数据时,自动分配一个唯一且递增的值作为主键。一些数据库,如MySQL,在表中使用自增主键非常方便。然而,在MongoDB中,并没有内置支持自增主键的功能。但是,我们可以使用其他方法来实现类似的功能。在MongoDB中,虽然没有内置支持自增主键的功能,但我们可以使用计数器集合或结合ObjectId的时间戳来实现类似的功能。通过上述方法,我们可以在插入新数据时,实现主键自增的效果,使每个文档都具有唯一且递增的主键值。
2023-11-28 13:42:56 860
转载 mongodb设置自增主键
在MongoDB中,文档的唯一标识符是一个称为"_id"的字段,它在每个文档中都是唯一的。默认情况下,MongoDB会自动生成一个唯一的"_id"字段,可以是任意类型的值,例如字符串、整数、对象等。但是,有时我们需要使用自增的整数作为主键,以便更方便地对文档进行排序和查询。例如,我们可能需要按照用户注册的顺序对用户进行排序,或者按照文章发布的时间顺序进行查询。现在,我们可以使用自定义函数来创建文档并设置自增主键。现在,我们可以使用自定义函数来创建文档并设置自增主键。3. 创建文档并设置自增主键。
2023-11-28 13:41:26 723
转载 Java MongoDB project 多表查询 mongodb 多表联查
1.主要功能 是将每个输入待处理的文档,经过$lookup 阶段的处理,输出的新文档中会包含一个新生成的数组列(户名可根据需要命名新key的名字 )。数组列存放的数据 是 来自 被Join 集合的适配文档,如果没有,集合为空(即 为[ ])聚合框架是MongoDB的高级查询语言,它允许我们通过转换和合并多个文档中的数据来生成新的单个文档中不存在的信息。在这种模式设计下,如果要查询订单表对应商品的库存情况,应如何写代码呢?实际上内连接只是需要过滤空值即可。此集合中的 sku 数据等同于订单集合中的商品名称。
2023-11-28 13:30:36 313
转载 springboot如何把HttpServletRequest传入到controller
是由如tomcat这种Servlet容器创建的。Tomcat 创建的 Request 和 Response 的类结构图。至于这个是怎么传到你对应的controlle法内的,实际上就是SpringMVC里面的起的作用。这里先不展开,下面再讨论,先看一张图。
2023-10-11 16:53:00 511
转载 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 193
转载 SpringServletContainerInitializer
serlvet容器启动时 ,会将SPI注册的Java EE 接口 ServletContainerInitializer 的所有实现类(例如:SpringServletContainerInitailizer)挨个回调 onStartup 方法,,而 onStartup需要的参数,就是通过@HandlerType 传递的,在jar包的META-INF/services/ 下面创建一个文件,,文件名是接口的全限定名,,,文件内容是接口的实现类的全限定名,,只能在使用jar文件中,不能使用在web项目中。
2023-06-28 15:40:06 194
转载 java类加载机制
我们把上面生成的SayHello.class改为SayHello.myclass(这样反编译jdui就无法查看),然后自定义类加载器加载SayHello.myclass正在上传…重新上传取消image.png/*** 需要实现从myClass加载*/@Override/*** 把一个文件转化为byte字节数组。
2023-04-27 14:30:49 417
转载 一文搞懂SpringSecurity---[Day05]anyRequest,antMatcher,regexMatchers,mvcMatchers详解
在Spring Security的配置类中配置 .servletPath() 是 mvcMatchers()返回值特有的方法,antMatchers()和 regexMatchers()没有这个方法。无论是 antMatchers() 还是 regexMatchers() 都具有两个参数的方法,其中第一个参数都是HttpMethod,表 示请求方式,当设置了 HttpMethod 后表示只有设定的特定的请求方式才执行对应的权限设置。参数是不定向参数,每一个参数是一个ant表达式,用于匹配URL规则。
2023-04-11 14:20:49 647
转载 Spring Security Config : HttpSecurity安全配置器 ExpressionUrlAuthorizationConfigurer
这里每组RequestMatcher表示一组调用者想设定成相同权限控制的Http method/URL pattern,这里所设置的权限属性其实是基于SpEL的权限表达式。// 安全配置器指定一个安全表达式处理器 SecurityExpressionHandler,// 添加一组需要共同权限设置的 RequestMatcher,并对这组 RequestMatcher 设置相同的权限控制。
2023-04-06 17:23:26 1436
转载 Spring Security Config : AbstractInterceptUrlConfigurer
创建目标FilterSecurityInterceptor用到的AccessDecisionManager可以由调用者设置,如果不设置,则使用该方法创建一个缺省的AccessDecisionManager,该缺省的AccessDecisionManager实现类使用AffirmativeBased,一票赞成即可通过。抽象方法,要求子类提供实现。抽象方法,要求子类提供实现。// 将新建的安全拦截过滤器 FilterSecurityInterceptor 添加到目标安全构建器 http 的Filter清单,
2023-04-06 17:22:32 141
转载 Spring security源码解析系列04-AutowireBeanFactoryObjectPostProcessor分析
这里有一个参数的构造函数 ,属性类型 是 AutowireCapableBeanFactory. 这个 构造 方法就是在Spring 注入的时候调用。//InitializingBean 的afterPropertiesSet 调用, 自定义的方法的反射调用。// 这里调用 initializeBean 方法,主要是对 object 进行 属性完善,// 如果是 SmartInitializingSingleton类型,加入列表。//主要是进行Aware 的各种类型扩展,
2023-03-27 19:53:23 191
转载 PostProcessor(后置处理器)
前面介绍Spring。以及,还有一个。这些相当于工具,那谁来操作这些工具呢?幕后的操作者就是Spring中后置处理器(PostProcessor)。BeanFactoryPostProcessor(Bean 工厂后置处理器)和BeanPostProcessor(Bean 后置处理器)下面简述一下它们的作用别小看上面三个接口,Spring绝大部分重要技术都是这三个接口的子类来实现,它们也是扩展接口,可以自定义类来实现它们,以增强Spring功能或者是扩展Spring功能,又或是第三方框架。
2023-03-27 19:52:18 228
转载 Spring Security 源码分析(一):过滤器链
实例 调用apply方法获取中的配置,并调用buildinit();/*** 内部配置初始化*//*** 配置逻辑*/可以看到构建操作为将通过apply方法应用进来的配置分别初始化和构建,链条为。中的(认证管理器生成配置)、(过滤器管理器生成配置)、(过滤器生成配置) 都是继承通过这个链条生成目标对象,这 3 个配置也是的配置核心。
2023-03-22 14:15:47 563
转载 WebSecurity源码分析
WebSecurity是spring-security整个体系里面最为重要的一个安全类,通过之前的文章分析,我们可以得知spring-security是通过一个名称为springSecurityFilterChain的过滤器对所有的请求进行过滤的,同时在WebSecurityConfiguration源码分析中我们可以得知这个过滤器是通过以下方式被WebSecurity构建出来的123456789101112= null&&!if (!});
2023-03-22 14:12:38 666
转载 Spring Security 源码分析九:Java config - 阶段性总结
本文是对 Spring Security Core 4.0.4 Release 进行源码分析的系列文章之一;本博文是有关 Spring Security 的配置相关的内容的阶段性总结;本文为作者的原创作品,转载需注明出处;笔者将千言万语汇集成了上面这张图;从左至右,DelegatingFilterProxy 是六大之一;它的目的就是将不同的访问请求转发到对应的 SecurityFilterChain 上;比如,将/web/**请求转发到上,将/foo/**转发到上;
2023-03-22 14:12:01 130
转载 【Spring-Security源码分析】WebSecurity
对用户请求的认证是使用的authenticationManager.authenticate(),关于这部分请参考https://blog.csdn.net/shenchaohao12321/article/details/87721655,认证成功后会使用accessDecisionManager.decide()方法完成用户访问的授权,下面分析授权流程。使用默认实现,这意味着此后将返回servletPath和pathInfo的原始值,而不是用于安全模式匹配的修改后的值。
2023-03-21 16:27:26 589
转载 Spring Security Config : AbstractConfiguredSecurityBuilder
在生命周期基础之上实现并final了基类定义的抽象方法#doBuild,将构建划分为三个主要阶段#init,#configure,#performBuild;对 #init/#configure阶段提供了前置回调#beforeInit/#beforeConfigure空方法供基类扩展;// 构建过程配置方法 : 调用所有 SecurityConfigurer 的 #configure 配置方法。// 构建过程初始化方法 : 调用所有 SecurityConfigurer 的 #init 初始化方法。
2023-03-21 16:21:29 283
转载 如何使用IDEA画UML图
UML 是在消化、吸收、提炼至今存在的所有软件建模语言的基础上提出的,集百家之所长,它是软件建模语言的集大成者。UML还突破了软件的限制,广泛吸收了其他领域的建模方法,并根据建模的一般原理,结合了软件的特点,因此具有坚实的理论基础和广泛性。统一建模语言 (Unified Modeling Language,UML) 是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。
2023-03-17 11:25:08 1626
转载 SpringSecurity------WebSecurityConfiguration配置类
简单的说,这个类的作用就是用来创建FilterChainProxy,FilterChainProxy是一个Servlet Filter,他是一组SecurityFilterChain的代理,用于管理这些SecurityFilterChain。这个方法是接口ImportAware的方法,当前配置类是通过@EnableWebSecurity注解上的@Import注解引入的,实现该接口的方法使得当前配置类可以获取到@EnableWebSecurity的debug属性值。
2023-03-15 15:35:50 1738
转载 SpringBoot--@Configuration(proxyBeanMethods = false) 的作用
如果配置类中的@Bean标识的方法之间不存在依赖调用的话,可以设置为false,可以避免拦截方法进行代理操作,提升性能。可以支持通过常规Java调用相同类的@Bean方法而保证是容器内的Bean,这有效规避了在“Lite模式”下操作时难以跟踪的细微错误。会走bean的生命周期中的一些行为(比如:@PostConstruct、@Destroy等 Spring中提供的生命周期)@Bean标识的返回值对象还是会放入到容器中的,从容器中获取bean还是可以是单例的,会走生命周期。如果为true,则是Full模式。
2023-03-13 10:45:48 338
转载 spring-boot-kafka启动报错,无法自动创建Topic
经过排查和寻找方案,才知道原因,我的Kafka版本是2.3.1,凡是2.2版本以上的,都添加了一个新的属性。因此需要在application.yml文件这样设置一下就Ok了。
2023-02-22 17:53:18 1137
转载 kafka 3.0.0 Windows下启动不了的问题及kafka使用教程
删除topic会报错,此时停掉所有的cmd,然后将日志文件删除,重新启动可以解决。# broker.id 要保持唯一,只启动一台的话则不需修改。replication-factor:设置分区副本。因kafka3.0之后内置zk所以不需要额外下载。# 修改zk连接地址,默认本机启动则不需要修改。partitions:分区。然后就可以快乐的发送啦。# 修改日志存放位置。# 修改日志存放位置。
2023-02-22 15:08:23 711
转载 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 859
转载 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 697
转载 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 235
转载 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 262
转载 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 723
转载 Postgres spring boot R2dbc 应用程序中缺少 DatabaseClient
与直接注册 ConnectionFactory 实例相比,配置支持还有一个额外的优势,即还为容器提供了一个 ExceptionTranslator 实现,该实现将 R2DBC 异常转换为 Spring 的可移植 DataAccessException 层次结构中的异常,用于使用 @Repository 批注注释的数据访问类。这种方法允许您使用标准的 io.r2dbc.spi.ConnectionFactory 实例,容器使用 Spring 的 AbstractR2dbcConfiguration。
2023-02-17 14:49:45 102
转载 ForkJoin看这篇就够了!
求解出子问题的解,合并得到原问题的解。Fork/Join采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务的结果再进行汇总返回,得到最终的任务。为了减少在帮助其他线程执行任务时发生竞争,会使用双端队列来存放任务,被窃取的任务只会从队列的头部获取任务,而正常处理的线程每次都是从队列的尾部获取任务。每个线程都会先保证将自己队列中的任务执行完,当自己的任务执行完之后,会去看其他线程的任务队列中是否有未处理完的任务,如果有则会帮助其他线程执行;
2023-02-15 17:24:54 203
转载 PostgreSQL安装教程
数据库初始化后,默认会创建一个名为 postgres 的linux登录用户,这里进行密码修改。# 找到listen_address那里,解开注释并修改引号内localhost的值为*同样的还是先到bin目录下,备份文件也拷贝这里。7. 修改数据库登录密码。
2023-02-14 17:22:23 179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人