- 博客(87)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Linux常用命令
开启、关闭防火墙 service iptables start #开启 service iptables stop #关闭grep 上下几行 grep -C 5 foo file #显示file文件中匹配foo字串那行以及上下5行 grep -B 5 foo file #显示foo及前5行 grep -A 5 foo file #显示foo及后5行查看文件编码 file t...
2017-09-21 17:26:16
343
原创 spark-submit传递参数以及任务如何解析参数
1.传参spark-submit传递参数有两种方式:–conf k1=v1 --conf k2=v2cli args,在jar包后追加详见官方文档:2.解析–conf方式解析:sparkContext.getConf.get("k1")cli args方式解析: parse(args.toList) ... ... def parse(list: List[String]): Unit = list match { case "--input" :: valu
2021-05-24 15:21:37
2990
1
原创 正则表达式占位符的使用
$1,$2表达的是小括号里面的内容,$1是第一个小括号里的内容,$2是第二个小括号里面的内容,依此类推比如(\d{4})(\d{2})(\d{2}) 匹配"20190919"$1是第一个括号里匹配的2019$2是第二个括号里匹配的09$3是第三个括号里匹配的19...
2020-11-26 16:45:47
4734
原创 MyBatis中@MapKey的妙用
背景在实际开发中,有一些场景需要我们返回主键或者唯一键为Key、Entity为Value的Map集合,如Map<Long, User>,之后我们就可以直接通过map.get(key)的方式来获取Entity。实现MyBatis为我们提供了这种实现,Dao示例如下:public interface UserDao { @MapKey("id") ...
2019-10-24 15:30:11
12783
原创 基于Slf4j MDC和Spring MVC的日志链路跟踪
背景1.在日常查日志时,各种日志交错在一起,无法快速定位问题,如果有每个请求都拥有一个唯一标识,那grep起来就方便多了;2.分布式系统中需要定位整个链路,是上游系统出问题了,或者下游系统有没有收到请求;方案Slf4j是我们常用的日志门面,它服务于Logback和log4j等日志框架,其中有一个重要特性是MDC(Mapped Diagnostic Contexts );顾名思义,...
2019-05-17 17:54:43
1002
转载 Nginx 日志切割
#!/bin/bash# 备份日志目录LOGS_PATH=/usr/local/nginx/logs/history# 当前日志目录CUR_LOGS_PATH=/usr/local/nginx/logs# 获取昨天的日期YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)# 备份access日志mv ${CUR_LOGS_PATH}/vhost1....
2018-12-27 10:37:15
154
原创 Jenkins 基于角色和项目的权限管理
【系统管理】-【插件管理】搜索并自动安装插件Role-based Authorization Strategy【系统管理】-【全局安全配置】中启用Role-based Strategy授权方式,如下图:启用之后,返回【系统管理】就会出现【Manage and Assign Roles】菜单,如下图:【系统管理】-【用户管理】添加用户,admin为默认用户,如下图:【...
2018-12-20 09:59:38
430
原创 解决工程中多种日志框架冲突
在我们开发中,在代码中加日志是必不可少的。然而,由于引用很多第三方的包,而这些第三方包所用的日志框架和版本又不尽相同,比如有Log4j、Log4j2、Logback和Java自带的Logging。为了不强制依赖某个日志框架,我们会使用slf4j(The Simple Logging Facade for Java),其实slf4j只是一个日志标准,并不是日志系统的具体实现。slf4j只做两件事...
2018-08-10 14:57:30
816
原创 引用外部Spring配置文件
背景Spring的配置文件有两种,分别是Spring和Spring MVC的配置文件,一般放在classpath下或者WEB-INF下,加载的方式一般在web.xml中声明,如下:&amp;amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;amp;quot;1.0&amp;amp;amp;amp;quot; encoding=&amp;amp;amp;amp;quot;UTF-8&am
2018-08-09 18:57:51
758
原创 ZooKeeper ACL之Super模式
根据ACL权限控制的原理,一旦对一个数据节点设置了权限,那么其他没有被授权的ZooKeeper客户端将无法访问该节点。那么,如果一个节点包含了ACL权限控制,而其创建者客户端已经退出或者已经不再使用,此时可以使用超级管理员权限来进行处理。生成权限Idimport org.apache.zookeeper.server.auth.DigestAuthenticationProvider;...
2018-08-08 16:40:17
941
原创 Spring MVC 集成 Logback
引用slf4j和logback的依赖,尤其是logback-ext-spring,是Logback对于Spring的扩展:<!-- Logging begin --><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifa...
2018-06-26 20:17:58
888
原创 Kafka 外网访问配置
Kafka外网访问涉及到的几个配置项有:host.name:deprecated,仅当listeners属性未配置时被使用,可以使用listeners属性代替,表示broker的hostname。若配置,则绑定到该地址,否则绑定所有网卡。advertised.host.name:deprecated,仅当advertised.listeners或者listeners属性未配置时被使用,可以...
2018-06-05 23:56:13
15446
2
原创 Spring MVC 解决CORS跨域问题
从4.2之后,Spring Framework可以解决跨域问题,开箱即用,下面是从官方文档总结的3种解决办法。利用@CrossOrigin注解,作用在Controller的类或方法上,可以指定origins、allowedHeaders、exposedHeaders、allowCredentials、maxAge属性。优点是可以指定某个或者某些接口跨域访问,缺点则是若需要全局支持跨域访问,则...
2018-05-14 11:28:43
1865
原创 Logstash使用Jdbc input plugin定时读取数据库新记录
MySQL表结构:mysql> desc employee;+-----------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-----------+-------------...
2018-04-25 16:16:17
1942
原创 XML乱码问题解析
XML乱码问题和encoding的理解这篇博客已经讲的很明白了,总结一下读取XML选取编码方式的逻辑就是:如果文挡有 BOM ,就定义了文件编码,则采用此编码;如果没有 BOM ,就查看文件头 encoding 声明的编码,如声明为<?xml version="1.0" encoding="GB2312"?>,则采用 GB2312 编码;如果上述两个都没有,就默认采用 UT...
2018-04-23 20:05:58
9195
原创 ELK官方文档词句翻译
Bbackslash:反斜杠,\Cchronological:按年代排序的comparison operator:比较运算符congestion:拥塞consequence:结果coordinate:坐标Ddestructive:破坏的,毁灭性的dimension:方面,维度discard:丢弃,放弃duplicate:复制,复制的E...
2018-04-05 07:56:20
373
原创 Logstash常用内置正则
详见源代码httpdHTTPDUSER %{EMAILADDRESS}|%{USER}HTTPDERROR_DATE %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{YEAR}# Log formatsHTTPD_COMMONLOG %{IPORHOST:clientip} %{HTTPDUSER:ident} %{HTTPDUSER:auth}...
2018-04-02 15:58:35
1589
转载 利用Filter和ThreadLocal保存和获取常用对象
场景:在Web项目中,有一些对象是经常用到的,如Session中的用户、HttpServletRequest等,当然可以通过Spring依赖注入,但是依赖注入不方便的时候,可以通过ThreadLocal存储每一个请求所用到的数据。Filter解析Session获得用户和HttpServletRequestpackage com.yjy.filter;import com.yjy.c...
2018-03-29 11:33:56
1697
转载 Java使用Validator进行Bean校验
工具类package com.yjy.util;import com.google.common.base.Preconditions;import com.google.common.collect.Lists;import com.google.common.collect.Maps;import com.yjy.exception.ParamException;impor...
2018-03-28 17:58:29
3093
原创 MyBatis 批量插入与批量更新
1、批量插入:原理是循环insert values后的参数Mapper<insert id="addEmpBatch" parameterType="list"> INSERT INTO employee (last_name, email, gender) VALUES <foreach collection="empList" item="em...
2018-03-26 18:08:38
1133
原创 Spring引入外部properties文件
1、背景:Spring配置文件需要通过context:property-placeholder标签或者PropertyPlaceholderConfigurer类来引入classpath路径下的properties文件,示例如下:<context:property-placeholder location="classpath:jdbc.properties" />&l...
2018-03-26 18:08:29
3901
原创 记一次Spring refresh context引发Data source is closed异常的坑
背景:Spring的profile写在了自定义配置文件中,需要手动读取配置文件,手动激活profile,关于激活profile的方法参考Spring激活profile的几种方式,我们采用了方案2。程序是首先初始化Spring上下文,建立连接池和事务管理器等等,然后读取配置文件,获取profile并激活,最后刷新上下文。如果在初始化上下文和刷新上下文之间有数据库操作的话,刷新上下文成功之后,这些操...
2018-03-16 11:52:46
2623
原创 ElasticSearch绑定多个ip,满足内外网访问
背景:项目在阿里云平台有一个ES集群,每个节点绑定的是内网ip,即配置文件elasticsearch.yml中network.host的值是内网ip。但是,查询ES的应用在阿里云和腾讯云上都有,又不想都换绑成外网ip,浪费流量。方案:使用network.host参数满足不了需求,ES提供了更高级的配置,network.bind_host和network.publish_host。network...
2018-03-15 16:05:07
16122
2
原创 Spring激活profile的几种方式
1、配置web.xml:通过配置context-param指定ContextLoaderListener初始化用到的参数;如下,可激活test的profile。<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" ...
2018-03-13 17:30:33
3636
原创 Spring MVC HandlerMethodArgumentResolver 自定义参数解析器
Spring MVC Controller默认支持的参数类型有@RequestParam、@PathVariable、@ModelAttribute、@RequestAttribute、@SessionAttribute、@RequestBody、@CookieValue、HttpSession、Principal、Locale、TimeZone、InputStream、Reader、HttpMe...
2018-03-02 10:43:54
560
转载 判断IP是否在某个网段内
/** * 判断IP是否在某个网段内 * * @param ip IP地址,如 192.168.1.127 * @param segment 网段,如 192.168.1.64/26 * @return boolean */ public static boolean isInRange(String ip, String
2018-01-09 18:32:42
3770
转载 Maven利用profile打不同环境的包
需求1:有时会打不同环境的包,如测试、正式等;有时会要排除一些静态资源。解决:使用maven-war-plugin插件加warSourceExcludes和packagingExcludes这两个参数来配置。这两个参数的官网解释如下:warSourceExcludes:The comma separated list of tokens to exclude when copying t...
2018-01-08 17:14:21
1115
原创 Logback动态修改日志级别
问题提出:一般在生产环境上,日志的级别是INFO以上,但有时候程序出现问题(如SQL报错),通过查日志不能尽快定位问题,这时候可以动态修改日志级别到DEBUG,打印更多日志后可以快速定位到问题。解决方法:定义动态修改日志级别的接口:这种方法的好处是不用修改配置文件,排错后再次调用接口把日志级别修改回去,示例代码如下:@RestControllerpublic class LogControll
2017-12-29 14:34:15
17456
2
原创 Spring MVC数据绑定
1、数组:有两种方式,多个同名参数或一个参数用”,”连接,示例如下:controller @RequestMapping("/array") public String array(Integer[] ids) { for (Integer id : ids) { System.out.println(id); }
2017-12-27 16:04:58
198
原创 Linux重启Tomcat常用脚本
#!/bin/bash# kill processps -ef|grep 'artworks'|grep -v 'grep'|awk '{print $2}'|xargs kill -s 9# clean cacheremove -rf webapps/* work/* temp/*# start tomcat./bin/startup.sh# monitor logtail -f logs
2017-11-28 17:27:37
228
原创 Maven打包跳过单元测试
Maven在打包时可以使用两种方式来跳过单元测试:-DskipTests-Dmaven.test.skip=true两者的区别如下:skipTests:不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下,执行结果如下:[INFO] --- maven-resources-plugin:2.6:testResources (default-test
2017-11-20 10:45:29
1520
原创 MySQL update替换字段部分内容
背景:数据库client_server表中os字段存着终端类型,如ios、android,要统一改成iOS、Android这样的,因此只需替换部分内容。解决:可以使用MySQL内置的REPLACE函数,具体用法如下:UPDATE 表名 SET 字段名 = REPLACE(替换前的字段值, '替换前关键字', '替换后关键字');结果:
2017-11-09 21:24:27
25918
转载 Nginx location块匹配顺序
首先在server块中搜索是否有标准uri和请求字符串匹配,如果有多个可以匹配,就记录匹配度最高的一个。然后,服务器再用location块中的正则uri和请求字符串匹配,当第一个正则uri匹配成功,结束搜索,并使用这个location块处理此请求。如果正则匹配全部失败,就使用刚才记录的匹配度最高的location块处理此请求。
2017-09-20 12:18:53
618
原创 MySQL查询时给字段赋默认值
问题:查询account表时,并不想让用户查出密码来,所以要给密码赋一个默认值。select id,null as password from account order by id;结果:可以看出密码统一赋成了null。
2017-08-29 18:10:47
3932
原创 MySQL查看并修改自增长ID
如何查看:方法一:查找MySQL自带的数据库information_schema的TABLES表的AUTO_INCREMENT字段SELECT AUTO_INCREMENTFROM information_schema.TABLESWHERE TABLE_SCHEMA='cmdb' AND TABLE_NAME='subscribe';结果如下:方法二:...
2017-08-25 15:36:24
690
转载 Maven 项目打不同名称的war包
问题描述:I have two profiles in my pom.xml for our application…dev (for use on a developer’s)prod (production).When we run our maven build all three profiles output a war file with the same name. I woul
2017-08-15 17:36:18
1459
原创 MyBatis类型别名类TypeAliasRegistry
MyBatis类型别名定义在org.apache.ibatis.type.TypeAliasRegistry类中,具体对应关系见如下代码: public TypeAliasRegistry() { registerAlias("string", String.class); registerAlias("byte", Byte.class); registerAlias("l
2017-07-05 17:10:52
600
原创 Maven项目读取resources目录下文件
要取编译后的路径,而不是你看到的src/main/resources的路径。如下:URL url = MyTest.class.getClassLoader().getResource("userFile.properties");File file = new File(url.getFile());或者InputStream is = MyTest.class.ge...
2017-06-07 16:21:43
19446
原创 解决MySQL存入中文变问号
出现这种问题的原因有可能是:数据库字符集不是utf-8,对应character_set_database常量;服务器字符集不是utf-8,对应character_set_server常量;程序与数据库的连接不是用utf-8编码,对应character_set_connection常量;这三个常量设置统一了,应该就不会出现中文乱码的问题了,具体参考: - http://www.cnblog
2017-05-19 15:26:17
8300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人