1. String.format详解
1.1 占位符
占位符完整格式为: **%[index$][标识]*[最小宽度][.精度]转换符**
占位符说明:
% :占位符的其实字符,若要在占位符内部使用%,则需要写成 %% ;
[index$] :位置索引从1开始计算,用于指定对索引相应的实参进行格式化并替换掉该占位符;
[标识] :用于增强格式化能力,可同时使用多个 [标识] ,但某些标识是不能同时使用的;
[最小宽度] :用于设置格式化后的字符串最小长度,若使用 [最小宽度] 而无设置 [标识] ,那么当字符串长度小于最小宽度时,则以左边补空格的方式凑够最小宽度;
[.精度] :对于浮点数类型格式化使用,设置保留小数点后多少位;
转换符 :用于指定格式化的样式,和限制对应入参的数据类型。
1.2 重载方法
// 使用当前本地区域对象(Locale.getDefault())格式化字符串
String String.format(String fmt, Object... args);
// 自定义本地区域对象格式化字符串
String String.format(Locale locale, String fmt, Object... args);
1.3 对字符、字符串进行格式化
占位符格式为: **%[index$][标识][最小宽度]转换符**
例子如下:将"hello"格式化为" hello"
> String raw = "hello";
> String str = String.format("%1$7s", raw);
> // 简化
> //String str = String.format("%7s", raw);
可用标识:
-:在最小宽度内左对齐,右边用空格补上。
可用转换符:
s:字符串类型。
c:字符类型,实参必须为char或int、short等可转换为char类型的数据类型,否则抛IllegalFormatConversionException异常。
b:布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。
n:平台独立的换行符
2. nohup后台运行jar文件以及定向输出
nohup java -jar motorcade_new.jar > nohup.out 2>&1 &
3. web应用中关闭spring容器的方式
方法调用:
closeWebApplicationContext(event.getServletContext());
tomcat中使用
编写一个类MyLoaderListener继承ContextLoaderListener类并重写contextInitialized方法,如下:
package com.test.listener;
import javax.servlet.ServletContextEvent;
import org.springframework.web.context.ContextLoaderListener;
public class MyLoaderListener extends ContextLoaderListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// 校验license,不成功则直接tomcat停止
System.out.println("-----------此应用已经停止----------");
closeWebApplicationContext(event.getServletContext());
}
}
在web.xml中添加一个listener
<listener>
<listener-class>com.test.listener.MyLoaderListener</listener-class>
</listener>
结论
按照如上配置后,此tomcat在启动时会将此应用的Spring容器关闭,但是应用还是启动的,不过此应用是无法进行对外进行服务的。