Spring4
文章平均质量分 75
Owen William
这个作者很懒,什么都没留下…
展开
-
Spring之后处理器
Spring的后处理器,除了可以与各种第三方框架良好整合外,其IoC容器也允许开发者进行扩展,这种扩展甚至无须实现BeanFactory或ApplicationContext接口,而是允许通过两个后处理器对IoC容器进行扩展。Spring提供了两种常用的后处理器。1) Bean后处理器:这种后处理器会对容器中的Bean进行后处理,对Bean进行额外加强。2) 容原创 2016-03-06 11:42:57 · 420 阅读 · 0 评论 -
Bean获取Spring容器
在前几篇的博客中,都是程序先创建Spring容器,再调用Spring容器的getBean()方法来获取Spring容器中的Bean。在这种访问模式下,程序中总是持有Spring容器的引用。那么,为了让Bean获取它所在的Spring容器,可以让该Bean实现BeanFactoryAware接口,BeanFactoryAware接口里只有setBeanFactory(BeanFactory bean原创 2016-02-27 19:59:04 · 431 阅读 · 0 评论 -
Spring容器中Bean的作用域
当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以包含了指定的作用域。Spring支持以下5种作用域。1) singleton:单例模式,在整个SpringIoC容器中,singleton作用域的Bean将只生成一个实例。2) prototype:每次通过容器的getBean()方法获取prototype作用的Bean时,都将原创 2016-02-27 20:00:47 · 559 阅读 · 0 评论 -
Spring之自动装配注入
Spring能自动装配Bean与Bean之间的依赖关系,即无须使用ref显示指定依赖Bean,而是由Spring容器检查XML配置文件内容,根据某种规则,为调用者Bean注入被依赖的Bean.当然,当一个Bean既使用自动装配依赖,又使用显示指定依赖时,则显示指定的依赖覆盖自动装配依赖。1. byName规则byName规则是指setter方法的方法名与Bean的id进行匹配,假如Bean原创 2016-02-27 20:02:33 · 450 阅读 · 0 评论 -
Spring之注入集合值
如果需要调用形参类型为集合的setter方法,或调用形参类型为集合的构造器,则可使用集合元素、、和分别来设置类型为List、Set、Map和Properties的集合参数值。下面笔者通过代码来展示给大家看,相信,聪明的你们一看代码就知道注入集合值是怎么回事及怎么用了。1) 定义Chinese.java的类。 public class Chinese implements Pe原创 2016-02-27 20:04:36 · 533 阅读 · 0 评论 -
Spring之容中的工厂Bean
这里说的工厂Bean是Spring的一种特殊Bean,这种工厂Bean必须实现FactoryBean接口。FactoryBean接口是工厂Bean的标准接口,把工厂Bean(实现FactoryBean接口的Bean)部署在容器中之后,如果程序通过getBean()方法来获取它时,容器返回的不是FactoryBean实现类的实例,而是返回FactoryBean的产品(即该工厂Bean的getObje原创 2016-02-28 23:33:26 · 669 阅读 · 0 评论 -
Spring之获得Bean本身的id
在某些极端情况下,业务要求程序员在开发Bean类时能预先知道该Bean的配置id,此时可借助Spring提供的BeanNameAware接口,通过该接口即可提交预知Bean的配置id.BeanNameAware接口提供了一个方法:setBeanName(Sring name),该方法的name参数就是Bean的id,实现该方法的Bean类就可通过该方法来获得部署该Bean的id了。下面定义一个原创 2016-02-28 23:36:41 · 2814 阅读 · 0 评论 -
Spring之不同步的Bean
singleton作用域的Bean只有一次初始化的机会,它的依赖关系也只有在初始化阶段被设置,当singleton作用域的Bean依赖prototype作用域的Bean时,Spring容器会在初始化singleton作用域的Bean之前,先创建被依赖的prototype Bean,然后才初始化singleton Bean,并将prototype Bean注入singleton Bean,这会导致以原创 2016-02-28 23:42:26 · 739 阅读 · 0 评论 -
使用XML Schema的简化配置方式
1.使用P:命名空间p:命名空间甚至不需要特定的Schema定义,它直接存在于Spring内核中。与前面采用元素定义Bean的属性不同是,当导入p:命名空间之后,就可以直接在元素中使用属性来驱动执行setter方法。下面是一个持久化的类public class Chinese implements Person{ private Axe axe; private int age;原创 2016-02-29 23:11:47 · 989 阅读 · 0 评论 -
创建Bean的方式
Spring主要支持如下的三种方式来创建Bean。1) 调用构造器创建Bean.2) 调用静态工厂方法创建Bean3) 调用实例工厂方法创建Bean1.使用构造器创建Bean实例如果采用构造注入,则要求配置文件为元素添加子元素,每个子元素配置一个构造器参数。Spring容器将使用带对应参数的构造器来创建Bean实例,Spring调用构造原创 2016-02-28 23:28:12 · 487 阅读 · 0 评论 -
容器中Bean的生命周期
对于prototype作用域的Bean,Spring容器仅仅负责创建,当客户创建了Bean实例之后,Bean实例完全交给客户端代码管理,容器不再跟踪其生命周期。对于singleton作用域的Bean,Spring容器知道Bean何时实例化结束、何时销毁,Spring可以管理实例化结束之后和销毁之前的行为。管理Bean的生命周期行为主要有如下两个时机。1) 注入依赖关系之后2)原创 2016-02-28 23:38:21 · 492 阅读 · 0 评论 -
Spring之ApplicationContext
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicatonContext是BeanFactory的子接口。在项目中,如果其它的要求,一般是使用ApplicationContext。不过,在系统创建前期ApplicationContext有较大的系统开销,但一旦ApplicationContext初始化完成,程序后面获取singleton Be原创 2016-02-27 19:54:43 · 597 阅读 · 0 评论 -
Spring之依赖注入
在所有的Java应用中,普遍存在A对象需要调用B对象方法的情形,这种情形被称为依赖,即A对象依赖B对象。对于Java应用而言,它们总是由一些互相调用的对象构成的,Spring把这种互相调用的关系称为依赖关系。假如A组件调用了B组件,即可称A组件依赖B组件。Spring框架的核心功能有两个:1) Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称原创 2016-02-24 23:14:41 · 565 阅读 · 0 评论 -
Spring之占位符配置器
1. 属性占位符配置器Spring提供了PropertyPlaceholderConfigurer后处理器,可以将Spring配置文件中部分数据放在属性文件中设置,这种配置方式当然有其优势:可以将部分相似的配置(比如数据库的URL、用户名和密码)放在特定文件中,如果只需要修改这部分配置,则无须修改Spring配置文件,修改属性文件即可。下面的配置文件配置了PropertyPlacehold原创 2016-03-06 11:49:37 · 757 阅读 · 0 评论 -
Spring AOP(一)之Before增强处理
在一个切面类里使用@Before来修饰一个方法,该方法将作为Before增强处理。使用@Before修饰时,通常需要指定一个value属性值,该属性指定一个切点表达式(既可以是一个已有的切入点,也可以直接定义切入点表达式),用于指定该增强处理将被织入哪些切入点。下面定义的java类里使用@Before定义了一个Before增强处理。// 定义一个切面@Aspectpublic clas原创 2016-03-06 11:52:53 · 10653 阅读 · 0 评论 -
Spring AOP(二)之AfterReturning增强处理
类似于使用@Before注解可以修饰Before增强处理,使用@AfterReturning可修饰AfterReturning增强处理,AfterReturning增强处理将在目标方法正常完成后被织入。使用@AfterReturning注解可指定如下两个常用属性。1) pointcut/value:这两个属性的作用是一样的,它们都属于指定切入点对应的切入表达式。一样既可以是已原创 2016-03-06 12:23:55 · 86376 阅读 · 13 评论 -
Spring AOP(三)之AfterThrowing增强处理
使用@AfterThrowing注解可以修饰AfterThrowing增强处理,AfterThrowing增强处理主要用于处理程序中未处理的异常。使用@AfterThrowing注解时可指定如下的常用属性:1) pointcut/value:这两个属性的作用是一样的,它们都用于指定该切入点对应的切入表达式。一样既可是一个已有的切入点,也可以直接定义切入点表达式。当指定了point原创 2016-03-06 12:25:24 · 68105 阅读 · 10 评论 -
Spring AOP(四)之After增强处理
Spring还提供了一个After增强处理,它与AfterReturning增强处理有点相似,但也有区别:1) AfterReturing增强处理只有在目标方法成功完成后才会被织入。2) After增强处理不管目标方法如何结束(包括成功完成和遇到异常中止两种情况),它都会被织入。下面的程序,我们定义一个After增强处理。// 定义一个切面@Aspec原创 2016-03-06 12:27:27 · 5045 阅读 · 0 评论 -
Spring AOP(五)之Around增强处理
@Around注解用于修饰Around增强处理,Around增强处理是功能比较强大的增强处理,它近似于Before增强处理和AfterReturing增强处理的总结,Around增强处理既可在执行目标方法之前增强动作,也可在执行目标方法之后织入增强的执行。与Before增强处理、AfterReturning增强处理不同的是,Around增强处理可以决定目标方法在什么时候执行,如何执行,甚至可以完全原创 2016-03-06 12:28:41 · 38341 阅读 · 3 评论 -
Spring AOP(六)之访问目标方法的参数
访问目标方法最简单的做法是定义增强处理方法时将第一个参数定义为JoinPoint类型,当该增强处理方法被调用时,该JoinPoint参数就代表了织入增强的连接点。JoinPOINT里包含了如下几个常用的方法:1) Object[] getArgs():返回执行目标方法时的参数2) Sifnature getSignature():返回被增强的方法的相关信息3原创 2016-03-06 12:30:14 · 2468 阅读 · 3 评论 -
Spring AOP(七)之定义切入点
所谓定义切点,其实质就是为一个切入点表达式起一个名称,从而允许在多个增强处理中重用该名称。下面定义一个切入点。@Aspectpublic class SystemArchitecture{ @Pointcut("execution(* com.owenapp.service.impl.*.*(..))") public void myPointcut(){}}下面的切面类中将直原创 2016-03-06 12:31:40 · 1910 阅读 · 0 评论 -
Spring AOP之XML配置
1. 配置切面因为切面Bean可以当成一个普通的SpringBean来配置,所以完全可以为该切面Bean配置依赖注入。当切面Bean定义完成后,通过元素中使用ref属性来引用该Bean,就可以将该Bean转换成一个切面Bean了。配置元素时可以指定如下三个属性。1) id:定义该切面的标识名2) ref:用于将ref属性所引用的普通Bean转换为切面Bean原创 2016-03-06 12:33:13 · 918 阅读 · 0 评论 -
Spring之事务
Spring提供了如下两种事务管理方式。1) 编程式事务管理:即使用Spring的编程式事务,程序也可直接获取容器中的transactionManagerBean,该Bean总是PlatformTransactionManager的实例,所以可以通过该接口提供的三个方法来开始事务、提交事务和回滚事务。2) 声明式事务管理:无须在Java程序中书写任何事务操作代码原创 2016-03-06 12:37:04 · 871 阅读 · 0 评论 -
Spring身份验证+CXF拦截器+RESTful
1.说明 在项目开发过程中,可能读者会有这样的需求,那就是你需要提供接口供第三方系统来获取你们系统某个业务的信息。这样的需求其实是在支付系统会更为常见。笔者曾经做过某大型公司的支付系统的接口。我们需求提供大量的接口来供第三方系统来调用。这些接口的返回信息可以是json的格式,亦可是xml的。可能说了这么多,无非就是java中的一门技术,叫RESTful。笔者在博客已经写过SpringM原创 2017-04-24 21:08:21 · 1583 阅读 · 1 评论