1

春を使って最初の一歩を踏み出そうとしていますが、どうにかうまくいきません。助けていただければ幸いです。

Tomcat を使用しており、Tomcat lib ディレクトリにファイル jdbc-service.xml を追加しました。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">


<context:spring-configured />

<context:component-scan base-package="com.myproject"/>

<context:property-placeholder location="database.properties"/>

<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

DataSource オブジェクトを取得するために使用されるいくつかのプロパティを定義する database.properties があります。@Configuration を使用するクラスもあり、DB のプロパティを受け取ります。さらに、最初のものから継承する別の @Configuration クラスがあり、追加された JdbcTemplate オブジェクトには、各メソッドに @Bean という注釈が付けられています。

インターフェース UserRepository と、この UserRepositoryImpl と呼ばれる実装を作成しました。これには、注釈付きの @Autowired メンバー JdbcTemplate と、インターフェース UserRepository から継承された 1 つのメソッド findById のみの実装があります。

UserManager と呼ばれる別のインターフェイスがあり、その実装 UserManagerImpl - @Service として注釈が付けられています。@Autowired で注釈が付けられたメンバー UserRepository があります。findById へのメソッドを実装しており、UserRepository を使用して DB からユーザーを取得しようとしました。

最後に、メンバーを使用するサーブレットがあります

@Autowired
private UserManager userManager;

問題は、userManager が null であることです。春は始まらないと思いますが、理由はわかりません。私はおそらく何か重要なものを見逃しています。

なかなか進まないので助けてください。

前もって感謝します。

4

3 に答える 3

1

サーブレットは Spring Bean ではありません。それらは、Spring ではなく、Tomcat によって直接インスタンス化されます。したがって、これらは Spring の範囲外であり、注入できません。

サーブレットの代わりに Spring MVC コントローラーの使用を検討してください。

于 2012-11-06T22:26:59.010 に答える
0

あなたの UserManagerImpl は、com.myproject基本パッケージとして指定されたパッケージに含まれていますか?

于 2012-11-07T06:46:35.920 に答える