
经验技巧之Spring
文章平均质量分 68
daryl715
我的世界我的梦
展开
-
几种加载Spring的配置文件的方式
package com.liu.test;public class BeanFile { private String beanFile = "多种方式加载Bean的配置文件"; public void setBeanFile(String beanFile) { this.beanFile = beanFile; } public String getBean原创 2007-02-07 19:45:00 · 3903 阅读 · 0 评论 -
Srping配置文件中Bean id和name属性
可以把name属性看成id的别名,同时可以指定多个name数值 以后getBean()的时候,用id和name都可以获得bean原创 2007-02-09 10:53:00 · 1237 阅读 · 0 评论 -
Spring配置文件关于hibernate的配置
JNDI数据源bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> property name="jndiName"> value>xb2datasourcevalue> property> bean> SessionFactory bean id="sess原创 2007-01-16 12:50:00 · 1467 阅读 · 0 评论 -
Spring的核心机制依赖注入简介(4)
Axe的另一个实现如下://Axe的另一个实现类 SteelAxepublic class SteelAxe implements Axe{ //默认构造器 public SteelAxe() {} //实现Axe接口的chop方法 public String chop() { return "钢斧砍柴真快"; }} 然后,修改原来的Spring配置文件,在其中增加如下一行:<!--转载 2007-01-16 14:14:00 · 1128 阅读 · 0 评论 -
Spring中关于保存数据时重名的处理异常
其中DataIntegrityViolationException可以用来处理保存的category有重复的异常 这个异常是Spring对数据库完整性约束的异常public Category saveCategory(Category category) throws LibraryException ...{ try...{ Category原创 2007-03-08 10:54:00 · 1196 阅读 · 0 评论 -
SSH架构使用myeclipse自动生成的hbm的错误解决
错误:当进行插入操作时有如下异常:javax.servlet.ServletException: Hibernate operation: Could not execute JDBC batch update; bad SQL grammar [insert into studentmanager__people (name, location, id) values (?, ?, ?)原创 2007-01-17 17:32:00 · 1545 阅读 · 0 评论 -
Spring的核心机制依赖注入简介(2)
所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。依赖注入通常有两种: ·设值注入。 ·构造注入。 设值注入 设值注入是指通过setter方法传入被调用者的实例。这种注入方式简单、直观,因而在Spring的依赖注入里大转载 2007-01-16 13:58:00 · 1098 阅读 · 0 评论 -
Spring的核心机制依赖注入简介(3)
Spring会自动接管每个bean定义里的property元素定义。Spring会在执行无参数的构造器后、创建默认的bean实例后,调用对应的setter方法为程序注入属性值。property定义的属性值将不再由该bean来主动创建、管理,而改为被动接收Spring的注入。 每个bean的id属性是该bean的惟一标识,程序通过id属性访问bean,bean与bean的依赖关系也通过id属性原创 2007-01-16 14:02:00 · 940 阅读 · 0 评论 -
Spring对JNDI的支持的配置实例
1. 使用JndiObjectFactoryBean,例如 java:/MySqlDS 2. 使用JndiObjectTargetSource,例如 queue/testQueue 3. 如果不使用JndiTemplate实现InitialContext环境变量的配置,则需要jndi.properties文件(放在classpath中原创 2007-01-17 13:52:00 · 8391 阅读 · 0 评论 -
Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly
错误代码: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove readOnly ma原创 2007-01-17 16:14:00 · 5040 阅读 · 0 评论 -
Spring事务配置上去后出现如下报错:java.lang.ClassCastException: $Proxy1解决
问题描述:查询功能一切正常,但是在增、删、改操作中发现,数据库表中数据没有改变,查看控制台日志也没有任何异常发现,纳闷了好久,仔查检查日志,发现在新增操作中表id有在自增,由此确定是问题出在事务没有提交。将事务配置上去后出现如下报错:java.lang.ClassCastException: $Proxy1,百度上搜到一文,在业务类如果实现了接口,得增加如下代码 true 果然如此,再次原创 2007-01-17 17:20:00 · 2729 阅读 · 0 评论 -
使用Spring的mappingDirectoryLocations来配置Hibernate映射文件
在Spring的applicationContext.xml中配置映射文件的方法: name="mappingResources"> com/almaer/model/Person.hbm.xml com/almaer/model/Car.hbm.xml com/almaer/model/Engine.hbm.xml com/almae原创 2007-01-17 13:57:00 · 1467 阅读 · 0 评论 -
Spring使用Jndi时的一点说明
通过jndi的方式来调用datasource,即使不一定是在j2ee环境中也可以正常使用默认情况下,如果没有指定,"java:comp/env/"将放在后面jndi名称前面 java:comp/env/jdbc/StudentManager false原创 2007-01-17 14:03:00 · 1743 阅读 · 0 评论 -
Spring声明式事务解释
PROPAGATION_REQUIRED 支持当前事务,如果当前没有事务,则建立一个新事务PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行PROPAGATION_MANDATORY 支持当前事务,如果当前没有事务,就抛出异常PROPAGATION_REQUIRED_NEW 新建事务,如果存在当前事务,就把当前事务挂起PROPAGATION_NOT_SUP原创 2007-03-07 15:03:00 · 804 阅读 · 0 评论 -
Spring配置文件加载时出现Bean property 'newscontentDAO' is not writable or has an invalid setter method错误的解决
因为Spring要求注入的成员变量要按照sun的命名规范,所以,注入 变量名必须首字母小写 StationServiceImpl 中要这样定义 stationDAOprivate StationDAOImpl stationDAO; 注意,其中 stationDA原创 2007-01-26 14:42:00 · 8431 阅读 · 2 评论 -
Spring Bean工厂创建Bean实例的方法之使用构造器
首先定义接口文件 package Bean.newBean;public interface Axe ...{ public String chop();}package Bean.newBean;public interface Person ...{ public void useAxe();}定义实现类:package Bean.newBean;publ原创 2007-03-23 16:49:00 · 1626 阅读 · 0 评论 -
Spring Bean工厂创建Bean实例的方法之使用静态工厂类
定义接口: package Bean.staticFactoryBean;public interface Axe ...{ public String chop();}package Bean.staticFactoryBean;public interface Person ...{ public void useAxe();} 实现类: package原创 2007-03-23 17:21:00 · 4639 阅读 · 4 评论 -
Spring Bean工厂创建Bean实例的方法之使用工厂类
定义接口: package Bean.FactoryMethods;public interface Axe ...{ public String chop();}package Bean.FactoryMethods;public interface Person ...{ public void useAxe();} 实现类:package Bean.Fac原创 2007-03-23 17:54:00 · 3986 阅读 · 3 评论 -
Spring的自动装配机制
Spring提供一种自动装配,功能,就是不再使用ref进行手工装配bean,这种方式可以减少配置文件的代码量,但是,在大型项目中,不推荐使用,容易混乱,Spring提供byName,byType,constructor,autpdetect四种自动装备方式:定义接口: package Bean.autowire;public interface Dog ...{ public v原创 2007-03-26 17:04:00 · 1494 阅读 · 0 评论 -
如果监控Spring Bean生命周期
对于singleton bean,Spring容器知道bean何时实例化结束,何时销毁,Spring可以管理实例化结束之后,和销毁之前的行为,管理bean的生命周期行为主要未如下两个时机:Bean全部依赖注入之后Bean即将销毁之前(1)依赖关系注入后的行为实现: 有两种方法:A.编写init方法 B.实现InitializingBean接口 aft原创 2007-03-27 14:25:00 · 1667 阅读 · 0 评论 -
Spring Bean的继承和java类继承的区别
1.Spring中子bean和父bean可以是不同类型,java中子类必定是一个特定的父类2.Spring中继承是实例之间的关系,主要表现在参数的延续,java类中的继承是类之间的关系,主要表现为方法,属性的延续3.Spring子bean不可以作为父bean使用,不具有多态性,java反之原创 2007-03-27 15:08:00 · 3588 阅读 · 1 评论 -
Spring高级注入之Method值注入
有两种用法,一种是直接吧方法的返回值注入到实例的属性,二是用返回值定义成Bean定义实体: package Bean.superIOCmethod;public class Person ...{ private Son son; private String age;public String getAge() ...{ return age;}public voi原创 2007-03-28 10:02:00 · 5852 阅读 · 0 评论 -
List,Set,Map,Properties的Spring注入实例
定义接口: package Bean.collections;public interface Person ...{ public void useAxe();} package Bean.collections; public interface Axe { public String chop(); }定义实现类:package Bean.c原创 2007-03-26 16:27:00 · 2881 阅读 · 0 评论 -
使用Spring方法注入协调不同步的bean
xml version="1.0" encoding="UTF-8"?>DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">beans> bean id="chinese" class="Bean.lookupbean.Chinese">原创 2007-03-27 10:22:00 · 1549 阅读 · 0 评论 -
Spring高级注入之属性值注入
实际应用中,某个实例的属性可能是另一个对象的一个属性,Spring支持将bean实例的属性值直接赋值给一个变量属性值的注入,是通过PropertyPathFactoryBean完成的,PropertyPathFactoryBean用来获取目标bean的属性,获得的值可以注入到其他bean,也可以定义成新的bean实体类:package Bean.superIOCparam;publ原创 2007-03-27 16:31:00 · 8188 阅读 · 0 评论 -
Spring高级注入之Field值注入
filed数值(也就是静态常量) 注入是通过fieldRetrievingFactoryBean完成的,这个类用来获取目标bean的filed数值 package Bean.superIOCfield;public class Field ...{ public static final String TEST_FIELD="welcom";}实体类: pack原创 2007-03-27 16:47:00 · 7739 阅读 · 0 评论 -
对Spring的BeanFactory的学习小节
以下内容是从书中摘录来的,但是我发现即使摘录一遍,对其内容的理解也会更加深入! 一、Spring装配Bean的过程 1. 实例化; 2. 设置属性值; 3. 如果实现了BeanNameAware接口,调用setBeanName设置Bean的ID或者Name; 4. 如果实现BeanFactoryAware接口,原创 2007-03-29 13:09:00 · 1058 阅读 · 0 评论 -
Spring属性占位符PropertyPlaceholderConfigurer的使用
PropertyPlaceholderConfigurer可以将${...}替换为指定的properties文件或system properties中的值这样一来,我们就可以不再配置文件中为bean注入数值,而改用properties文件,可以降低耦合性,以后如果需要修改诸如数值,只修改properties文件就可以了实体类: package Bean.propertyone;原创 2007-03-30 11:22:00 · 1923 阅读 · 0 评论 -
使用FactoryBean接口简化工厂Bean开发
使用FactoryBean接口简化工厂Bean开发,但是,一个工厂只能有一类产品 public class PersonFactory implements FactoryBean...{ Person p = null; //返回产品 public Object getObject() throws Exception .原创 2007-03-30 13:49:00 · 865 阅读 · 0 评论 -
Spring XML配置的十二个最佳实践
Spring是一个强大的Java应用框架,它广泛地应用于Java应用程序中,为Plain Old Java Objects(POJO)提供企业级服务。Spring利用依赖注入机制来简化工作,同时提高可测试性。其配置文件(通常是XML格式)中指定了Spring bean、依赖性以及bean所需的服务。但是,这些XML配置文件既冗长又不实用。对于需要定义大量Spring bean的大型项目来转载 2007-03-29 12:56:00 · 2584 阅读 · 1 评论 -
Spring MVC集成Struts Tiles使用方法
首先,我们定义一个总体的tiles视图 /tiles/mainTemplate.jsp首先使用:打印tiles配置文件中定义的字符串属性title然后是分别加载header,content,footer三个jsp页面,共同组成mainTemplate.jsp...@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefi原创 2007-06-27 12:06:00 · 3190 阅读 · 1 评论 -
使用Spring MVC生成Excel文档
Spring不仅支持jsp,velocity,freemarker,同时可以将数据生成到Excel,PDF等非html文档首先,我们编写控制器,返回逻辑名“ListStudentUseExcel”package Action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServle原创 2007-06-27 15:58:00 · 5499 阅读 · 0 评论 -
Spring MVC可使用的AbstractJpegView
这和AbstractExcelView,AbstractPdfView不同,此类是实现View接口,实现自定义的视图解析 package Action;import java.awt.image.BufferedImage;import java.util.Map;import javax.servlet.ServletOutputStream;import javax.servlet原创 2007-06-27 16:13:00 · 1625 阅读 · 0 评论 -
Spring占位符PropertyOverrideConfigurer的使用
PropertyOverrideConfigurer,类似于PropertyPlaceholderConfigurer,但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。如果起覆盖作用的 Properties文件没有某个bean属性的内容,那么缺省的上下文定义将被使用。注意:bean 工厂的定义并 不会意识到被覆盖,所以仅仅察看XML定义文件并不能立刻明显地知道覆盖配置是否被使用原创 2007-03-30 11:31:00 · 4025 阅读 · 0 评论 -
Spring Applicationcontext的国际化支持
国际化应用程序消息 ApplicationContext方法: String getMessage(String code, Object[] args, String default, Locale loc) 代表一个messageSource Bean。 ApplicationContext搜索messageSource Bean(必须实现MessageSource接口) 例子:在原创 2007-03-30 14:50:00 · 1348 阅读 · 1 评论 -
ApplicationContext事件传播实际应用
事件传播 ApplicationContext基于Observer模式(java.util包中有对应实现),提供了针对Bean的事件传播功能。通过Application. publishEvent方法,我们可以将事件通知系统内所有的ApplicationListener。 事件传播的一个典型应用是,当Bean中的操作发生异常(如数据库连接失败),则通过事件传播机制通知异常原创 2007-03-30 17:55:00 · 1150 阅读 · 0 评论 -
使用OpenSessionInViewFilter解决lazy failed问题时的一个现象
使用web.xml配置filter的方式: hibernateFilter org.springframework.orm.hibernate3.support.OpenSessionInViewFilter hibernateFilter*.do 但是,还是出现一下异常:org.springframework.beans.factory.No原创 2007-04-05 10:50:00 · 2146 阅读 · 0 评论 -
使用Spring访问资源文件
book.xml 放在/WEB-INF/classes下: xml version="1.0" encoding="gb2312"?>计算机书籍> 书> 书名>ajax实战书名> 作者>高翔作者> 书> 书> 书名>ajax基础书名> 作者>小鱼作者> 书>计算机书籍> 测试代码: package resource.Resou原创 2007-04-03 17:52:00 · 1248 阅读 · 0 评论 -
通过JdbcTemplate调用存贮过程例子
public List getTransFeeDate(final String departmentCode, final String subDepartmentCode, final String countDate) ...{ // TODO Auto-generated method stub List list = new ArrayList(); //exec P_TR转载 2007-06-28 23:51:00 · 957 阅读 · 0 评论 -
模板模式在Spring 中的应用
在spring里面我们一般是这样来使用模板模式的:JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);jdbcTemplate.update("UPDATE user SET age = 10 WHERE id = erica");或者:JdbcTemplate jdbcTemplate = new JdbcTempla转载 2007-06-29 00:01:00 · 1102 阅读 · 0 评论