文章列表
 
您正在查看 "Spring" 分类下的文章

2009年05月15日 星期五 18:46

Spring与Struts集成,一种比较容易想到的方式,就是将项目中的所有业务对象纳入Spring的IOC容器,让Spring来进行管理,然而,如果使用这种方式,那么势必需要在Struts的Action中获取到所需要的业务对象的实例,可以通过Spring的BeanFactory来得到对应的实例。

上面的做法,已经将Spring的指定类(像BeanFactory)用在了Struts的Action中,也就是说,Struts的Action对Srping产生了依赖(代码产生了依赖)。试想,如果此时将Spring的支持完全去掉,Struts便完全瘫痪,不能在项目中继续使用了。

为了避免这种依赖,考

 
2008年04月30日 星期三 20:17

Hibernate 3.2支持JPA注解,Spring集成JPA是可选的。

下面是Spring集成JPA的一个例子。

实体类MyUser,使用JPA注解实现到数据库表myUser的映射,如下所示:

package org.shirdrn.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

@Entity

 
2008年04月27日 星期日 22:18

Spring集成Hibernate,使得SessionFactory的管理更加方便,可以方便地获取到一个HibernateTempalte的模板实例,对数据库的操作非常方便。

Spring集成Struts,先把Struts的Action用Spring的ActionSupport抽象出来,比如定义一个名称为SpringAction的的ActionSupport的子类,其中SpringAction中启动IoC容器,通过ApplicationContext获取业务bean。这需要使用一个Struts插件来初始化IoC容器,从而获取到一个ApplicationContext。可以通过让每个具体的Action(每个具体的Action意思是实现Struts的Action的子类)都继承

 
2008年04月27日 星期日 21:07

1、Unsatisfied dependency expressed through constructor argument with index

异常信息:

log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'myUserPage' defined in class path resource [shirdrn-servlet.xml]: Unsati

 
2008年04月27日 星期日 15:41

SimpleFormController能够处理表单类,在Spring中SimpleFormController类的继承关系如图所示:

在SimpleFormController类中,有几个属性特别基础、重要,特别常用:

commandClass属性

是一个表单类,该属性对应着一个表单对象,Spring能够根据注入的该属性值来实例化一个表单对象。该属性是在AbstractController抽象类

 
2008年04月24日 星期四 15:47

参考:Sping 2.0.8\docs\MVC-step-by-step

实现目标

编写一个ShirdrnController,实现了org.springframework.web.servlet.mvc.Controller接口;

使用JSP文件作为视图,将控制器返回的Model渲染出来,JSP文件中使用了JSTL;

使用InternalResourceViewResolver实现视图的解析。

准备工作

工程结构如下所示:

SpringMVCViewResolver
│ .classpath
│ .mymetadata
│ .project
│ .springBeans

├─.myec

 
2008年04月17日 星期四 22:34

实现一个控制器ShirdrnController,如下所示:

package org.shirdrn.spring.mvc;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class ShirdrnController implements Controller {

 
2008年04月17日 星期四 21:46

在文章 Spring AOP:使用NameMatchMethodPointcutAdvisor实现切面编程 的基础上,实现使用BeanNameAutoProxyCreator实现为每个业务bean执行相应方法的时候,进行拦截。

如果像这样:

<bean id="personService"
   class="org.springframework.aop.framework.ProxyFactoryBean"
   abstract="false" singleton="true" lazy-init=

 
2008年04月16日 星期三 21:43

在使用MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice的基础上(可以参考文章 在Spring的IOC容器中装配AOP代理 ),Spring定义了Advisor,其中PiointcutAdvisor比较重要,它由两部分构成:一个Advice + 一个Pointcut。

PiointcutAdvisor可以指定切面所作用的方法。

PiointcutAdvisor具有两个属性:String mappdeName和String[] mappedNames。下面主要从这两个属性入手,学习使用。

 
2008年04月15日 星期二 22:17

Spring的编程式事务处理,需要使用Hibernate事务回调接口,事务回调接口可以管理Hibernate的事务:

TransactionCallbackWithoutResult —— 执行事务没有返回值,例如save、update、delete等等;

TransactionCallback —— 执行事务处理后有返回值,如find要返回结果集(List);

使用Spring的IoC容器来管理bean,具体注入的过程为:

装配DataSource —— 将DataSource注入到SessionFactory Bean中 —— 将SessionFactory Bean注入到HibernateTransactionMan

 
2008年04月15日 星期二 18:22

对某个实体的操作都封装在DAO中,一般来说是增删改查四项操作。如果让Hibernate自己来管理,则需要为每个方法都进行重复的事务处理,使得DAO中方法的实现产生了大量冗余代码。

使用Spring集成Hibernate,将事务交给Spring的IOC容器去管理,只需要注入一个SessionFactory,让具体的DAO继承HibernateDaoSupport类,从而可以方便地使用getHibernateTemplate()方法,在这个具体的DAO中获取一个HibernateTemplate,而HibernateTemplate封装了Hibernate的所有操作。

Spring的applicationContext.xml配置文件配置如下:

 
2008年04月15日 星期二 16:57

Spring版本为1.x,Hibernate版本为3.0。

通过单独配置Hibernate之后,将Hibernate的SessionFactory注入到Dao中。这里,仍然使用Hibernate的Transaction,所以避免不了要写很多的try…catch…finally。

首先,对Hibernate的进行配置,与单独使用Hibernate时候的情况是一样的。hibernate.cfg.xml的配置如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate

 
2008年04月13日 星期日 22:16

JdbcTemplate模板可以简化JDBC操作,但是创建一个JdbcTemplate需要一个DataSource接口,在Spring中,当然就是向JdbcTemplate中注入一个DataSource,然后通过JdbcTemplate来获取一个连接(Connection)。

假设SQL Server 2000数据库(新建的数据库名称为hibernate)中有一张person表,简单地记录了人员的详细信息。

使用Spring的IOC机制实现注入,配置XML代码如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="

 
2008年03月23日 星期日 18:06

实现MethodInterceptor接口,在调用目标对象的方法时,就可以实现在调用方法之前、调用方法过程中、调用方法之后对其进行控制。

MethodInterceptor接口可以实现MethodBeforeAdvice接口、AfterReturningAdvice接口、ThrowsAdvice接口这三个接口能够所能够实现的功能,但是应该谨慎使用MethodInterceptor接口,很可能因为一时的疏忽忘记最重要的MethodInvocation而造成对目标对象方法调用失效,或者不能达到预期的设想。

关于含有Advice的三种对目标对象的方法的增强,可以参考文章

 
2008年03月21日 星期五 18:35

Spring AOP的特色在于,使用依赖注入的方式来装配AOP代理。通过使用XML配置AOP代理,使得代码简洁清晰。

关于AOP(Aspect Oriented Programming)的一些知识,可以查阅相关文档。

使用AOP,可以对方法实现增强(Advice)。方法的调用之前之后,以及运行时都可以使用AOP织入(Weaving)增强。

每个切面(Aspect)都是横跨多个核心逻辑的,为这些核心逻辑提供相应的服务。把这些切面从系统中分析出来,作为一个独立的关注点。

运行环境

开发IDE      

 
   
 
 
文章存档
 
     
 
最新文章评论
  

这个不错,很详细,对于我们初学spring框架的人不错的帮助,感谢楼主分享
 

最近用,学习了~
 

[表情]
 

[表情]
 

对于Ubuntu用户,有一个简单的办法: 将该用户添加到admin用户组,即 usermod -G adm
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu