沒有絕對優劣,視團隊規範、項目階段、遷移成本而定。推薦「主幹 XML + 熱點註解」混合模式。
@Component、@Autowired 等註解,提供第二種選擇| 維度 | XML 配置 | 註解配置 |
|---|---|---|
| 靈活性 | 極高,可外部化修改無需重編譯 | 需修改源碼重編譯 |
| 可讀性 | 集中管理,適合全局視角 | 分散在類上,適合局部視角 |
| 模塊化裝配 | 支持 <import> 組合 | 較弱,依賴掃描路徑 |
| 維護成本 | 文件膨脹難追踪依賴 | 耦合在代碼中,重構風險大 |
| 遷移性 | 標準化,易遷移其他容器 | 強綁定 Spring,遷移需清理註解 |
base-packages="com.xxx.service"@Primary、@Qualifier 解決多實現注入<!-- applicationContext.xml -->
<context:component-scan base-package="com.xxx.service, com.xxx.web" />
<import resource="datasource.xml"/>
<import resource="redis.xml"/>
<import resource="mq.xml"/>
統一風格比選擇哪種更重要。新項目可嘗試 Spring Boot 全註解;存量項目遵循現有風格,局部重構時保持一致。