うまくいけば、この議論は手遅れではありません: しかし、これが私の見方です。
まず第一に、私は Qi4j の背後にあるアイデア (コンポジット、Mixins、アセンブリ) が好きですが、それを使用する複雑さによって妨げられています。
そこにある概念は、フレームワークよりも言語 (Java など) などのより広い傘の一部である必要があり、使いやすくする必要があります。
私は 2 年前に問題に遭遇したので、そのようなことがあればいいのにと思いました。
一連の Bean で再利用できる 3 つの異なる動作が必要でした。一部の Bean はそれらすべてを使用し、他の 2 つを任意に組み合わせて使用しました。意味がなかったので、それらすべてをクラスにまとめたくありませんでした。一方で、多重継承ができないという制約がありました。明白な解決策: インターフェイスを使用します。つまり、そのことを何度も実装するということです。インターフェイスのデフォルトの実装を提供する方法があればいいのにと同僚に不平を言ったことを覚えています。私にとってこれは、よりクリーンな方法で動作を再利用できるようにする単純な OO の概念です。また、デフォルトの実装とは異なるものが必要な場合は、それを実装するよりも. それはより理にかなっており、私が見ることができる自然法則を壊すことはありません.
したがって、あなたの質問に答えるために、この Qi4j の概念により、Spring がより構造的であり、概念的に比較することさえできない、よりクリーンな方法で OO を考えることができると思います。依存性注入を考えていて、Spring を考えていなくて、Qi4j を考えていて、Dept インジェクションを考えていない可能性があります。