refactor: optimize string concatenation and add startup statistics

- Replace string concatenation with .formatted() method for better readability
- Add StartupStatistics class to track initialization metrics
- Add detailed startup logging with timing information
  - Scan time
  - IOC time
  - Injection time
  - PostConstruct time
  - Total startup time
- Add banner output support (banner.txt or defBanner.txt)
- Add @Lazy annotation support for lazy initialization

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Timi
2026-01-13 01:41:49 +08:00
parent 93bcc9b5c6
commit f5c6dcd275
10 changed files with 890 additions and 659 deletions

View File

@ -0,0 +1,28 @@
package com.imyeyu.inject;
import java.util.ArrayList;
import java.util.List;
/**
* 启动统计信息
*
* @author 夜雨
* @since 2026-01-13 01:29
*/
class StartupStatistics {
final List<String> scannedPackages = new ArrayList<>();
int scannedClasses = 0;
int registeredBeans = 0;
int injectedFields = 0;
int postConstructInvocations = 0;
long scanStartTime = 0;
long scanEndTime = 0;
long iocStartTime = 0;
long iocEndTime = 0;
long injectionTotalTime = 0;
long injectionCurrentStart = 0;
long postConstructTotalTime = 0;
long postConstructCurrentStart = 0;
}