1. IOC Annotations
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,并根据@Autowired/@Qualifier 与 @Resource进行IOC配置,并对@PostConstruct 和 @PreDestroy和@Requried进行处理
<context:component-scan base-package="org.springside.examples.miniweb" />
以下配置除不会扫描@Component/@Service/@Repository外,其他作用同上
<context:annotation-config />
1.2 @Component/@Service 和 @Repository
Spring扫描指定的classpath时,会含以上Annotation的类将加其加入ApplicaitonContext中。
一般@Repository用于DAO层, 而@Service层用于Service层,@Component用于其他,三者在Spring当前版本并没有本质区别,建议只使用@Component。
1.3 @Autowired/@Qualifier 与 @Resource
@Autowried 与 @Resource都比较灵活,不只能声明于setter函数,还能声明于不按setter规则命名的函数上,以及私有属性上(不建议使用,因为在单元测试时需要以反射注入)
@Autowried 默认byType,如果需要byName,在变量上增加@Qualifier,另外@Autoried默认隐含了@Required,保证变量一定被注入,如果不需要,用@Autowired(required=false)取消。
@Resource 默认byName,如果name找不到就会byType, 另可以用name与type属性设定。
1.4 @Requried
对于非@autowired标注的属性,声明@Required表明明属性必须被注入。
1.5 生命周期Annotation
- JSR250的@PostConstruct 和 @PreDestroy,比以往的实现接口或者在applicationContext.xml中配置init-method的方式更为方便和标准。
- {{@PostContruct在所有注入函数执行完毕后执行,而@PreDestroy则在JVM退出的ShutdonwHook中拦截,注意,ShutdownHook对kill -9这种暴烈的关闭无效。
}}
2.事务
因为不喜欢在配置文件里用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事务资料 六种事务模型与四种事务隔离级别介绍。
分享到:
相关推荐
spring_source.pdf SpringGuide.pdf springide_updatesite_dev_2.0.2-rc1_v200711172000.part1.rar springide_updatesite_dev_2.0.2-rc1_v200711172000.part2.rar
Spring.NET 是一个基于 .NET Framework 的轻量级应用程序框架,灵感来源于 Java 平台上的 Spring 框架。它提供了一种控制反转 (IoC) 和面向切面编程 (AOP) 的容器,有助于实现软件组件之间的松耦合,提高代码的可...
spring整理比较全的约束.xml
spring 整理的较为全面约束,包含事务、aop、ioc、beans等
根据提供的文件信息,我们可以归纳出一系列与Spring框架相关的知识点,特别是针对Spring 4版本的学习资料。下面将详细介绍这些知识点,并尽可能地提供...希望以上整理的知识点能够帮助您更好地理解和学习Spring 4框架。
这个名为“spring整理好的jar包.zip”的压缩文件包含了Spring框架中几个关键领域的核心组件,旨在简化开发过程并提升效率。让我们逐一深入理解这些组件及其在实际应用中的作用。 首先,我们来看“ioc专用包”。IOC...
这个资料收集整理包含了关于Spring Data JPA的文档和代码示例,帮助开发者深入理解和使用这个强大的工具。 首先,Spring Data JPA的核心概念是Repository接口。通过定义一个简单的Repository接口,开发人员可以利用...
Spring框架是Java开发中的核心组件,它以依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming,...同时,手工整理的资料也体现了学习者对知识的理解和提炼,对于初学者来说更具实践价值。
个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人...
### Spring配置文件:整理与总结Spring中XML配置的最佳实践 #### 概述 Spring框架作为一个强大的Java应用框架,在企业级应用开发中占据了重要的地位。它为普通的Java对象(Plain Old Java Objects, POJOs)提供了...
Spring 框架是Java开发领域中的一个基石,它提供了许多功能来简化企业级应用的开发。Spring的核心是一个轻量级的容器,该容器通过控制反转(IoC)和依赖注入(DI)来管理对象之间的关系,使得代码更加灵活、可测试且...
个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人...
个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人...
Spring框架是Java开发中不可或缺的一部分,它为开发者提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,极大地简化了企业级应用的开发。本笔记将深入讲解Spring的核心概念和使用方法,帮助你快速掌握这一重要...
### Spring框架概述与核心特性 #### 一、Spring框架简介 Spring框架是一个广泛使用的Java平台,为Java应用程序提供了全面的支持。它旨在简化开发过程中的基础性任务,使开发者能够更专注于核心业务逻辑的编写。 #...
个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人...
Spring从入门到精通学习整理的笔记,包含applicationContext.xml,web.xml和java文件的配置,对于学习Spring有几大的帮助,需要的时候看一下,可以省去很多时间
spring和springmvc整理