मैं @Autowired
और @Service
के पीछे की अवधारणा को समझने में सहायता की जरूरत से नहीं। मेरे पास @Service
और @Autowired
के साथ नियंत्रक के साथ परिभाषित एक डीएओ है और सब कुछ ठीक लगता है, हालांकि, मैं एक अलग वर्ग में उसी @Autowired
का उपयोग करता हूं, तो यह काम नहीं करता है।@Autowired और @Service नियंत्रक से काम कर लेकिन एक अलग पैकेज
उदाहरण:
सेवा
@Service
public class MyService {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource (DataSource myDataSource) {
this.jdbcTemplate = new JdbcTemplate(myDataSource);
}
public void testUpdate(){
jdbcTemplate.update("some query");
}
}
नियंत्रक
package com.springtest.mywork.controller;
@Controller
@RequestMapping(value = "/test.html")
public class MyController
{
@Autowired
MyService myService;
@RequestMapping(method = RequestMethod.GET)
public String test(Model model)
{
systemsService.testUpdate();
return "view/test";
}
}
उपरोक्त सभी ठीक काम करता है। हालांकि, अगर मैं पीओजेओ में MyService
का उपयोग करना चाहता हूं तो यह काम नहीं करता है। उदाहरण:
package com.springtest.mywork.pojos;
public class MyPojo {
@Autowired
MyService myService;
public void testFromPojo() {
myService.someDataAccessMethod(); //myService is still null
}
}
स्प्रिंग कॉन्फ़िग:
<beans>
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<context:component-scan base-package="com.springtest.mywork" />
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb" />
<property name="username" value="hello" />
<property name="password" value="what" />
</bean>
<bean name="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
</beans>
है 'वसंत द्वारा instantiated MyPojo'? –
मैंने config.xml में 'MyController' के लिए कुछ भी नहीं किया है इसलिए मैंने इसे' MyPojo 'के लिए नहीं किया है। मुझे क्या करना चाहिए? – birdy
क्या आप अपनी स्प्रिंग कॉन्फ़िगरेशन पोस्ट कर सकते हैं? –