1.在web.xml裏面配置java
<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>
ContextLoaderListener的做用就是啓動Web容器時,自動裝配ApplicationContext的配置信息。web
由於它實現了ServletContextListener這個接口,在web.xml配置這個監聽器,啓動容器時,就會默認執行它實現的方法。spring
ContextLoaderListener啓動的上下文爲根上下文,DispatcherServlet所建立的上下文的的父上下文即爲此根上下文,可在FrameworkServlet中的initWebApplicationContext中看出。sql
1.方式1:app
package com.xp; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.context.ContextLoader; import org.springframework.web.context.WebApplicationContext; public class MyServlet extends HttpServlet{ /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); System.out.println(context); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } }
Spring Junit4 獲取Beanide
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/spring/applicationContext-*.xml"}) public class DataSourceTest implements ApplicationContextAware{ private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } @Test public void testDict() throws Exception { DruidDataSource dataSource = (DruidDataSource)applicationContext.getBean("slave01DataSource"); String sql = "select * from C1_1 limit 4"; PreparedStatement prepareStatement = dataSource.getConnection().prepareStatement(sql); ResultSet rs = prepareStatement.executeQuery(); while (rs.next()) { int int1 = rs.getInt("id"); String CsCode = rs.getString("CsCode"); } System.out.println(); }