在普通WEB项目中使用Spring

Spring是一个对象容器,帮助我们管理项目中的对象,那么在web项目中哪些对象应该交给Spring管理呢?

项目中涉及的对象

​ 我们回顾一下WEB项目中涉及的对象

  • Servlet
  • Request
  • Response
  • Session
  • Service
  • DAO
  • POJO

分析

我们在学习IOC容器时知道,Spring可以帮助我们管理原来需要自己创建管理的对象,如果一个对象原来就不需要我们自行管理其的创建和声明周期的话,那么该对象也就不需要交给Spring管理

由此来看,上述对象中只有Service,DAO,POJO应该交给Spring管理,而由于POJO通常都是由持久层框架动态创建的,所以最后只有Service和DAO要交给Spring容器管理,

当然Spring中的AOP也是很常用的功能,例如事务管理,日志输出等..

最小pom依赖:

    
        UTF-8
        1.7
        1.7
    

    
        
        
            org.springframework
            spring-context
            5.2.2.RELEASE
        
        
        
            org.springframework
            spring-web
            5.2.2.RELEASE
        


        
        
        
            javax.servlet
            jstl
            1.2
        
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.3.3
            provided
        
        
        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided
        
    

上述依赖可以保证项目可以使用Spring容器以及JSP,EL,Servlet的正常使用,测试完成后既可以向普通Spring或web项目一样进行开发了

Spring配置文件:




    
        
    

在容器中添加了一个整数,用于测试容器是否可用

web.xml





  Archetype Created Web Application
  
    index.jsp
  


  
    contextConfigLocation
    classpath:applicationContext.xml
  

  
    org.springframework.web.context.ContextLoaderListener
  

测试Servlet

package com.yh.servlet;


import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "TestServlet",urlPatterns = "/test")
public class TestServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取Spring容器
        WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
        //获取容器中的对象测试
        Object integer = context.getBean("integer");
        response.getWriter().println("hello spring "+integer);
    }
}

配置tomcat启动访问:http://localhost:8080/HMWK_war_exploded/test即可查看到容器中的整数100,表明Spring和WEB项目都正常工作了!

你可能感兴趣的:(在普通WEB项目中使用Spring)