Spring MVC çerçevesine dayalı bir web uygulamasında DI'nin nasıl yapıldığını anlamaya çalışıyorum.Bahar MVC web uygulamasında Bağımlılık Enjeksiyonu
Bunun için web.xml'u değiştirdim. kontrol sınıfı aşağıdaki
<beans xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans">
<bean id="HandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean name="/welcome.html" class="com.example.hellocontroller.HelloController"/>
<bean id="simpleUtil" class="com.example.util.SimpleUtil"/> ----->(1)
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
edilir: Yay memuru-servlet.xml olarak
public class HelloController extends AbstractController {
@Autowired
private SimpleUtil simpleUtil; -------> (2)
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println("calling the method add(a,b) ");
simpleUtil.add(2, 3);
ModelAndView modelandview = new ModelAndView("HelloPage");
modelandview.addObject("welcomeMessage", "first Spring MVC Application");
return modelandview;
}
}
<web-app ...>
<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Sonra, yay memuru-servlet.xml oluşturulan Çeşitli fasulyeleri tanımlamaktayım, özellikle (1) -><bean name="simpleUtil" class="com.example.util.SimpleUtil"/>
Şimdi, kontrolörün I (2) listelenen bu fasulye Bahar framework tarafından enjekte istiyorum:
@Autowired
private SimpleUtil simpleUtil;
Ben Bahar bağımlılık enjekte etmedi yani NullPointerException alıyorum bu programı çalıştırmak
.Burada yanlış bir şey mi yapıyorum? Bu iş nasıl yapılır?
Burada birkaç ilgili soru var:
Q1) spring-dispatcher-servlet.xml
fasulye tanım yapılandırma dosyası olarak hizmet ediyor mu? Eğer değilse, o zaman ilkbahar tarafından yönetilmek istediğim fasülye tanımlama dosyalarını nereden temin ederim?
S2) Spring MVC'nin ön denetleyicisi, Handling Mapping öğesinin hangi üretici kimliğinin ne olduğunu nereden biliyor? (Bizim durumumuzda verilen kimlik "HandlingMapping" dir).