私はJava 8 + Spring 4を使用していたアプリケーションで作業しています。今はSpring DIなしでアプリケーションを実行できるようにSpring DI要件を削除します。H2クエリに対してNamedParameterJdbcTemplateを開始するにはどうすればよいですか?
データベース操作には、Spring JdbcTemplateとNamedParameterJdbcTemplateを使用します。これらのテンプレートは、Javaアプリケーションで他の機能/ .jarを使用するときに使用しています。
public class H2Dao {
private NamedParameterJdbcTemplate t;
@Autowired
public H2Dao(@Qualifier("H2JdbcTemplate") NamedParameterJdbcTemplate t) {
this.t=t;
}
}
アプリケーションのcontext.xmlは以下があります。
私はすべての@Autowiredや他の春に関連する注釈を削除する(そして今、コンストラクタを介してそれらを作る)
春バージョンをしていますが、この方法ですこのためコード:
012:<jdbc:embedded-database id="h2DataSource" type="H2">
<jdbc:script location="classpath:db/sql/h2.init.sql" />
</jdbc:embedded-database>
<bean id="H2JdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="h2DataSource" name="dataSource" />
</bean>
h2.init.sqlファイルには、コードの下にあり
私の質問は、どのようにDI用のapplication-context.xmlを使用しない非スプリングバージョンでも同じコードを書くことができます。私は、パラメータとしてNamedParameterJdbcTemplateを持つコンストラクタH2Daoを使用したい。どのようにH2Daoコンストラクタを渡すNamedParameterJdbcTemplateをインスタンス化するには?
はい、ちょうどこれを試してみました:あなたはおそらくEmbeddedDatabaseBuilderを使用する必要がありますDIを使用しない場合でも、(http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.htmlは、リンクを参照してください)。動作するようです。私は一度それをテストして更新します。 – Ajeetkumar
ありがとうДенисЯкибчукこれはまさに探していたものです! – Ajeetkumar