この質問は何度も聞かれました。私は少し混乱して、あなたのアイデアを願っています。静的クラスSpring-Bootを挿入するには?
私はSpring-BootでGoogle Cloud Storageを統合しています。
私はconfigクラスを持っています。
@Component
@ConfigurationProperties(prefix = "gcs.credentials")
public class GCSConfig {
private String serviceAccountId;
//...
}
シングルトンパターンを実装するストレージファクトリ。
@Component
public class StorageFactory {
@Autowired
private static GCSConfig gcsConfig;
private static Storage instance = null;
public static synchronized Storage getService() throws GeneralSecurityException, IOException {
if (instance == null) {
instance = buildService();
}
return instance;
}
private static Storage buildService() throws GeneralSecurityException, IOException {
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = new JacksonFactory();
// ...
// I use gcsConfig here
// ...
return new Storage.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("Google Cloud Storage App")
.build();
}
}
私はそのようなservice
のStorageFactoryを使用します。
私は、Autowired
は静的メンバーを挿入していないと読んでいます。それを実装する別の方法がありますか?たぶんシングルトンを簡単に作成するSpring-Bootの機能です。
どうすればよいですか?リンクを教えてください。私を正しい方向に導くことができますか?
GCS examplesのリンク。
春の豆のデフォルトスコープは "シングルトン"ですか?そのため、Spring Beanとして排他的に使用されるクラスでは、シングルトンパターンを実装するのは大変意味がありません。 – rmlan