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