用了OpenSessionInViewFilter之后,程序开发确实少了很多问题。一个直接的优点就是,不用再去关心lazy-loading的问题,因为在一个Request的处理周期内,Session都是Open的。 但是,"Great Charge means great responsibility",更大的方便也就意味着更大的责任。此Filter运用时也要非常小心。 从OpenSessionInViewFilter的文档中,我们可以看到下面一段话: 引用WARNING: Applying this filter to existing logic can cause i ...
在 spring 中, 事务管理一般是通过声明一个 txProxyTemplate, 然后业务 bean 中 parent = "txProxyTemplate", 这样做未免显得有些繁琐, 并且如果业务 bean 还需要其他拦截器, 配置也不太方便, 下面贴出我的配置, 用 DefaultAdvisorAutoProxyCreator 实现自动代理 <beans> <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) --> <bean id= ...
2008-02-25

详解spring2.0的scope

关键字: spring, scope
如何使用spring的作用域: <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/> 这里的scope就是用来配置spring bean的作用域,它标识bean的作用域。在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称prototype), Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean。因此,默认情况下Spring2.0现在有五种类型的Bea ...
要完成属性文件的加密工作,首先,必须获取一个密钥文件,然后才能对明文的属性文件进行加密。如果需要调整属性文件的信息,你必须执行相反的过程,即用密钥对加密后的属性文件进行解密,调整属性信息后,再将其加密。 DESEncryptUtil 工具类可以完成以上所提及的三个工作:  生成一个密钥文件 java com.baobaotao.DESEncryptUtil key D:\key.dat 第一个参数为key,表示创建密钥文件,第二个参数为生成密钥文件的保存地址。  用密钥文件对属性文件进行加密 java com.baobaotao.DESEncryptUtil encrypt d ...
编写支持加密属性文件的实现类 通过以上分析,我们设计一个支持加密属性文件的增强型PropertyPlaceholderConfigurer,其代码如所示: 代码清单 2 import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.security.Key; import java.util.Properties; import org.springframework.beans.factory.config.PropertyP ...
前言 在Spring的开发中,我们在很多情况下会使用占位符引用属性文件的属性值来简化我们的系统及使我们的系统具有更高的灵活性和通用性。这种配置方式有两个明显的好处: - 减少维护的工作量:资源的配置信息可以多应用共享,在多个应用使用同一资源的情况下,如果资源的地址、用户名等配置信息发生了更改,你只要调整属性文件就可以了; - 使部署更简单:Spring配置文件主要描述应用程序中的Bean,这些配置信息在开发完成后,应该就固定下来了,在部署应用时,需要根据部署环境调整是就是数据源,邮件服务器的配置信息,将它们的配置信息独立到属性文件中,应用部署人员只需要调整资源属性文件即可,根本不需要关 ...
2008-02-17

Spring 中与 Aware相关的接口

关键字: spring
Spring中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,实作这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实作BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实作ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实例等等。 Bean取得BeanFactory、Applicat ...
2008-01-23

用 Spring 发送邮件的注意事项

关键字: spring, mail
使用Spring 的封装的MailSender,确实省事多了! 但在使用中,还是得注意些问题 1.增加验证,否则会报:553 authentication is required 的错误信息 Properties prop = new Properties(); prop.setProperty("mail.smtp.auth", "true"); JavaMailSenderImpl.setJavaMailProperties(prop); 注意:此处 prop.setProperty("mail.smtp.auth", "true"); 中 true 必须用双引号引用起 ...
2008-01-18

利用Spring简单使用quartz实现定时作业

关键字: spring, quartz
定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。 而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。 <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref be ...
2008-01-18

利用Spring按调度计划调用方法

关键字: spring, quartz
为了调度报表邮件,你不得不编写EmailReportJob Bean(或者在使用定时器任务的情况下,是EmailReportTask Bean)。但这个Bean只是简单地调用了一次CourseService的sendCourseEnrollmentReport()方法。以这一点而论,EmailReportTask和EmailReportJob看上去都有些空洞。如果你不用写这个额外的类就能指定调用sendCourseEnrollmentReport()方法,是不是很棒? 好消息!你能够不用编写一个单独的TimerTask或QuartzJobBean类就可以调度单次方法调用。要达到这一目的,Sp ...
2008-01-18

在Spring中使用Quartz调度器

关键字: java, spring
Quartz调度器为调度工作提供了更丰富的支持。和Java定时器一样,可以使用Quartz来每隔多少毫秒执行一个工作。但Quartz比Java Timer更先进之处在于它允许你调度一个工作在某个特定的时间或日期执行。 关于Quartz的更多信息,可以访问Quartz位于http://www.opensymphony.com/quartz的主页。 让我们从定义发送报表邮件的工作开始使用Quartz: 创建一个工作 定义Quartz工作的第一步是创建一个类来定义工作。要做到这一点,你需要从Spring的QuartzJobBean中派生子类,如以下程序所示: 程序:定义一个Quartz工作 ...
2008-01-18

在Spring中使用 Java Timer 调度任务

关键字: java, spring
从Java 1.3开始,Java SDK就通过java.util.Timer类提供了基本的调度功能。这个类允许你调度一个任务(通过java.util.TimerTask子类定义)按任意周期运行。 创建一个定时器任务 使用Java Timer来调度发送注册报表邮件的第一步是从java.util.TimerTask中派生出邮件任务,如以下程序所示。  程序:一个用于发送注册报表邮件的定时器任务 public class EmailReportTask extends TimerTask { public EmailReportTask() {} public void ...
2008-01-16

Send mail with spring mail support and velocity

关键字: spring, mail, velocity
One of the requirements on my current project is to send Job Applicants an e-mail when they apply for a position. Since we're using Spring, I figured I'd try out its JavaMail and Velocity support to send this e-mail. Below is a short tutorial for setting up Spring's JavaMail support on a PositionMan ...
在 Spring 中, MultipartResolver 主要用来处理文件上传,它支持 Commons FileUpload (http://jakarta.apache.org/commons/fileupload) 和 COS FileUpload (http://www.servlets.com/cos)。 缺省,Spring是没有multipart处理,因为一些开发者想要自己处理它们。如果你想使用Spring的multipart,需要在web应用的上下文中添加multipart解析器。这样,每个请求就会被检查是否包含multipart。然而,如果请求中包含multipart,你的上下 ...
2008-01-16

spring mvc的异常处理

关键字: spring
在 Spring 中,框架自动集成了异常处理,其主要核心是由 exceptionResolver Bean 来处理的,在框架启动时,会检测这个 Bean ,如果不存在则不会处理系统中的异常,如果有,则会按照相关上配置来处理自动异常。 如有如下配置: <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> ...
2008-01-11

Spring2.0 声明式事务配置

关键字: spring
<!-- 声明一个事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 声明一个要进行事务处理的Bean --> <bean id=&quo ...
ispring
搜索本博客
最近加入圈子
存档
最新评论