spring和tomcat的整合

spring怎么和web项目集成
在maven项目里面导入依赖核心包在pom.xml

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>4.3.10.RELEASE</version>
</dependency>
  1. web项目如何读取spring上下文,创建SpringWebUtil类(为了将spring上下文整合进tomcat容器)
public class SpringWebUtil {

	public static final String SPRING_WEB_KEY = "spring_web_key";

	
	/**
	 * 
	 * @param applicationContext spring上下文
	 * @param servletContext  tomcat容器
	 */
	public static void setApplicationContext(ApplicationContext applicationContext, ServletContext servletContext) {
		servletContext.setAttribute(SPRING_WEB_KEY, applicationContext);
	}

	public static ApplicationContext getApplicationContext(ServletContext servletContext) {
		return (ApplicationContext) servletContext.getAttribute(SPRING_WEB_KEY);
	}

}

  1. 通过监听器实现ServletContextListener,创建ServletContextListenner类,重写init方法将spring进行建模
    获取所有spring上下文所管理的javaBean类
public class ServletContextListener implements javax.servlet.ServletContextListener {

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("contextInitialized初始化...");
		System.out.println("加载spring上下文所有管理的javabean类");
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-context.xml");
		ServletContext servletContext = sce.getServletContext();
		SpringWebUtil.setApplicationContext(applicationContext, servletContext);
	}

}
  1. servlet获取spring上下文
public class UserServlet extends HttpServlet {

	private static final long serialVersionUID = -2272673089277108664L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		 System.out.println("do someThings");
		ApplicationContext applicationContext = SpringWebUtil.getApplicationContext(req.getServletContext());
 
		UserAction userAction = (UserAction) applicationContext.getBean("userAction");
		
		userAction.upload();

	}

}
  1. web.xml文件的配置
<!--  配置监听器-->
<listener>
		<listener-class>com.zking.services.listener.ServletContextListener</listener-class>
	</listener>
<!-- 配置servlet -->
	<servlet>
		<servlet-name>userServlet</servlet-name>
		<servlet-class>com.zking.services.servlet.UserServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>userServlet</servlet-name>
		<url-pattern>/userServlet</url-pattern>
	</servlet-mapping>

猜你喜欢

转载自blog.csdn.net/ahong_1920/article/details/84798292