0

ある種の CMS の構築を開始しましたが、1 つのアイデアに行き詰まっています。

説明は次のとおりです。

このコントローラーに設定されるモジュール設定をダウンロードする標準のMVCコントローラー(ホーム)があります。

応答は、「HPModule」という名前のモジュールを実装する必要があるということです。

だから私はこのモジュールをロードしてClass.forName("com.app.something.HPModule");メソッドを呼び出そうとしていますinit();

私のHPModuleは次のとおりです。

public class HPModule
{

    @Resource(name = "hpModuleService")
    private HPModuleService hpModuleService;

    public String init()
    {
        SomeObject someObject = hpModuleService.getArticle();
    }
}

そして、私がやろうとしているときに、私がクラスを呼び出しているとき、SomeObject someObject = hpModuleService.getArticle();Springは盲目であることがわかりました。@ResourceClass.forName

この問題を解決するには?

4

1 に答える 1

2

HPModule、Spring によって、DIまたは Spring から直接取得された Spring Bean でなければなりませんBeanFactory@Configurableandを使用してクラスを織り込まない限り、Spring によってインスタンス化されていないクラスを自動配線することは期待できませんAspectJ

HPModuleすでにSpring Beanである場合は、それを必要とするMVCコントローラーに直接@Autowireまたは直接接続するだけではありません。@Inject

コンパイル時に必要なモジュールがわからない場合は、注入ListableBeanFactoryして使用BeanFactoryUtilsし、実行時に必要なモジュールをタイプまたは名前で取得します。

于 2012-09-14T12:39:14.363 に答える