Spring wstrzykując lub autowiring komponentu bean danych do klasy

może to być bardzo nowatorskie pytanie, ale szukałem i albo mam dużą lukę w moim rozumieniu, albo robię coś niewłaściwego, czego nie potrafię zrozumieć.

W moim pliku kontekstowym znajduje się fragment

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${datasource.driverClassName}" />
    <property name="url" value="${datasource.url}" />
    <property name="username" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
</bean>

<bean id="myBeanOne" class="a.b.c.myBeanOne">
         <property name="dataSource" ref="dataSource" />
</bean>

Teraz w myBeanOne mam:

private DataSource dataSource;

private JdbcTemplate jdbcTemplate;

@Autowired
public void setDataSource (DataSource dataSource) {
    this.jdbcTemplate = new JdbcTemplate(dataSource);
}

public void myMethod() {
    String sql = "'My generic SQL update query'";
    try {
        this.jdbcTemplate.update(sql);
    } catch (org.springframework.dao.EmptyResultDataAccessException ex) {
    }
    System.exit(0);
}

kiedy próbuję to wykonać w linii, w której wywołano setDataSource, otrzymuję ten błąd:

ERROR org.springframework.integration.handler.LoggingHandler 
    org.springframework.integration.MessageHandlingException: 
       java.lang.NullPointerException

na linii:this.jdbcTemplate.update(sql);

Próbowałem być może dziesięciu różnych konfiguracji, aby to zadziałało, ale nie mogę tego zrobić. Każda pomoc jest mile widziana, dziękuję.

Edytować: zgodnie z komentarzem Luiggiego:

//in yet another classes run method
myBeanOne bOne = SomeOtherClass.create();   //just returns new myBeanOne
bOne.myMethod();

Ani SomeOtherClass, ani ta klasa nie są klasyfikowane jako fasola w kontekście ani nie mają obecności w kontekście.

Wiem, że to bardzo podstawowe pytanie, ale walczę z tym.

Dziękuję za Twoją cierpliwość.

questionAnswers(2)

yourAnswerToTheQuestion