Visit Guest Service From Host With VirtualBox

VBoxManage modifyvm "xubuntu" --natpf1 "guest-redis,tcp,,6379,,6379"
VBoxManage modifyvm "xubuntu" --natpf1 "guest-mysql,tcp,,3306,,3306"

Another method is to create two adapters, NAT + Host Only.

ps. Delete the forwarding rules like:
VBoxManage modifyvm "xubuntu" --natpf1 delete "guest-redis"

refer to:
https://blog.csdn.net/chinainvent/article/details/6234368
https://superuser.com/questions/1282666/host-cant-connect-to-guest-with-nat-networking-at-virtualbox-but-others
https://forums.virtualbox.org/viewtopic.php?t=32014

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

OBS Memo

How to make recorded video not stuttering:
1, Update video card driver.
2, System Settings -> Gaming -> Game Mode -> On.
3, System Settings -> System -> Display -> Graphics -> add OBS binary path -> High performance.
4, Make OBS always run as administrator.
5, When OBS is running actively, press Win Key + G -> XBox Game Bar Settings -> Remember this is a game.
6, OBS settings -> output -> streaming -> encoder -> nvenc.
7, Reboot pc after initial setup, don't forget this step.

refer to:
https://github.com/obsproject/obs-studio/releases/