SpringのSLF 4 Jにおける複数のバインディング衝突問題


問題
Mavenが管理する純Springプロジェクトでは、本来はロゴ4 jを使用していたが、結果として依存していたライブラリ(coree-dataプロジェクト)には、またlogbackファイル(logbackと元のlogback 4 jは2つしか選択できない)を引用して配置が無効になった.
以下は複数のlib衝突です.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/app/top-media-frag/lib/logback-classic-1.0.13.
     jar!/org/slf4j/impl/StaticLoggerBinder.class]   
SLF4J: Found binding in [jar:file:/opt/app/top-media-frag/lib/slf4j-log4j12-1.7.5.jar
     !/org/slf4j/impl/StaticLoggerBinder.class]
解決方法
方法一(暴力法)
プロジェクトを展開した後、余分なlibファイルを削除し、簡単にshellファイルに保存して、配置スクリプトを自動起動します.
rm -f -v logback*
方法二(調和法)
pom.xmlファイルの中でexclusionは衝突のカバンを排除して、coree-dataの主なプロジェクトに対する影響を避けるために、SLF 4 Jに関するカバンを排除しました.具体的にpom.xmlファイルの中で再排除を確認します.
<dependency>
            <groupId>com.nickwongfree.mpgroupId>
            <artifactId>core-dataartifactId>
            <version>1.1version>
            
            <exclusions>
                <exclusion>
                    <groupId>ch.qos.logbackgroupId>
                    <artifactId>logback-classicartifactId>
                exclusion>
                <exclusion>
                    <groupId>ch.qos.logbackgroupId>
                    <artifactId>logback-coreartifactId>
                exclusion>
                <exclusion>
                    <groupId>log4jgroupId>
                    <artifactId>log4jartifactId>
                exclusion>
            exclusions>
        dependency>
方法三(押し鍋法)
問題の根源は依頼のライブラリ自体が規範ではなく、具体的なSLF 4 Jのライブラリを含んではいけません.元開発者に処理させてもいいです.
その他:Spring-MVCはもっと簡潔な方式があります.
余談をする
プログラミングの規範や、特にプロジェクトの規模が大きくなってから、守らない規範が効率に大きな影響を与えました.
参照
[1]sf 4 jログの使用[2]stackover flowで回答[3]なぜLog 4 JではなくSLF 4 Jを使うのですか?