自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 334

原创 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 2812 1

原创 正则表达式占位符的使用

$1,$2表达的是小括号里面的内容,$1是第一个小括号里的内容,$2是第二个小括号里面的内容,依此类推比如(\d{4})(\d{2})(\d{2}) 匹配"20190919"$1是第一个括号里匹配的2019$2是第二个括号里匹配的09$3是第三个括号里匹配的19...

2020-11-26 16:45:47 4561

原创 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 12742

原创 基于Slf4j MDC和Spring MVC的日志链路跟踪

背景1.在日常查日志时,各种日志交错在一起,无法快速定位问题,如果有每个请求都拥有一个唯一标识,那grep起来就方便多了;2.分布式系统中需要定位整个链路,是上游系统出问题了,或者下游系统有没有收到请求;方案Slf4j是我们常用的日志门面,它服务于Logback和log4j等日志框架,其中有一个重要特性是MDC(Mapped Diagnostic Contexts );顾名思义,...

2019-05-17 17:54:43 969

转载 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 147

原创 Jenkins 基于角色和项目的权限管理

【系统管理】-【插件管理】搜索并自动安装插件Role-based Authorization Strategy【系统管理】-【全局安全配置】中启用Role-based Strategy授权方式,如下图:启用之后,返回【系统管理】就会出现【Manage and Assign Roles】菜单,如下图:【系统管理】-【用户管理】添加用户,admin为默认用户,如下图:【...

2018-12-20 09:59:38 419

原创 解决工程中多种日志框架冲突

在我们开发中,在代码中加日志是必不可少的。然而,由于引用很多第三方的包,而这些第三方包所用的日志框架和版本又不尽相同,比如有Log4j、Log4j2、Logback和Java自带的Logging。为了不强制依赖某个日志框架,我们会使用slf4j(The Simple Logging Facade for Java),其实slf4j只是一个日志标准,并不是日志系统的具体实现。slf4j只做两件事...

2018-08-10 14:57:30 782

原创 引用外部Spring配置文件

背景Spring的配置文件有两种,分别是Spring和Spring MVC的配置文件,一般放在classpath下或者WEB-INF下,加载的方式一般在web.xml中声明,如下:&amp;amp;amp;amp;amp;amp;lt;?xml version=&amp;amp;amp;amp;amp;quot;1.0&amp;amp;amp;amp;amp;quot; encoding=&amp;amp;amp;amp;amp;quot;UTF-8&am

2018-08-09 18:57:51 743

原创 ZooKeeper ACL之Super模式

根据ACL权限控制的原理,一旦对一个数据节点设置了权限,那么其他没有被授权的ZooKeeper客户端将无法访问该节点。那么,如果一个节点包含了ACL权限控制,而其创建者客户端已经退出或者已经不再使用,此时可以使用超级管理员权限来进行处理。生成权限Idimport org.apache.zookeeper.server.auth.DigestAuthenticationProvider;...

2018-08-08 16:40:17 909

原创 Spring MVC 集成 Logback

引用slf4j和logback的依赖,尤其是logback-ext-spring,是Logback对于Spring的扩展:&lt;!-- Logging begin --&gt;&lt;dependency&gt; &lt;groupId&gt;org.slf4j&lt;/groupId&gt; &lt;artifactId&gt;slf4j-api&lt;/artifa...

2018-06-26 20:17:58 879

原创 Kafka 外网访问配置

Kafka外网访问涉及到的几个配置项有:host.name:deprecated,仅当listeners属性未配置时被使用,可以使用listeners属性代替,表示broker的hostname。若配置,则绑定到该地址,否则绑定所有网卡。advertised.host.name:deprecated,仅当advertised.listeners或者listeners属性未配置时被使用,可以...

2018-06-05 23:56:13 15403 2

原创 Spring MVC 解决CORS跨域问题

从4.2之后,Spring Framework可以解决跨域问题,开箱即用,下面是从官方文档总结的3种解决办法。利用@CrossOrigin注解,作用在Controller的类或方法上,可以指定origins、allowedHeaders、exposedHeaders、allowCredentials、maxAge属性。优点是可以指定某个或者某些接口跨域访问,缺点则是若需要全局支持跨域访问,则...

2018-05-14 11:28:43 1854

原创 Logstash使用Jdbc input plugin定时读取数据库新记录

MySQL表结构:mysql&gt; desc employee;+-----------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-----------+-------------...

2018-04-25 16:16:17 1914

原创 XML乱码问题解析

XML乱码问题和encoding的理解这篇博客已经讲的很明白了,总结一下读取XML选取编码方式的逻辑就是:如果文挡有 BOM ,就定义了文件编码,则采用此编码;如果没有 BOM ,就查看文件头 encoding 声明的编码,如声明为&lt;?xml version="1.0" encoding="GB2312"?&gt;,则采用 GB2312 编码;如果上述两个都没有,就默认采用 UT...

2018-04-23 20:05:58 9132

原创 ELK官方文档词句翻译

Bbackslash:反斜杠,\Cchronological:按年代排序的comparison operator:比较运算符congestion:拥塞consequence:结果coordinate:坐标Ddestructive:破坏的,毁灭性的dimension:方面,维度discard:丢弃,放弃duplicate:复制,复制的E...

2018-04-05 07:56:20 356

原创 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 1563

转载 利用Filter和ThreadLocal保存和获取常用对象

场景:在Web项目中,有一些对象是经常用到的,如Session中的用户、HttpServletRequest等,当然可以通过Spring依赖注入,但是依赖注入不方便的时候,可以通过ThreadLocal存储每一个请求所用到的数据。Filter解析Session获得用户和HttpServletRequestpackage com.yjy.filter;import com.yjy.c...

2018-03-29 11:33:56 1670

转载 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 3084

原创 MyBatis 批量插入与批量更新

1、批量插入:原理是循环insert values后的参数Mapper&lt;insert id="addEmpBatch" parameterType="list"&gt; INSERT INTO employee (last_name, email, gender) VALUES &lt;foreach collection="empList" item="em...

2018-03-26 18:08:38 1119

原创 Spring引入外部properties文件

1、背景:Spring配置文件需要通过context:property-placeholder标签或者PropertyPlaceholderConfigurer类来引入classpath路径下的properties文件,示例如下:&lt;context:property-placeholder location="classpath:jdbc.properties" /&gt;&l...

2018-03-26 18:08:29 3872

原创 记一次Spring refresh context引发Data source is closed异常的坑

背景:Spring的profile写在了自定义配置文件中,需要手动读取配置文件,手动激活profile,关于激活profile的方法参考Spring激活profile的几种方式,我们采用了方案2。程序是首先初始化Spring上下文,建立连接池和事务管理器等等,然后读取配置文件,获取profile并激活,最后刷新上下文。如果在初始化上下文和刷新上下文之间有数据库操作的话,刷新上下文成功之后,这些操...

2018-03-16 11:52:46 2560

原创 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 15918 2

原创 Spring激活profile的几种方式

1、配置web.xml:通过配置context-param指定ContextLoaderListener初始化用到的参数;如下,可激活test的profile。&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" ...

2018-03-13 17:30:33 3591

原创 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 550

转载 判断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 3752

转载 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 1099

原创 Logback动态修改日志级别

问题提出:一般在生产环境上,日志的级别是INFO以上,但有时候程序出现问题(如SQL报错),通过查日志不能尽快定位问题,这时候可以动态修改日志级别到DEBUG,打印更多日志后可以快速定位到问题。解决方法:定义动态修改日志级别的接口:这种方法的好处是不用修改配置文件,排错后再次调用接口把日志级别修改回去,示例代码如下:@RestControllerpublic class LogControll

2017-12-29 14:34:15 17414 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 190

原创 IntelliJ IDEA快捷键大全

SecureCRT切换标签页 Ctrl + Tab

2017-12-20 10:27:07 185

原创 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 219

原创 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 1477

原创 MySQL update替换字段部分内容

背景:数据库client_server表中os字段存着终端类型,如ios、android,要统一改成iOS、Android这样的,因此只需替换部分内容。解决:可以使用MySQL内置的REPLACE函数,具体用法如下:UPDATE 表名 SET 字段名 = REPLACE(替换前的字段值, '替换前关键字', '替换后关键字');结果:

2017-11-09 21:24:27 25854

转载 Nginx location块匹配顺序

首先在server块中搜索是否有标准uri和请求字符串匹配,如果有多个可以匹配,就记录匹配度最高的一个。然后,服务器再用location块中的正则uri和请求字符串匹配,当第一个正则uri匹配成功,结束搜索,并使用这个location块处理此请求。如果正则匹配全部失败,就使用刚才记录的匹配度最高的location块处理此请求。

2017-09-20 12:18:53 610

原创 MySQL查询时给字段赋默认值

问题:查询account表时,并不想让用户查出密码来,所以要给密码赋一个默认值。select id,null as password from account order by id;结果:可以看出密码统一赋成了null。

2017-08-29 18:10:47 3910

原创 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 665

转载 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 1447

原创 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 594

原创 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 19405

原创 解决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 8285

空空如也

空空如也

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

TA关注的人

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