spring源码之—Assert.notNull

org.springframework.util.AssertAssert翻译为中文为"断言".用过JUNIT的应该都知道这个概念了.就是断定某一个实际的值就为自己预期想得到的,如果不一样就抛出异常.Assert经常用于:1.判断METHOD的参数是否属于正常值.2.JUNIT中使用. 我发现SPRING1.2.6里面有BUG请看:org.springframework.core.io.support.EncodedResource中publicEncodedResource(Resourceresource,Stringencoding){Assert.notNull("Resourceisrequired");this.resource=resource;this.encoding=encoding;} Assert.notNull("Resourceisrequired");这句应该为Assert.notNull(resource,"Resourceisrequired");不然resource都没传过来,还断什么言啊,呵呵. -----------...
代码星球 代码星球·2021-02-21

spring 事务传播

1:PROPAGATION_REQUIRED加入当前正要执行的事务不在另外一个事务里,那么就起一个新的事务。比如说,ServiceB.methodB的事务级别定义为PROPAGATION_REQUIRED,那么由于执行ServiceA.methodA的时候,ServiceA.methodA已经起了事务,这时调用ServiceB.methodB,ServiceB.methodB看到自己已经运行在ServiceA.methodA的事务内部,就不再起新的事务。而假如ServiceA.methodA运行的时候发现自己没有在事务中,他就会为自己分配一个事务。这样,在ServiceA.methodA或者在ServiceB.methodB内的任何地方出现异常,事务都会被回滚。即使ServiceB.methodB的事务已经被提交,但是ServiceA.methodA在接下来fail要回滚,ServiceB.methodB也要回滚。 2:PROPAGATION_SUPPORTS如果当前在事务中,即以事务的形式运行,如果当前不再一个事务中,那么就以非事务的形式运行。 3:PROPAGA...
代码星球 代码星球·2021-02-21

spring mvc controller间跳转 重定向 传参

转自:springmvccontroller间跳转重定向传参(转) 1.需求背景  需求:springMVC框架controller间跳转,需重定向。有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。本来以为挺简单的一件事情,并且个人认为比较常用的一种方式,一百度全都有了,这些根本不是问题,但是一百度居然出乎我的意料,一堆都不是我想要的结果。无奈啊,自己写一篇比较全都供以后大家一百度吧,哈哈哈。。。是这些写的不是很全都人们给了我写这篇博客的动力。2.解决办法  需求有了肯定是解决办法了,一一解决,说明下spring的跳转方式很多很多,我这里只是说一些自我认为好用的,常用的,spring分装的一些类和方法。(1)我在后台一个controller跳转到另一个controller,为什么有这种需求呢,是这样的。我有一个列表页面,然后我会进行新增操作,新增在后台完成之后我要跳转到列表页面,不需要传递参数,列表页面默认查询所有的。      方式一:...

Spring MVC Flash Attribute

转自:SpringMVCFlashAttribute的讲解与使用示例 SpringMVC3.1版本加了一个很有用的特性,Flash属性,它能解决一个长久以来缺少解决的问题,一个POST/Redirect/GET模式问题。正常的MVCWeb应用程序在每次提交都会POST数据到服务器。一个正常的Controller(被注解@Controller标记)从请求获取数据和处理它(保存或更新数据库)。一旦操作成功,用户就会被带到(forward)一个操作成功的页面。传统上来说,这样的POST/Forward/GET模式,有时候会导致多次提交问题.例如用户按F5刷新页面,这时同样的数据会再提交一次。为了解决这问题,POST/Redirect/GET模式被用在MVC应用程序上.一旦用户表单被提交成功,我们重定向(Redirect)请求到另一个成功页面。这样能够令浏览器创建新的GET请求和加载新页面。这样用户按下F5,是直接GET请求而不是再提交一次表单。 虽然这一方法看起来很完美,并且解决了表单多次提交的问题,但是它又引入了一个获取请求参数和属性的难题.通常当我们生成一次http重...
代码星球 代码星球·2021-02-21

Spring MVC异常处理

转自:SpringMVC学习系列(10)之异常处理  在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的。那么如何保证我们处理异常的代码精简且便于维护呢?这就是本篇要讲的内容—>异常处理。在SpringMVC中我们可以通过以下2中途径来对异常进行集中处理:一.继承HandlerExceptionResolver接口实现自己的处理方法,如:publicclassMyHandlerExceptionResolverimplementsHandlerExceptionResolver{@OverridepublicModelAndViewresolveException(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex){//添加自己的异常处理逻辑,如日志记录等//TODOAuto-generatedmethodstubreturnnewModelAndView("exception");}...
代码星球 代码星球·2021-02-21

SpringMVC表单标签简介

转自:SpringMVC表单标签简介 在使用SpringMVC的时候我们可以使用Spring封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容。下面将对这些标签一一介绍。  在正式介绍SpringMVC的表单标签之前,我们需要先在JSP中声明使用的标签,具体做法是在JSP文件的顶部加入以下指令:<%@tagliburi="http://www.springframework.org/tags/form"prefix="form"%> 使用Spring的form标签主要有两个作用,第一是它会自动的绑定来自Model中的一个属性值到当前form对应的实体对象,默认是command属性,这样我们就可以在form表单体里面方便的使用该对象的属性了;第二是它支持我们在提交表单的时候使用除GET和POST之外的其他方法进行提交,包括DELETE和PUT等。1.1.1 支持绑定表单对象我们先来看如下使用form标签的一个示例:<form:formaction="formTag/form.do"method="post...

spring-security 配置文件

转自:spring-security学习笔记--配置文件 <?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:sec="http://www.springframework.org/schema/security"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/securityhttp://www.springframework.org/schema/security/spring-security-2.0.4.xsd"default...
代码星球 代码星球·2021-02-21

spring slf4j log4j maven

参考:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.3.4.RELEASE</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions></dependency><dependency><groupId>or...
代码星球 代码星球·2021-02-21

Spring MVC集成slf4j-logback

转自: SpringMVC集成slf4j-logback  关于slf4jlog4j的相关介绍和用法,网上有很多文章可供参考,但是关于logback的,尤其是spring MVC集成logback的,就相对少一些了,而且其中一些也有着这样那样的问题。进入正题之前先简单介绍下SpringMVC集成slf4j-log4j的过程,如下:1)      在pom.xml文件中添加slf4j-log4j的依赖,完成后的classpath中将新增三个jar包,分别是:slf4j-api.jar、log4j.jar及slf4j-log4j.jar2)      在当前classpath中添加log4j.properties配置文件,按照log4j的参数语法编写该文件3)      以上两步完成后,普通的Java项目就能使用slf4j-log4j进行日志处理了;对于JavaWeb项目...

spring security maven dependency

UnabletolocateSpringNamespaceHandlerforXMLschemanamespace[springsecutitydependency:<!--SpringSecurity--><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-core</artifactId><version>${springsecurity.version}</version></dependency><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>${springsecurity.version}</ver...

spring注解支持

Spring基于注解实现Bean定义支持如下三种注解:Spring自带的@Component注解及扩展@Repository、@Service、@ControllerJSR-2501.1版本中中定义的@ManagedBean注解,是JavaEE6标准规范之一,不包括在JDK中,需要在应用服务器环境使用(如Jboss)JSR-330的@Named注解 对应的Bean注入注解:Spring的@AutowiredJSR-250的@ResourceJSR-330的@Inject  Bean定义扫描:<context:component-scanbase-package=""resource-pattern="**/*.class"name-generator="org.springframework.context.annotation.AnnotationBeanNameGenerator"use-default-filters="true"annotation-config="true"><context:include-filtertype...
代码星球 代码星球·2021-02-21

spring杂记

AOP(Aspect-OrientedProgramming,面向切面编程)是一种编程思想,并不是一种具体的实现,谈到实现一般有Filter和代理模式两种常见的使用方式。Java中常见的AOP技术有两个,分别是Filter和代理模式(也可以称为过滤器和拦截器),Filter是基于回调函数(请看《Java回调机制解析》),代理模式是基于Java反射技术,代理模式又分为静态代理和动态代理,动态代理就是拦截器的简单实现。(过滤器和拦截器的区别可参见《过滤器和拦截器的区别》)他们各自实现的功能不同,原理如出一辙。 SpringAOP’sapproachtoAOPdiffersfromthatofmostotherAOPframeworks.TheaimisnottoprovidethemostcompleteAOPimplementation(althoughSpringAOPisquitecapable);itisrathertoprovideacloseintegrationbetweenAOPimplementationandSpringIoCtohelpsolvecommon...
代码星球 代码星球·2021-02-21

spring 方法注入

转自: Spring方法注入 引用在大部分情况下,容器中的bean都是singleton类型的。如果一个singletonbean要引用另外一个singletonbean,或者一个非singletonbean要引用另外一个非singletonbean时,通常情况下将一个bean定义为另一个bean的property值就可以了。不过对于具有不同生命周期的bean来说这样做就会有问题了,比如在调用一个singleton类型beanA的某个方法时,需要引用另一个非singleton(prototype)类型的beanB,对于beanA来说,容器只会创建一次,这样就没法在需要的时候每次让容器为beanA提供一个新的的beanB实例对于上面的问题Spring提供了三种解决方案: 放弃控制反转。通过实现ApplicationContextAware接口让beanA能够感知bean容器,并且在需要的时候通过使用getBean("B")方式向容器请求一个新的beanB实例。Lookup方法注入。Lookup方法注入利用了容器的覆盖受容器管理的bean方法的能力,从而返回指...
代码星球 代码星球·2021-02-21

spring Stack Overflow

1.ApplicationContext不关闭,资源泄露问题: ...
代码星球 代码星球·2021-02-21

Spring Bean 生命周期

转自:也谈SpringBean的生命周期 开篇先用一张老图描述下Spring中Bean容器的生命周期。  插叙一下,记得某个博文中提到:“Spring的Bean容器只管理非单例Bean的生命周期,单例Bean的生命周期不在管理范围内”,其实我认为这句话恰好说反了。首先明确一点,并非Spring容器中所有的Bean都有生命周期行为,只有接受容器管理生命周期的Bean才具有生命周期行为:而单例(Singleton)Bean接受容器管理,非单例(non-singleton)Bean在实例化后,完全交给了客户端代码管理,容器不再跟踪其生命周期,每次客户请求,容器都会创建一个新的实例,所以Spring容易无法知晓Bean何时销毁。 继续刚才的话题——Bean容器的生命周期。其实上图有个节点没有画出,就是在实例化所有Bean之前会执行BeanFactoryPostProcessors。不过也不care,因为这和Bean的生命周期没有太大关系,所以没有提及也属正常,权且忽略该节点。从图中,我们可以看到实例化Bean的过程中有以下几个节点:1)设置属性值;2)调...
代码星球 代码星球·2021-02-21
首页上一页...7891011...下一页尾页