<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[think12的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/think12</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; think12]]></copyright><item><title><![CDATA[undetected_chromedriver解决网页被检测(转载)]]></title><link>https://blog.csdn.net/think12/article/details/139547579</link><guid>https://blog.csdn.net/think12/article/details/139547579</guid><author>think12</author><pubDate>Sat, 08 Jun 2024 16:03:51 +0800</pubDate><description><![CDATA[主要原因是selenium打开的浏览器指纹和人工操作打开的浏览器指纹是不同的，比如最熟知的window.navigator.webdriver关键字，在selenium打开的浏览器打印返回结果为true，而正常浏览器打印结果返回为undefined，我们可以在(https://bot.sannysoft.com/)网站比较各关键字。stealth.min.js文件来源于puppeteer，有开发者给 puppeteer 写了一套插件，叫做puppeteer-extra。二、Selenium为何会被检测。]]></description><category></category></item><item><title><![CDATA[用原生js写一个弹窗消息提醒插件（转载）]]></title><link>https://blog.csdn.net/think12/article/details/133309064</link><guid>https://blog.csdn.net/think12/article/details/133309064</guid><author>think12</author><pubDate>Tue, 26 Sep 2023 14:36:48 +0800</pubDate><description><![CDATA[喏，就是这么一个效果。]]></description><category></category></item><item><title><![CDATA[python selenium爬虫自动登录实例]]></title><link>https://blog.csdn.net/think12/article/details/131905638</link><guid>https://blog.csdn.net/think12/article/details/131905638</guid><author>think12</author><pubDate>Mon, 24 Jul 2023 21:43:35 +0800</pubDate><description><![CDATA[一、概述我们要先安装selenium这个库，使用pip install selenium 命令安装，selenium这个库相当于机器模仿人的行为去点击浏览器上的元素，这时我们要用到一个浏览器的驱动（这里我用的是谷歌浏览器）。二、安装驱动确认浏览器版本首先我们先要查看自己浏览器的版本，谷歌浏览器的话点右上角三个点--帮助--关于 Chrome我们会看到自己的浏览器版本，可以看到我的浏览器版本为100.0.4896.127（正式版本）]]></description><category></category></item><item><title><![CDATA[SQL Server Management Studio默认英文输入法]]></title><link>https://blog.csdn.net/think12/article/details/129835483</link><guid>https://blog.csdn.net/think12/article/details/129835483</guid><author>think12</author><pubDate>Wed, 29 Mar 2023 13:59:10 +0800</pubDate><description><![CDATA[在SQLServer来回切换的时候，会自动切换成中文输入法，可以通过设置来修改为英文输入法。以SQLServer 2014为例。3、重启SQLServer即可。]]></description><category></category></item><item><title><![CDATA[Linux安装MySQL8.0]]></title><link>https://blog.csdn.net/think12/article/details/127710910</link><guid>https://blog.csdn.net/think12/article/details/127710910</guid><author>think12</author><pubDate>Sat, 05 Nov 2022 23:32:06 +0800</pubDate><description><![CDATA[linux,mysql]]></description><category></category></item><item><title><![CDATA[Java 字符串数组转化为对象]]></title><link>https://blog.csdn.net/think12/article/details/122548228</link><guid>https://blog.csdn.net/think12/article/details/122548228</guid><author>think12</author><pubDate>Mon, 17 Jan 2022 20:55:50 +0800</pubDate><description><![CDATA[import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
    
    @Test
    public void stringToArrayObject() {
        String jsonStr = "[{\"activityName\":\"双十一活动1\",\"channleActivityId\":\"1000197\"}," 
                + "{\"activityName\":\"双十一活动2.]]></description><category></category></item><item><title><![CDATA[spring使用@RequestBody和@ModelAttribute接受实体对象]]></title><link>https://blog.csdn.net/think12/article/details/112133591</link><guid>https://blog.csdn.net/think12/article/details/112133591</guid><author>think12</author><pubDate>Sun, 03 Jan 2021 12:55:41 +0800</pubDate><description><![CDATA[spring使用@RequestBody和@ModelAttribute接受实体对象
1:@RequestBody 方式

用于接收json串 如ajax请求的data参数  可在直接接收转换到Pojo

直接通过浏览器输入url时，@RequestBody获取不到json对象，需要用java编程或者基于ajax的方法请求，将Content-Type设置为application/json

@RequestBody 接收时不传值会报错，当参数为空时也要传 {}才可以
因为使用request.getPa...]]></description><category></category></item><item><title><![CDATA[springboot+dubbo结构，dubbo-spring-boot-starter引用SNAPSHOT包的问题]]></title><link>https://blog.csdn.net/think12/article/details/111281545</link><guid>https://blog.csdn.net/think12/article/details/111281545</guid><author>think12</author><pubDate>Wed, 16 Dec 2020 15:46:57 +0800</pubDate><description><![CDATA[在调用spring-boot+dubbo的时候，引用了 dubbo-spring-boot-starter包，引用的是1.0.0-SNAPSHOT版本，结果后续该版本升级了，团队成员对该包做了一个更新，结果在启动的工程的时候，各种注册不了dubbo服务。

引用的dubbo-spring-boot-starter：


&lt;dependency&gt;
    &lt;groupId&gt;com.alibaba.boot&lt;/groupId&gt;
    &lt;artifactId&gt;du]]></description><category></category></item><item><title><![CDATA[RabbitMQ的用户管理]]></title><link>https://blog.csdn.net/think12/article/details/109694139</link><guid>https://blog.csdn.net/think12/article/details/109694139</guid><author>think12</author><pubDate>Sat, 14 Nov 2020 17:56:34 +0800</pubDate><description><![CDATA[用户角色分类

none：无法登录控制台

不能访问 management plugin，通常就是普通的生产者和消费者。

management：普通管理者。

仅可登陆管理控制台(启用management plugin的情况下)，无法看到节点信息，也无法对policies进行管理。用户可以通过AMQP做的任何事外加：
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels ]]></description><category></category></item><item><title><![CDATA[SpringBoot融合RabbitMQ的方案]]></title><link>https://blog.csdn.net/think12/article/details/109693893</link><guid>https://blog.csdn.net/think12/article/details/109693893</guid><author>think12</author><pubDate>Sat, 14 Nov 2020 17:52:22 +0800</pubDate><description><![CDATA[SpringBoot融合RabbitMQ的方案。

大体分两块内容：

RabbitMQ管控台配置的内容。
	代码书写的内容。
一、RabbitMQ管控台配置的内容：

添加用户，用管理员账户，登录到管控台，选择Admin标签，选择Users，注意添加用户时候的tag（如果不选择tag则代表None，只能程序中使用）。
	在此，我们选择的Tags是policymaker，具体的参见详细说明。
		
		
	
	添加虚拟主机，还是用管理员账户添加。
	
	
	管控台创建交换器：
	用新创建的账户登录到管控台，]]></description><category></category></item><item><title><![CDATA[Springboot 监听同一个RabbitMQ的多个虚拟主机Virtual-Host]]></title><link>https://blog.csdn.net/think12/article/details/109689918</link><guid>https://blog.csdn.net/think12/article/details/109689918</guid><author>think12</author><pubDate>Sat, 14 Nov 2020 13:42:34 +0800</pubDate><description><![CDATA[目录

配置信息application.properties
	配置类RabbitMqConfig
	监听消息示例



场景：需要监听 同一个RabbitMQ下的 不同的虚拟主机下的 队列 来完成数据流转


配置信息application.properties


my.rabbitmq.host=你的ip
my.rabbitmq.port=你的port
my.rabbitmq.username=你的username
my.rabbitmq.password=你的password
my.rabbitm.]]></description><category></category></item><item><title><![CDATA[关于Java对象作为参数传递是传值还是传引用的问题]]></title><link>https://blog.csdn.net/think12/article/details/108427499</link><guid>https://blog.csdn.net/think12/article/details/108427499</guid><author>think12</author><pubDate>Sun, 06 Sep 2020 08:20:37 +0800</pubDate><description><![CDATA[前言

　　在Java中，当对象作为参数传递时，究竟传递的是对象的值，还是对象的引用，这是一个饱受争议的话题。若传的是值，那么函数接收的只是实参的一个副本，函数对形参的操作并不会对实参产生影响；若传的是引用，那么此时对形参的操作则会影响到实参。
　　首先我们来看一句代码：


Object obj = new Object();

这句话的意思是：创建一个Object对象，再创建一个名为obj的引用，让这个引用指向这个对象，如下图所示：





在有了上面的基础之后，我们便来看下面这组在网上很流行的例..]]></description><category></category></item><item><title><![CDATA[iTerm2添加、管理多窗口]]></title><link>https://blog.csdn.net/think12/article/details/106888172</link><guid>https://blog.csdn.net/think12/article/details/106888172</guid><author>think12</author><pubDate>Sun, 21 Jun 2020 17:27:09 +0800</pubDate><description><![CDATA[一、添加秘钥



1、第7步，要选择Login Shell，

然后在下边输入Send text at start: expect /Users/youjia-333/自定义文件夹/shhlogin.sh 22 登录名称 IP 秘钥

2、选择打开的方式






]]></description><category></category></item><item><title><![CDATA[UML类图关系（泛化 、继承、实现、依赖、关联、聚合、组合）]]></title><link>https://blog.csdn.net/think12/article/details/104217803</link><guid>https://blog.csdn.net/think12/article/details/104217803</guid><author>think12</author><pubDate>Sat, 08 Feb 2020 00:04:43 +0800</pubDate><description><![CDATA[一、类图

类图(Class Diagram)是显示出类、接口以及他们之间的静态结构与关系的图。其中最基本的单元是类或接口。

​ 类图不但可以表示类(或者接口)之间的关系，也可以表示对象之间的关系。下面是一个典型的类图：



类图一般分为几个部分：类名、属性、方法。下面分别讲解。

（1） 类名

​ 上面的TestClass就是类名，如果类名是正体字，则说明该类是一个具体的类，如果类名是斜体...]]></description><category></category></item><item><title><![CDATA[Python检测zookeeper的dubbo节点是否正确]]></title><link>https://blog.csdn.net/think12/article/details/103795771</link><guid>https://blog.csdn.net/think12/article/details/103795771</guid><author>think12</author><pubDate>Wed, 01 Jan 2020 20:35:29 +0800</pubDate><description><![CDATA[功能：用python的kazoo工具包，检测 dubbo在zookeeper上是否活跃。

情况：dubbo部署在机器上，端口是存在的，但在zookeeper上缺没有dubbo提供者了。

所以写个脚本，利用kazoo链接到zookeeper来检测指定的服务是否存在。

检测项目：

需要自己指定相应的检测service
	可以检测提供服务的机器，是否是线上机器。
	可以检测版本号是否正确。
调用...]]></description><category></category></item><item><title><![CDATA[微信APP支付]]></title><link>https://blog.csdn.net/think12/article/details/103643914</link><guid>https://blog.csdn.net/think12/article/details/103643914</guid><author>think12</author><pubDate>Sat, 21 Dec 2019 14:11:49 +0800</pubDate><description><![CDATA[微信APP支付：

一、涉及到的概念：https://www.cnblogs.com/whatlonelytear/p/9518077.html
1、微信开放平台：
 主要面对移动应用/网站应用开发者，为其提供微信登录、分享、支付等相关权限和服务。
 微信开放平台还提供了数据统计功能，用于开发者统计接入应用的登录、分享等数据情况。
 接入步骤
 已京东APP举例，比如京东...]]></description><category></category></item><item><title><![CDATA[如何实现一个简单的RPC]]></title><link>https://blog.csdn.net/think12/article/details/101321017</link><guid>https://blog.csdn.net/think12/article/details/101321017</guid><author>think12</author><pubDate>Tue, 24 Sep 2019 23:43:43 +0800</pubDate><description><![CDATA[RPC的实现原理

正如上一讲所说，RPC主要是为了解决的两个问题：

解决分布式系统中，服务之间的调用问题。
	远程调用时，要能够像本地调用一样方便，让调用者感知不到远程调用的逻辑。
还是以计算器Calculator为例，如果实现类CalculatorImpl是放在本地的，那么直接调用即可：





现在系统变成分布式了，CalculatorImpl和调用方不在同一个地址空间，那么就必须要进...]]></description><category></category></item><item><title><![CDATA[RabbitMQ控制台详解]]></title><link>https://blog.csdn.net/think12/article/details/100029910</link><guid>https://blog.csdn.net/think12/article/details/100029910</guid><author>think12</author><pubDate>Fri, 23 Aug 2019 08:33:04 +0800</pubDate><description><![CDATA[RabbitMQ控制台详解

overview→Totals
所有队列的阻塞情况
Ready：待消费的消息总数
Unacked：待应答的消息总数
Total：总数 Ready+Unacked

Publish：producter pub消息的速率。
Publisher confirm：broker确认pub消息的速率。
Deliver(manual ack)：customer手动确认的速率。
De...]]></description><category></category></item><item><title><![CDATA[ThreadPoolExecutor的应用]]></title><link>https://blog.csdn.net/think12/article/details/91048876</link><guid>https://blog.csdn.net/think12/article/details/91048876</guid><author>think12</author><pubDate>Thu, 06 Jun 2019 19:41:46 +0800</pubDate><description><![CDATA[ThreadPoolExecutor是阿里推荐的线程池。可以控制线程的数量、队列的大小等。


    public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
   ...]]></description><category></category></item><item><title><![CDATA[服务器的并发数]]></title><link>https://blog.csdn.net/think12/article/details/90145910</link><guid>https://blog.csdn.net/think12/article/details/90145910</guid><author>think12</author><pubDate>Sun, 12 May 2019 21:39:19 +0800</pubDate><description><![CDATA[一：服务器并发数取决于那些？

1.CPU 处理性能

CPU 核数，假如 CPU有4个核，处理每个访问请求用线程去处理，那么4核每次最大能处理不超过8个线程，处理时间看单个线程处理完数据的时间，假如一个线程处理时间是40ms(毫秒)，那么最高秒级并发计算那就是 1000/40*8=200 那么每秒最高处理并发是200个，如果服务器只收不处理数据的话处理时间还能大幅度下降， 并发数还鞥你大幅度提...]]></description><category></category></item></channel></rss>