`

MVC3 一些杂七杂八的东西

 
阅读更多

要解决的问题:

@RequestHeader annotation for MVC handler methods
@PathVariable annotation for MVC handler methods
@Value annotation for embedded expression support
introduced @CookieValue annotation for Servlet and Portlet MVC handler methods
introduced @ExceptionHandler annotation for used in annotated web controllers

@Transactional supports qualifier value for choosing between multiple transaction managers
猜想使用方法是两个注解一块使用,当有多个事务管理器时,通过qualifier注解来限定,只有bean的id为指定id的才可以。
@Transactional
@Qualifier("bean的名字")
added TxAnnotationDriven, MvcAnnotationDriven, etc. as out-of-the-box FeatureSpecifications
Spring 3.1的缓存相关的注解  @Cacheable、@CachePut、@CacheEvict  <cache:advice>

综合的
@Configuration
@RequestPart
新产物RedirectAttributes
@RequestMapping(value = "/", method = RequestMethod.POST, consumes="application/json")
@RequestMapping(value = "/", method = RequestMethod.POST, produces="application/json")

如果随机随地取得spring容器管理的bena:

Spring容器在启动时,如果被Spring管理的Bean实现了ApplicationContextAware接口,那么会自动调用ApplicationContextAware接口中的

public void setApplicationContext(ApplicationContext context) throws BeansException

方法,向其传递ApplicationContext 对象。有了ApplicationContext 对象就可以取得所有的Spring管理的bean了。

我试过了,在双亲上下文环境上,可OK。这对于spring 3 MVC很重要。

 

配置文件:

	<!-- 用于持有ApplicationContext,可以使用SpringContextHolder.getBean('xxxx')的静态方法得到spring bean对象 -->
	<bean class="包名.SpringContextHolder" lazy-init="false" />

 

Demo:

//这段代码转自itEye上一位叫chenxin的朋友的Demo

import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext.
 * 
 */

public class SpringContextHolder implements ApplicationContextAware {
	private static ApplicationContext applicationContext;

	/**
	 * 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量.
	 */
	public void setApplicationContext(ApplicationContext applicationContext) {
		SpringContextHolder.applicationContext = applicationContext; // NOSONAR
	}

	/**
	 * 取得存储在静态变量中的ApplicationContext.
	 */
	public static ApplicationContext getApplicationContext() {
		checkApplicationContext();
		return applicationContext;
	}

	/**
	 * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
	 */
	@SuppressWarnings("unchecked")
	public static <T> T getBean(String name) {
		checkApplicationContext();
		return (T) applicationContext.getBean(name);
	}

	/**
	 * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
	 */
	@SuppressWarnings("unchecked")
	public static <T> T getBean(Class<T> clazz) {
		checkApplicationContext();
		return (T) applicationContext.getBeansOfType(clazz);
	}

	/**
	 * 清除applicationContext静态变量.
	 */
	public static void cleanApplicationContext() {
		applicationContext = null;
	}

	private static void checkApplicationContext() {
		if (applicationContext == null) {
			throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder");
		}
	}

}

 

 

 

 

 

分享到:
评论

相关推荐

    ASP.net MVC3 中文教程

    ASP.net MVC3 中文教程ASP.net MVC3 中文教程ASP.net MVC3 中文教程ASP.net MVC3 中文教程

    asp.net MVC2转MVC3

    标题提到的"asp.net MVC2转MVC3"是指将基于ASP.NET MVC2版本的应用程序升级到ASP.NET MVC3的过程。这涉及到一系列的技术迁移和兼容性调整,因为每个版本的ASP.NET MVC都有新的特性和改进。 **ASP.NET MVC2**: - ...

    MVC3中文安装包

    **MVC3中文安装包详解** MVC3(Model-View-Controller)是Microsoft开发的一款用于构建Web应用程序的框架,它是ASP.NET技术的一个重要组成部分。该版本是在ASP.NET MVC2之后发布的,带来了许多新特性,旨在提升开发...

    Asp.Net mvc 3

    Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3,Asp.Net mvc 3

    ASP.NET MVC3

    在ASP.NET MVC3中,一些重要的特性包括: 1. Razor视图引擎:这是MVC3引入的新视图引擎,以其简洁的语法和高效的代码输出受到欢迎。它允许开发者使用C#或VB.NET语法直接在视图模板中编写代码。 2. NuGet包管理器:...

    mvc3安装工具

    “mvc3安装工具”指的是微软ASP.NET MVC 3的安装程序或工具包,这是一个用于构建Web应用程序的框架,它基于Model-View-Controller(MVC)设计模式。MVC 3是ASP.NET MVC框架的一个版本,发布于2011年,提供了许多改进...

    MVC3安装教程

    **MVC3安装教程** **一、什么是MVC框架** MVC(Model-View-Controller)是一种设计模式,常用于构建可维护性高、结构清晰的Web应用程序。它将应用程序的逻辑分为了三个主要部分:模型(Model)、视图(View)和...

    MVC3补丁(在VS2010中使用MVC3)

    MVC3补丁(在VS2010中使用MVC3),按顺序安装好后,可以在VS2010中使用mvc3 AspNetMVC3Setup AspNetMVC3Setup_CHS AspNetMVC3ToolsUpdateSetup AspNetMVC3ToolsUpdateSetup_CHS

    MVC3安装程序

    MVC3安装程序

    MVC3及汉化安装文件

    MVC3是ASP.NET MVC系列的一个重要版本,提供了许多增强功能和改进,旨在提高开发效率和代码的可维护性。 **MVC模式** 在MVC模式中,"Model"负责处理数据和业务逻辑,"View"用于显示用户界面,而"Controller"则作为...

    vs2010 安装mvc3

    首先,我们需要理解MVC3在Web开发中的作用。MVC模式是一种设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据,视图负责展示用户界面,控制器则协调...

    dwz框架 asp.net mvc3

    【标题】:“DWZ框架与ASP.NET MVC3的结合应用” 【内容】 DWZ框架,全称为“Dynamic Web Zone”,是一款基于JavaScript的前端UI框架,主要用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括表格、...

    MVC3.rar_MVC3 linq_linq _mvc3

    综上所述,这个压缩包可能包含一个或多个ASP.NET MVC3项目,其中演示了如何使用Linq进行数据操作,特别是在分页场景下的应用,还可能涵盖了一些MVC3开发的常见技术和技巧。为了充分利用这些资源,读者需要有一定的...

    MVC3Demo实例

    ASP.NET MVC3引入了一些新特性,如: - Razor视图引擎:提供更简洁、直观的语法,减少视图模板的代码量。 - NuGet包管理器:方便安装和管理第三方库。 - jQuery和Unobtrusive JavaScript的内置支持:简化前端交互和...

    NIIT MVC3 MT2

    【标题】"NIIT MVC3 MT2"是一个关于.NET MVC(Model-View-Controller)框架的培训课程,针对的是Microsoft的MVC3版本。这个框架主要用于构建可维护性高、结构清晰的Web应用程序。NIIT(National Institute of ...

    MVC3安装包

    MVC3是ASP.NET MVC系列的一个重要版本,提供了许多增强的功能和改进,使得开发更加高效、灵活和易于测试。这个安装包适用于Visual Studio环境,特别是对于那些希望通过使用最新技术来开发Web应用程序的开发者来说,...

    Asp.net MVC3安装包

    ASP.NET MVC3(Model-View-Controller)是微软推出的一款用于构建可测试、模块化Web应用程序的框架,它是ASP.NET平台的一部分,适用于开发高性能、优雅的网页应用。该框架在ASP.NET MVC2的基础上进行了增强和扩展,...

    MVC3所有DLL

    标题"MVC3所有DLL"指的是ASP.NET MVC 3框架的核心组件集合,这是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。在这个压缩包中,包含了多个与MVC3相关的DLL文件,这些都是ASP.NET MVC框架运行所必需的。 ...

Global site tag (gtag.js) - Google Analytics