是放在control層通過service接口調用好?
個人建議調用其他模塊的接口,建議通過service層調用。如果A模塊的service調用B模塊的dao,B模塊的dao和A模塊耦合。假設隨著業務的發展,需要將A、B模塊各自單獨發布成一個服務,那么A、B模塊都要維護B模塊的dao,并且A、B模塊的開發人員都要熟悉B模塊的dao,B模塊的表增減字段后,需要同時通知A、B模塊的開發人員,顯然不便于維護。而且由于A、B模塊都引入了B的dao模塊,意味著A模塊可以直接訪問B模塊dao的所有功能,而dao模塊通常是一些基礎操作。反之,service層一般是有具體業務含義的,通過service對外暴露具有特定含義的業務接口,可以避免將底層的操作全部暴露給外部模塊。再假設隨著業務的進一步發展,A、B模塊需要進行分庫,A、B模塊分別使用各自的數據庫,那么A再引入B的dao則必須訪問B的數據庫,意味著A要訪問A、B兩個模塊的數據庫,如果還有C、D模塊呢,則A要訪問A、B、C、D多各模塊的數據庫,顯然不利于開發和維護,也不利于被引用模塊的數據安全。