Autoware注入集合
Autoware注入集合在日常开发中,我们都会使用@Autowired来给bean进行属性注入。大多数情况下,注入的属性都是某一具体的单例bean,实际上,@Autowired还可以用来注入集合,如下:
1234567/**userMap: key是bean名,value是bean实例*/@Autowiredprivate Map<String, User> userMap;/**userList: 类型是User的bean实例的集合*/@Autowiredprivate List<User> userList;
在配置类中,加入三个User类的bean
1234567891011121314151617181920@Beanpublic User user1(){ User user = new User(); user.setUsername("user1"); return user;}@Beanpublic User user2(){ User user = new User() ...
RequestContextHolder类
当我们在开发时,有时候会使用到请求的request和响应的response,除了可以在controller传入HttpServletRequest和HttpServletResponse,一直传到service层外,还可以使用RequestContextHolder类
1、RequestContextHolder获取request和response获取request代码如下:
1234567RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();String name = request.getParameter("name");System.out.println(name);// 当请求传入name参数时,结果输出name参数的值
获取response的代码如下:
1234567 ...
mybatis-plus自动设置records
1、bug描述以前做分页查询时,我都是直接将page对象扔到sql查询的方法中,mybatis-plus会自动给page进行赋值。然而在这次问题中,返回的total结果中有数据,但是recodes却没有数据
2、bug复现伪代码如下:
service层代码
12345public Page<User> queryList() { Page<User> page = new Page<>(1, 10); List<User> userList = userMapper.queryList(page); return page;}
mapper层代码
1List<User> queryList(@Param("page") Page<User> page);
xml查询语句
123<select id="queryList" resultType="com.example.entity.User"> ...
RocketMQ入门(三)
消息发送样例1、基本例子先导入maven依赖
123456<!--rocketmq客户端依赖--><dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.4.0</version></dependency>
1.1 发送消息发送消息的步骤:
创建消息生产者producer,并制定生产者组名
指定Nameserver地址
启动producer
创建消息对象,指定主体Topic、Tag和消息体
发送消息
关闭生产者producer
1.1.1 发送同步消息同步消息,在上一条消息发送完后,才发送下一条
123456789101112131415161718public static void main(String[] args) throws Exception { // 实例化生产者produ ...
RocketMQ入门(二)
Linux部署RocketMQ可视化平台rocketmq-dashboard是官方提供的RocketMQ的图形化管理控制台,原先是叫做rocketmq-console,后来被rocketmq-externals单独列为一个项目,现在取名:rocketmq-dashboard
因为Linux下载比较耗时,这里使用window下载,修改配置文件,maven打包后推到Linux服务器上
1、下载rocketmq-dashboardgithub的下载地址为:
GitHub - apache/rocketmq-dashboard: The state-of-the-art Dashboard of Apache RoccketMQ provides excellent monitoring capability. Various graphs and statistics of events, performance and system information of clients and application is evidently made available to the ...
RocketMQ入门(一)
Linux部署RocketMQ1、环境准备
Linux系统
JDK1.8
源码安装需要安装maven
2、下载RocketMQ安装包本文以二进制包安装的方式
①下载地址:下载 | RocketMQ (apache.org)
②下载版本:这里下载的是4.4.0版本,并且是二进制包
③上传到Linux服务器上并解压在/usr/local目录下创建rocketmq文件夹,然后将下载的二进制包上传到该目录下
使用unzip命令进行解压
1unzip rocketmq-all-4.4.0-bin-release.zip
解压后如图
3、修改配置文件RocketMQ默认使用的内容比较大,修改JVM的大小
进入bin目录下
1cd /usr/local/rocketmq/rocketmq-all-4.4.0-bin-release/bin
修改runbroker.sh文件和runserver.sh文件
1vim runbroker.sh
1vim runserver.sh
4、启动RocketMQ①启动NameServer12345678910# 进入到rockermq解压后的 ...
Linux安装maven
1、新建maven文件夹进入/usr/local目录,并创建maven文件夹,进入maven文件夹
123cd /usr/localmkdir mavencd maven
2、下载安装包1wget https://archive.apache.org/dist/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
也可以到
Index of /dist/maven/maven-3 (apache.org)
下载后上传到服务器
3、解压1tar -zxvf apache-maven-3.8.5-bin.tar.gz
4、修改配置进入到解压包目录下
1cd apache-maven-3.8.5
添加仓库文件夹
1mkdir respository
修改配置文件
1vim conf/settings.xml
修改本地仓库位置
1<localRepository>/usr/local/maven/apache-maven-3.8.5/respository</loca ...
Linux安装java
1、下载安装包官网下载地址:
Java Downloads | Oracle
现在下载需要oracle账号
2、上传到服务器进入/usr/local目录,并创建java文件夹
123cd /usr/localmkdir javacd java
然后将安装包上传/usr/local/java目录下
将压缩包进行解压
1tar -zxvf jdk-8u333-linux-x64.tar.gz
3、设置环境变量进入配置环境变量的文件
1vim /etc/profile
在末尾加入如下
1234export JAVA_HOME=/usr/local/java/jdk1.8.0_333 #jdk路径export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
刷新文件
1source /etc/profile
4 ...
xpath的使用
xpath高级使用1234567891011121314151617181920212223XPath轴(XPath Axes)可定义某个相对于当前节点的节点集: 1、child 选取当前节点的所有子元素 2、parent 选取当前节点的父节点 3、descendant 选取当前节点的所有后代元素(子、孙等) 4、ancestor 选取当前节点的所有先辈(父、祖父等) 5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身 6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 7、preceding-sibling 选取当前节点之前的所有同级节点 8、following-sibling 选取当前节点之后的所有同级节点 9、preceding 选取文档中当前节点的开始标签之前的所有节点 10、following 选取文档中当前节点的结束标签之后的所有节点 11、self 选取当前节点 12、attribute 选取当前节点的所有属性 13、namespace 选取当前节点的所有命名空间节点//选择不包含cla ...
python操作excel
1、读取excel:使用xlrd库1234567891011from urllib.parse import urlparseimport xlrdfile = "./网址.xls"workbook = xlrd.open_workbook(filename=file)table = workbook.sheet_by_name("Sheet1")domain_set = set()for i in range(table.nrows): url = table.row_values(i)[0] domain_no_http_www = urlparse(url).netloc.replace("www.", "") domain_set.add(domain_no_http_www)print(domain_set, len(domain_set))
注:如果出现 xlrd.biffh.XLRDError: Excel xlsx file; not supported,这是由于当前p ...