В простом приложении Spring вы регистрируете боб в контейнере IoC пружины с помощью аннотации @Component
, а затем для получения бина вы сначала читаете файл конфигурации пружины, а затем извлекаете бин из контейнера с помощью:
ClassPathXMLApplicationContext context = new ClassPathXMLApplicationContext("spring config file")
Coach theCoach=context.getBean("beanId","classname")
Теперь вы можете вызывать методы для theCoach
.
Как мы получаем бин из контейнера, поскольку мы не используем
context.getBean();
Является ли DispatcherServlet
справиться с этим?
После редактирования -
/ ********************* Spring Application ******************************* / applicationContext.xml
<beans _______>
<context:component-scan base-package="packageName"/>
</beans>
Coach.java
public interface Coach{
public String getDailyWorkOut();
}
TennisCoach.java
@Component
public class TennisCoach implements Coach{
public String getDailyWorkOut(){
return "practise back hand volley";
}
ApplicationDemo.java
public class ApplicationDemo{
public static void main(String[] args){
ClassPathXMLApplicationContext context = new ClassPathXMLApplicationContext("applicationContext.xml");
Coach theCoach=context.getBean("tennisCoach",Coach.class)
theCoach.getDailyWorkOut();
}
}
/ ********************* Spring Application ******************************* /
Теперь для Spring MVC -
/*****************Spring-MVC Application**************************/
web.xml
<web-app>
<servlet>
<servlet-name>HelloWeb</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>contextConfigurationLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloWeb</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
applicationContext.xml
<beans _______>
<context:component-scan base-package="packageName"/>
</beans>
Coach.java
public interface Coach{
public String getDailyWorkOut();
}
TennisCoach.java
@Component
public class TennisCoach implements Coach{
@RequestMapping("/")
public String getDailyWorkOut(){
return "practise back hand volley";
}
/*********************Spring-MVC Application*********************/
Что я хочузнаю, что -
, что в вышеДля данного Spring-приложения я получаю bean-компонент из контейнера с помощью context.getBean (), как получается bean-компонент Coach в Spring-MVC-приложении?