- 浏览: 256573 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
a542550187:
很受用,最近正好学习软件工程方面的知识
如何建立领域模型(转) -
liiyee:
谢谢!中文版有些地方的翻译实在是挺对付的。
hibernate in action 2 英文版 -
HFLdragon:
下来学习一下
ajax upload file -
wendellup_account1:
thanks....
Spring 3 mvc Validation的错误 -
zhangjq5:
中文名乱码……
ajax upload file
Spring2.5的新特性:
http://www.infoq.com/cn/articles/spring-2.5-part-1
http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/
1.1: 实现零配置的适用场合
IOC Annotations 可以实现零配置,但也因为不用在applicationContext.xml中定义了,也就缺乏了灵活的,不修改代码的IOC手段,也无法做一些属性值的配置。所以,IOC annotation 常用于Service,Dao,Controller 这些依赖关系比较固定,约定俗成大于配置的地方。 而XML 配置文件则用于如Database/SessionFactory,Spring Security这些需要配置的地方。
1.2:applicationContext.xml的定义
定义自动扫描Classpath路径,扫描带有@Component/@Service/@Repository的pojo加入applicationContext,
并根据@Autoired/@Qualifier 与 @Resource进行IOC配置,并对@PostConstruct 和 @PreDestroy和@Requried进行处理
<context:component-scan base-package="org.springside.examples.miniweb" />
以下配置除不会扫描@Component/@Service/@Repository外,其他作用同上
<context:annotation-config />
@Component/@Service 和 @Repository
Spring扫描指定的classpath时,会含以上Annotation的类将加其加入ApplicaitonContext中。
一般@Repository用于DAO层, 而@Service层用于Service层,@Component用于其他,三者在Spring当前版本并没有本质区别,建议只使用@Component。
Spring扫描指定的classpath时,会含以上Annotation的类将加其加入ApplicaitonContext中。
一般@Repository用于DAO层, 而@Service层用于Service层,@Component用于其他,三者在Spring当前版本并没有本质区别,建议只使用@Component。
1.3: @Autoired/@Qualifier 与 @Resource
@Autoried 与 @Resource都比较灵活,不只能声明于setter函数,还能声明于不按setter规则命名的函数上,以及 私有属性上(不建议使用,因为在单元测试时需要以反射注入)
@Autoried 默认byType,如果需要byName,在变量上增加@Qualifier,另外@Autoried默认隐含了@Required,保证变量一定被注入,如果不需要,用@Autowired(required=false)取消。
@Resource 默认byName,如果name找不到就会byType, 另可以用name与type属性设定。
1.4: @Required
对于非@autowired标注的属性,声明@Required表明明属性必须被注入。
1.5: 生命周期Annotation
JSR250的@PostConstruct 和 @PreDestroy,比以往的实现接口或者在applicationContext.xml中配置init-method的方式更为方便和标准。 {{@PostContruct在所有注入函数执行完毕后执行,而@PreDestroy则在JVM退出的ShutdonwHook中拦截,注意,ShutdownHook对kill -9这种暴烈的关闭无效。
}}
2.属性文件
在配置文件中,很有一些属性会在团队的开发环境,个人的开发环境,集成测试环境,生产环境,甚至生产环境集群的每台服务器中都有所不同的。为了将这些易变的属性抽从applicationContext取出来,Spring 做了一些特殊的支持,
在SpringSide里配置如下:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> <property name="ignoreResourceNotFound" value="true" /> <property name="locations"> <list> <value>classpath:application.properties</value> <value>classpath:application.local.properties</value> <value>file:/var/myapp/application.server.properties</value> </list> </property> </bean>
团队公用的开发环境配置在application.properties中,放入版本控制系统管理中。
个人的开发环境,集成测试环境中与公共环境不相同的部分,放入application.local.properties中,会覆盖application.properties中的设置,由个人管理,不放入版本管理系统。
在打包部署到生产环境时,可将生产环境每台服务器的特殊属性可放在服务器的某个固定目录,如/var/myapplicaiton/application.server.properties中(而不放在项目jar内), 每台服务器的配置文件分开不同服务器目录放在版本管理系统中。也可以在启动命令中加入参数来覆盖,如-Djdbc.username=aaa。
3: 事务
因为不喜欢在配置文件里用AspectJ定义事务,宁愿使用Spring的@Transactional annotation在service层上进行标注。
对于只读的方法,可以加入@Transactional (readOnly=true) 标注以提高性能。
因为Spring默认只对RuntimeException进行rollback,所以:
1.所有在service层方法中用throws定义的checkedException,都必须在@Transactional中定义rollbackclass。
2.所有在service层方法中catch处理了的Exception,又希望Spring辅助rollback的话,必须重抛一个RunTimeException,SpringSide里预定义了一个统一的ServiceException。
可特别配置事务类型,见
JavaEE事务资料 六种事务模型与四种事务隔离级别介绍。
转自: http://wiki.springside.org.cn/display/calvin/Spring+Notes
发表评论
-
IDEA EvalRest
2022-03-10 17:19 0Download and install plugi ... -
使用maven-jar-plugin将部分源代码打成Jar,并引入到项目使用。
2020-05-08 16:40 708需求:因为项目(单体系统)里尽可能保证项目里一部分源码,所以 ... -
CAS与spring3集成
2013-04-12 09:47 1125CAS 下载地址 https://wiki.jasig.o ... -
如何在Spring 3 MVC整合Apache CXF开发Webservice服务
2012-09-11 16:06 3558如何在Spring 3 MVC框架下结合CXF开发Webser ... -
如何在Spring 3 下结合结束大CXF开发WebService接口
2012-09-10 21:15 0如何从Spring 3 MVC架构下与Apache CXF开发 ... -
Java文件简单读写(转)
2011-10-22 15:45 879最近用Java处理文件的时候,同样遇到了中文问题,觉得还是 ... -
Java基本类型与包装类判断
2011-10-22 13:42 14496public class Test{ public sta ... -
Java深度历险合集
2011-08-26 16:43 857Java深度历险.pdf -
Apache Click 一个Java企业版的Web应用程序框架
2011-08-24 13:52 876Apache Click 是一个先进的Java企业版的Web应 ... -
Java的异常处理总结
2011-08-10 22:42 1307一、 异常的概念和Java异常体系结构 异常是程 ... -
Java反射与动态代理
2011-07-01 16:24 0在介绍Java注解的时候,多次提到了Java的反射 ... -
Red5+OpenOffice+OpenMeetings架设视频会议网络(转)
2011-05-25 14:17 1753因工作需要,这两天弄 ... -
DOM4J学习笔记(转)
2011-02-16 15:47 592Loading XML Data 以下代码从File中或 ... -
Hibernate级联删除的问题
2011-01-25 14:50 1023在one-to-many 关联时,one方一般都需要有控制级联 ... -
fmt:formatDate 的输出格式
2011-01-22 23:28 954fmt:formatDate 的输出格式 <fmt ... -
Tomcate启动内存设置
2010-10-19 16:41 738其初始空间(即-Xms)是物理内存的1/64,最大空 ... -
基于json-lib.jar包Json实例程序(转)
2010-10-18 20:22 3470基于json-lib.jar包Json实例程序 ... -
Aache下的AB性能测试工具(转)
2010-10-18 16:57 896以前安装好APACHE总是 ... -
四步将Myeclipse的web project部署到eclipse中的tomcat
2010-10-15 16:29 2102现在很多Web的项目都是在MyEclipse中开发测试完成的 ... -
实现集合中对象的排序功能
2010-09-29 18:10 716利用Set可以去掉重复的对象,利用list可以对象自然排序,如 ...
相关推荐
android 开发框架;替换xUtils ViewUtils模块为 androidannotations;更为强大的ioc annotations写法;集成了其他3大模块并进行部分优化 Db模块 Http模块 Bitmap模块;基于abase 的个人定制
2. 注解(Annotations):例如`@Autowired`或自定义注解,用于标记需要容器自动管理的依赖。 3. 测试文件(.test):用于验证IOC容器是否正确地管理和注入了依赖。 4. 配置文件(可能为.xml或.java配置):如果使用...
我们将主要关注两个关键概念:依赖注入(Dependency Injection)和注解(Annotations)。 依赖注入是IOC的核心,它允许我们在运行时动态地将依赖关系传递给对象,而不是由对象自行创建或查找。在Android应用中,这...
Spring框架是Java开发中广泛应用的一个轻量级框架,它的核心特性之一就是依赖注入(Dependency Injection,简称DI),而实现DI的一种重要方式就是通过注解(Annotations)。本文将深入探讨Spring如何利用注解来实现...
4. **Spring Framework**: Spring是一个全面的Java企业级应用开发框架,它支持IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)。Spring还提供了大量的模块,如数据访问、...
在Java开发领域,Spring框架是应用最广泛的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器。为了提升应用性能和减少数据库负载,Spring提供了多种缓存支持,其中包括集成第三方缓存库如...
Spring框架是一个轻量级的控制反转(IoC)和面向切面编程(AOP)容器,它提供了模块化结构,易于扩展和维护。Spring2.5.5版本加强了对注解的支持,简化了Bean配置,同时提供了事务管理、数据访问、MVC框架等功能。 ...
1. **注解(Annotations)**:通过注解,可以在类或方法级别声明依赖。例如,`@Inject`注解用于标记需要被注入的字段或构造函数。 2. **组件扫描(Component Scanning)**:框架会自动扫描指定包及其子包下的类,...
装配Bean则是指在IoC容器中配置和实例化Bean的过程,Bean是IoC容器管理的对象,它们可以是简单的Java对象,也可以是复杂的服务组件。 在Java EE环境中,Bean装配通常通过XML配置文件、注解或者编程方式来完成。而在...
8. **Tapestry5-annotations**: 提供了基于Java注解的编程模型,使得开发者可以通过在类和方法上添加注解,轻松地配置和声明Tapestry的特性。 9. **Tapestry-test**: 为Tapestry应用提供了通用的测试支持,包括模拟...
如果涉及JSR-250注解,还需要common-annotations.jar。 总的来说,Spring框架通过提供强大的IoC和AOP机制,降低了组件间的耦合,提高了代码的灵活性和可测试性。它的广泛应用证明了其在简化企业级开发中的重要作用...
- **Spring的IOC容器**:Spring的IoC容器是负责管理和控制对象生命周期的核心组件。它通过解析配置文件(通常是XML文件或注解)来创建和管理对象及其依赖关系。 - **使用注解支持依赖注入**:Spring支持多种注解来...
它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置。 commons-logging-1.2.jar jackson-annotations-2.6.6.jar jackson-core-2.6.6.jar jackson-databind-2.6.6.jar jakarta-taglibs-standard-...
SSH CHM是一个包含多个经典Java Web开发...通过深入阅读这些文档,开发者可以系统地学习到Spring的IoC和AOP、Hibernate的ORM和查询机制,以及Struts(WebWork)的MVC模式,从而提升在企业级应用开发中的技能和效率。
Hibernate的jar包包括`hibernate3.jar`,`hibernate-annotations.jar`,`hibernate-commons-annotations.jar`等,这些库提供了实体管理、会话管理、查询语言等功能。 在SSH1框架整合过程中,还需要注意数据源的配置...
3. **JSR-250注解**:Commons-annotations.jar 六、Spring的使用流程 1. 添加依赖库并创建配置文件。 2. 定义业务类。 3. 在配置文件中声明bean,使用`<bean>`标签,设置id和name属性。 4. 创建Spring容器...
通过使用Maven的WAR插件和特定的库,如wicket-stuff-annotations,Spring框架作为控制反转(IoC)容器,以及wicket-spring-annotations,可以在不增加额外源代码、HTML标记和配置的情况下实现这一目标。 首先,文章...
import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SetupRender; import org.apache.tapestry5.corelib....
例如,如果使用AOP,还需包含aspectjweaver.jar和aspectjrt.jar,而使用JSR-250注解则需要common-annotations.jar。 Spring的配置文件通常命名为`applicationContext.xml`,可以有多个,它们定义了对象的创建方式、...