目录
1.添加pom
2.配置web.xml spring.xml
4.配置在创建一个类实现ServletContextListener
5.配置servlet
1.添加pom
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.29</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.29</version>
</dependency>
2.配置web.xml spring.xml
web.xml
<web-app> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
spring
<context:component-scanbase-package="com.hu"/>
4.配置在创建一个类实现ServletContextListener
创建一个类实现ServletContextListener
将创建好的ApplicationContext存储到ServletContext域中,这样整个web层任何位置就都可以获取到了
服务器一启动就执行Initial方法这个方法是整个web最先执行的
*sce就是全局对象servletContext
public class MyListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {ServletContext servletContext = sce.getServletContext();String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");contextConfigLocation = contextConfigLocation.substring("classpath".length());ApplicationContext applicationContext = new ClassPathXmlApplicationContext(contextConfigLocation);servletContext.setAttribute("applicationContext",applicationContext);}
5.配置servlet
@WebServlet("/login") publicclassLoginControllerextendsHttpServlet{ @Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{ //ServletContextservletContext=this.getServletContext(); ServletContextservletContext=req.getServletContext(); WebApplicationContextwebApplicationContext=WebApplicationContextUtils.getWebApplicationContext(servletContext); UserServicebean=webApplicationContext.getBean("us",UserService.class); bean.show(); }