spring入门-整合junit和web

时间:2023-01-12 21:05:20

整合Junit

  • 导入jar包
    基本 :4+1
    测试:spring-test-5.1.3.RELEASE.jar
  1. 让Junit通知spring加载配置文件
  2. 让spring容器自动进行注入
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    (SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations="classpath:applicationContext.xml")
    public class {
    @Autowired
    private AccountService accountService;
    @Test
    public void demo() {
    accountService.transfer("jack", "rose", 1000);
    }
    }

整合web

  • 导入jar
    spring-web-5.1.3.RELEASE.jar
  1. tomcat启动加载配置文件
    servlet –> init(ServletConfig) –> 2
    filter –> init(FilterConfig) –> web.xml注册过滤器自动调用初始化
    listener –> ServletContextListener –> servletContext对象监听【】
    spring提供监听器 ContextLoaderListener –> web.xml 大专栏  spring入门-整合junit和webtener>….

    如果只配置监听器,默认加载xml位置:/WEB-INF/applicationContext.xml
  2. 确定配置文件位置,通过系统初始化参数
    ServletContext 初始化参数 web.xml

    <context-param>
    <param-name>contextConfigLocation
    <param-value>classpath:applicationContext.xml

代码

  1. 修改web.xml

    1
    2
    3
    4
    5
    6
    7
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
  2. servlet中调用

    1
    2
    3
    4
    5
    // 从application作用域(ServletContext)获得spring容器
    //方式1: 手动从作用域获取
    ApplicationContext applicationContext = (ApplicationContext) this.getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
    //方式2:通过工具获取
    ApplicationContext apppApplicationContext2 = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());