整合Junit
- 导入jar包
基本 :4+1
测试:spring-test-5.1.3.RELEASE.jar
- 让Junit通知spring加载配置文件
- 让spring容器自动进行注入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import 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
-
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
-
确定配置文件位置,通过系统初始化参数
ServletContext 初始化参数 web.xml<context-param>
<param-name>contextConfigLocation
<param-value>classpath:applicationContext.xml
代码
-
修改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> -
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());