springMVC系列之与spring的整合――07(二)

2014-11-24 02:40:34 · 作者: · 浏览: 1
/

3、springAnnotation-servlet.xml与前面一样

4、springAnnotation-core.xml


  

]>


  
	
    
   
  

5、springAnnotation-import.xml


  

]>


  
	
   

  

6、StringController.java

package com.chy.web.controller.annotation;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.servlet.support.RequestContextUtils;

@Controller
@RequestMapping(/spring)
public class StringController {

	/*
	//代替struts2中的get、set方法
	@Resource(name=springManager)
	private SpringManager springManager;
	
	@RequestMapping(/springManager)
	public String springManager(){
		System.out.println(this is spring controller);
		springManager.get();
		return success;
	}
	*/
	
	/**
	 * 获取各个上下文、验证springMVC上下文继承与spring上下文
	 * 为避免影响、将上面的private SpringManager springManager 注释掉
	 */
	@RequestMapping(/getAndValidateContext)
	public String getAndValidateContext(HttpServletRequest request){
		//根环境上下文ServletContext——服务器上下文
		ServletContext sc = request.getSession().getServletContext();
		
		//根据ServletContext获取spring上下文、继承与ServletContext
		WebApplicationContext ac1 = WebApplicationContextUtils.getWebApplicationContext(sc);	
		
		//获取springMVC上下文、继承与spring上下文
		WebApplicationContext ac2 = RequestContextUtils.getWebApplicationContext(request);
		
		
		//验证springMVC上下文继承与spring上下文
		/*
		 * 我们知道通过spring配置文件的bean标签、在服务器启动的时候就已经将 SpringManager为我们注入好了
		 * 所以我们可以通过spring的上下文来获取springManager的实例来调用get()方法、看能不能输出东西就ok
		 */
		SpringManager springManager1 = (SpringManager) ac1.getBean(springManager);
		springManager1.get();
		System.out.println(===========================================);
		
		//通过springMVC获取StringManager实例
		SpringManager springManager2 = (SpringManager) ac2.getBean(springManager);
		springManager2.get();
		
		/*
		 * 有兴趣的可以通过debug5的形式看看ac1、ac2中都有哪些东西、我们可以通过getBean方法获取想要的
		 */
		return success;
	}
}

7、SpringManager.java

package com.chy.web.controller.annotation;

public interface SpringManager {
	public void get();
}

8、SpringManagerImpl.java

package com.chy.web.controller.annotation;

public class SpringManagerImpl implements SpringManager{

	public void get() {
		System.out.println(this is get() method);
	}
}

更多内容: springMVC系列之目录——00