Arthas Memo

dashboard
thread -b	# check dead lock
thread
thread 123
jad TestClass
redefine /root/TestClass.class
jmap -histo 1234 | head -20

refer to:
https://visualvm.github.io/index.html

SpringBoot Request And Response

1, 简单参数
	定义方法形参,请求参数名与形参变量名一致。
	如果不一致,通过@RequestParam手动映射。
2,实体参数
	请求参数名,与实体对象的属性名一致,会自动接收封装。
3,数组集合参数
	数组:请求参数名与数组名一致,直接封装。
	集合:请求参数名与集合名一致,@RequestParam绑定关系。
4,日期参数
	@DateTimeFormat
5,JSON参数
	@RequestBody
6,路径参数
	@PathVariable
	@Autowired
	private HttpServletRequest request;

refer to:
https://www.bilibili.com/video/BV1kg4y1x7o6?p=70

Return Primary Key After Inserting In MyBatis

@Mapper
public interface EmpMapper {
 
	@Delete("delete from emp where id = #{id}")
	public void delete(Integer id);
 
	@Options(useGeneratedKeys = true, keyProperty = "id")
	@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +
			" values (#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime})")
	public void insert(Emp emp);
 
	@Results({
		@Result(column = "dept_id", property = "deptId"),
		@Result(column = "create_time", property = "createTime"),
		@Result(column = "update_time", property = "updateTime")
	})
	@Select("select * from emp where id = #{id}")
	public Emp getById(Integer id);
 
	// or in application.properties
	// mybatis.configuration.map-underscore-to-camel-case=true
 
	//@Select("select * from emp where name like '%${name}%' and gender = #{gender} and " +
	//		"entrydate between #{begin} and #{end} order by update_time desc ")
	@Select("select * from emp where name like concat('%', #{name}, '%') and gender = #{gender} and " +
			"entrydate between #{begin} and #{end} order by update_time desc ")
	public List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);
}

refer to:
https://www.bilibili.com/video/BV1kg4y1x7o6/?p=124

IDEA Maven Speedup

ideaIU-2023.2.1.win\plugins\maven\lib\maven3\conf\settings.xml

  <mirrors>
...
	<mirror>
		<id>aliyunmaven</id>
		<mirrorOf>*</mirrorOf>
		<name>阿里云公共仓库</name>
		<url>https://maven.aliyun.com/repository/public</url>
	</mirror>
...
  </mirrors>
...
  <profiles>
...
	<profile>
	<id>jdk-1.8</id>
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	</properties>
	</profile>
  </profiles>

refer to:
https://blog.csdn.net/baikunlong/article/details/113762152
https://www.bilibili.com/video/BV1kg4y1x7o6?p=49
https://mvnrepository.com

JDB Memo

src/META-INF/MANIFEST.MF

Manifest-Version: 1.0
Main-Class: com.example.TestApp1
Class-Path: lib/lib1.jar lib/lib2.jar
java -agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=y -jar TestApp1.jar
jdb -attach jdbconn
	sourcepath src/TestApp1/src;src/common/src
	stop in com.example.startSocket(java.lang.String, int)
	run
	list
	resume

refer to:
https://blog.csdn.net/dongfang1924/article/details/101613188