2014-08-28 4 views
0

Я создал весенний-config.xml file.In этого файла я создал все бобы для класса обслуживания и DAO class.Now Я хочу назвать боб в моем методе Spring controller.The я уже знаю этоКакова наилучшая практика вызова метода обслуживания в контроллере весны?

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml"); 
SeviceClassName objService = (SeviceClassName) context.getBean("BeanName"); 

Но проблема в том, что я поместил файл в папку WEB-INF. Для metigate проблемы я использовал

ApplicationContext context = new FileSystemXmlApplicationContext("C:/Users/xyz/Desktop/HelloWeb/WebContent/WEB-INF/spring-config.xml"); 

Это работает отлично. Но это не кажется хорошей практикой. Затем я попытался инициализировать DispatcherServlet с помощью spring-config.xml.

<servlet> 
    <servlet-name>HelloWeb</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
      <init-param> 
       <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring-config.xml</param-value> 
     </init-param> 
<load-on-startup>1</load-on-startup> 

Но я не konw как вызвать компонента в контроллере. Я попытался использовать @Autowired в моем контроллере весны. Но он не работает.
Всякий раз, когда я пытаюсь это (@Autowired) и попытаться с Jsp Выполнение выражений файл одного и того же приложения в затмении он показывает «запрашиваемый ресурс не поступили».
Может ли один предложить мне, как решить эту проблему.
Или
может кто-нибудь предложить мне лучший подход, с помощью которого я могу ссылаться боб класса обслуживания, который я создал в весенне-config.xml.
Или любой другой подход для вызова методов класса обслуживания в весеннем контроллере.

Я используя весну 3.0. Я создал динамический веб-проект в Eclipse. В моей папке WEB-INF я поставил 4 xml-файл --web.xml, spring-config.xml, HelloWeb-servlet.xml. Мой HelloWeb-сервлет содержит

<mvc:annotation-driven /> 
    <context:annotation-config /> 
    <context:component-scan base-package="com.tutorialspoint" /> 

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> 
<property name="mediaTypes"> 
     <map> 
     <entry key="html" value="text/html"/> 
    <entry key="json" value="application/json"/> 
    </map> 
</property> 
</bean> 

    <bean id="jacksonMessageConverter"  class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> 
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
    <property name="messageConverters"> 
     <list> 
     <ref bean="jacksonMessageConverter"/> 
     </list> 
    </property> 
    </bean> 

Моя весна-конфигурации содержит все боб configuration.In контроллера яровой я просто для вызова метода службы, которые написаны в классе обслуживания, для которых я уже созданный боб весной -config.xml.

+0

Как вы создали свой проект и что такое иерархия? Где ваша конфигурация для beans. Опубликовать связанные файлы и код. –

+0

Я создал динамический веб-проект в eclipse. –

+0

Пожалуйста, разместите соответствующий код и файлы. –

ответ

0

Проверьте это Stackoverflow answer. Это, вероятно, гораздо более подробный ответ, чем то, что вы ищете, но это определенно поможет вам разобраться в основах.

По существу, корневой контекст, установленный через прослушиватель загрузчика контекста Spring, и контекст сервлета, установленный через соответствующий параметр сервлета. Имя параметра для обоих - contextConfigLocation (прежний - контекст-параметр слушателя, а последний - init-param сервлета).

@Autowired или @Inject может использоваться для ввода сервисного компонента в контроллер. Убедитесь, что сервисный компонент аннотируется @Service или @Resource, поэтому компонент загружается во время сканирования компонентов.

Смежные вопросы