IDEA自定义Maven的archetype

在创建 Maven 的项目时我们发现了一个很不方便的问题,就是每次创建 Maven 的工程的时候,都需要选择一个骨架,但是每个骨架都需要删除一部分东西才行,这样的话实在是太不方便了。

为什么要自定义 archetype

在创建 Maven 的项目时我们发现了一个很不方便的问题,就是每次创建 Maven 的工程的时候,都需要选择一个骨架,但是每个骨架都需要删除一部分东西才行,在平时开发中,如果是分布式项目,有可能会频繁创建子项目,每次都要删除不要的文件然后拷贝我们要的文件,例如弹簧配置,web.xml 中配置等。这样做不仅会浪费大量时间,拷贝和删除文件也容易导致错误的发生,比如漏拷某文件。


Terwer...大约 4 分钟经验分享骨架创建ideamavenarchetype
Java获取url中参数

方案

在 Java 中,你可以利用 URLEncoder ​ ​和 URLDecoder ​ ​来对 URL 字符串进行编解码,然后使用 String.split()​ 方法或者使用 正则表达式​ 来从 URL 字符串中获取参数。

代码示例

/**
 * 获取url中的参数
 *
 * @param url 链接
 * @param key 参数key
 * @return 参数值
 */
public static String getParameterFromUrl(String url, String key) {
	String[] params = url.split("\\?");
	String[] queryParams = params[1].split("&");

	String result = "";
	for (String queryParam : queryParams) {
		String[] param = queryParam.split("=");
		// System.out.println("key: " + param[0] + " value: " + param[1]);
		if (param[0].equals(key)) {
			result = param[1];
			break;
		}
	}

	return result;
}

Terwer...大约 1 分钟经验分享参数获取字符串使用方案
解决Tomcat8+设置allowLinking不生效问题

升级到 tomcat8+ 版本后,原先项目中的软连接目录都不好用了,查了一下资料发现是配置发生了改变,

参考资料:https://tomcat.apache.org/migration-8.html

For example:

Tomcat7

<!-- Tomcat7 -->
<Context docBase="/Users/terwer/workspace/test/WebContent" path="/test" reloadable="false" allowLinking="true">
</Context>

Terwer...小于 1 分钟经验分享升级版本原先项目连接tomcattomcat7tomcat8tomcat85tomcat9
搭建一个轻量级的ftp服务器

搭建

直接使用我写好的 docker-compose​ 脚本即可。

Dockerfile

# 依赖的镜像
FROM delfer/alpine-ftp-server:latest

#镜像创建者的信息
MAINTAINER terwer "youweics@163.com"

# 设置编码
ENV LANG C.UTF-8

# 设置时区
ENV TZ Asia/Shanghai

# docker inspect portable-ftpserver | grep IPAddres

Terwer...小于 1 分钟经验分享搭建直接light-weightftpftpserverdocker轻量级
Struts2使用标签库找不到URI:[struts-tags]的taglib[s]问题解决

找到 struts2-core​ 的 jar​ 包,将其复制到无关文件夹中,当作压缩文件解压,在其中的 META-INF​​ 目录中找到 struts-tags.tld​​ 文件,将其复制到项目中 webapp/WEB-INF​​ 目录下,然后在 web.xml​​ 文件中 (之前) 添加以下内容:

<!--配置/struts-tag位置-->
<jsp-config>
    <taglib>
        <taglib-uri>s</taglib-uri>
        <taglib-location>/WEB-INF/struts-tags.tld</taglib-location>
    </taglib>
</jsp-config>

Terwer...小于 1 分钟经验分享struts2tablib标签库not-founduristruts-tags
JDK之JavaBean内省机制

JDK 规范目录

JavaBean 是一种特殊的 Java 类,主要用于传递数据信息,这种 Java 类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。

一、JavaBean

JavaBean 命名规则

  1. 一个 JavaBean 类中的方法,去掉 set 或 get 前缀,剩余部分就是属性名,如果剩余部分的第二个字母是小写的,则把剩余部分的首字母改成小的。
    getAge/setAge --> age
    getTime/setTime --> time
  2. 如果去掉前缀,剩余部分的第二个字母为大写,则全部大写
    getCPU --> getCPU

Terwer...大约 4 分钟经验分享方法属性内省javabeanjdk
docker的WordPress启用https

docker 的 http 部署配置

  • 集成 MySQL 的版本

    version: '3.3'
    services:
       db:
         image: mysql:5.7.38
         volumes:
          - ./data:/var/lib/mysql
         ports:
          - "3307:3306"
         restart: "no"
         environment:
           MYSQL_ROOT_PASSWORD: wordpress
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
    
       wordpress:
         depends_on:
           - db
         image: wordpress:6.0.2
         ports:
           - "8000:80"
         restart: "no"
         environment:
           WORDPRESS_DB_HOST: "db:3306"
           WORDPRESS_DB_USER: "wordpress"
           WORDPRESS_DB_PASSWORD: "wordpress"
           WORDPRESS_DEBUG: 1
         volumes:
          - ./wordpress:/var/www/html
          - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    
  • 使用 rds 版本的 mysql

    version: '3.3'
    services:
       wordpress:
         image: wordpress:6.0.2
         ports:
           - "80:80"
         restart: "no"
         environment:
           WORDPRESS_DB_HOST: "${MYSQL_HOST}:${MYSQL_PORT}"
           WORDPRESS_DB_NAME: "${MYSQL_DB_NAME}"
           WORDPRESS_DB_USER: "${MYSQL_USERNAME}"
           WORDPRESS_DB_PASSWORD: "${MYSQL_PASSWORD}"
           # WORDPRESS_DEBUG: 1
         volumes:
          - ./wordpress:/var/www/html
          - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    

Terwer...大约 2 分钟经验分享部署使用dockerdocker-composehttpswordpressssl
plantuml配合graphviz

IDEA 安装插件

直接 IDEA 搜索 plantuml 即可

Mac 安装

 brew install graphviz

Terwer...小于 1 分钟经验分享安装插件直接搜索graphviz
2
3
4
5
...
8