2017-07-06 9 views
0

私は、Beanの設定でプロパティを追加することで、クラスにフィールド変数をオートワイヤしようとしています。その結果、バネがプロパティの値を持つ文字列をインスタンス化すると、春のプロパティをオートワイヤリングする方法

私の春の設定ファイルは

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

<bean id="authentication" class="com.quicut.model.authenticationModel"> 
    <property name="dbURL" value="jdbc:mysql://127.0.0.1:3306/quicut" /> 
    <property name="userN" value="user1" /> 
    <property name="userP" value="password" /> 
    <property name="JDBC_DRIVER" value="com.mysql.jdbc.Driver" /> 
</bean> 

として、私はインスタンス化するとき、その値は、スプリングによって割り当てられるようにしたい次のフィールドを持っているためにBeanを作成したクラスです。

public class authenticationModel { 


    private String dbURL; 
    private String userN; 
    private String userP; 
    private String JDBC_DRIVER; 

依存関係が必要なクラスは次のとおりです。

public class login extends HttpServlet { 
@Autowired 
@Qualifier(value="authentication") 
authenticationModel aModel; 

私は何が間違っているか不足しているのか分かりません。

+1

1.あなたは、Javaの命名規則を尊重していません。 2.エラーメッセージとスタックトレースは、エラーの内容を知るのに便利だとは思わない。私の推測では、サーブレットはSpringコンポーネントではないため、Springはそのプロパティをautowireできないため、NullPointerExceptionが発生しています。 Spring MVCを使用します。何年も何年も古くなっているSpring 2.5は使わないでください。 –

答えて

0

たとえば、AuthenticationModelという名前の代わりにAuthenticationModelという名前を使用して、クラスに最初の大文字を使用して名前を付けることができます。

特定のJavaクラスでSpring Beanをオートワイヤ化する場合は、そのクラスを@Controllerまたは@Service Beanタイプとしてマークする必要があります。春の豆だけが他の豆を刈り取ることができます。

あなたのログインクラスは特定のSpring Beanとしてマークされていないので、おそらく前の注釈の1つを使用する必要があります。例えば

@Service 
public class LoginService { 
    @Autowired 
    @Qualifier(value="authentication") 
    AuthenticationModel aModel; 
} 
関連する問題