1

Spring でプロパティ ファイルを使用しようとしています。ファイル インジェクションは正常に機能し、Bean にアクセスできます。たとえば、このコード

    @Autowired
    private Properties properties;

このエラーが表示されます:No qualifying bean of type [java.util.Properties] is defined: expected single matching bean but found 2: csvHeaderProperties,systemProperties

リソースを使用してプロパティを注入すると、エラーは発生せず、すべて問題ないようです。

@Component
public Class MyClass {

    @Resource(name="csvHeaderProperties")
    private Properties properties;
}

ただし、このコードでは NPE が返されます。

@Component
public class DynCSVService {

    @Autowired
    private DynCSVDictionnary headerDico;

    public void processFile() {
        System.out.println(headerDico);
        }
}

両方のファイルは同じパッケージにあります。このコードに何か問題がありますか?

4

3 に答える 3

0

@Named アノテーションを使用する必要があります

ここに例があります

@Named("userDAO")
public class EfaUserDAOImpl

必要な場所に注入します。

@Inject
private @Named("userDAO")
EfaUserDAO userDAO; 
于 2013-07-01T10:57:59.963 に答える
0

エラーが見つかりました: DynCSVService を挿入しなかった別のファイルにあり、デフォルトのコンストラクターを使用しました。

于 2013-07-01T11:01:08.100 に答える
0

Spring は挿入するものをどのように推測する必要がありますか?

インジェクションの候補が 2 つ以上ある場合は、名前を付ける必要があります。

于 2013-07-01T10:49:02.360 に答える