- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spring基于 Annotation 的简单介绍
Spring基于 Annotation 的简单介绍
分类: java技术 2011-03-29 15:07 1205人阅读 评论(1) 收藏 举报
1.使用 @Repository、@Service、@Controller 和 @Component 将类标识为 Bean:
Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository 注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO 类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用 Bean 的自动扫描功能,这可以通过 context:component-scan/ 实现。如下所示:
首先,使用 @Repository 将 DAO 类声明为 Bean:
[java] view plaincopy
1. //?首先使用?@Repository?将?DAO?类声明为?Bean???
2. ?package?bookstore.dao;???
3. ?@Repository???
4. ?public?class?UserDaoImpl?implements?UserDao{?……?}???
5. ?//?其次,在?XML?配置文件中启动?Spring?的自动扫描功能??
6. ?beans?…????
7. ????……??
8. ?context:component-scan?base-package=”bookstore.dao”?/???
9. ……??
10. ?/beans???
?
其次,在 XML 配置文件中启动 Spring 的自动扫描功能:
[xhtml] view plaincopy
1. beans?…????
2. ???……??
3. context:component-scan?base-package=”bookstore.dao”?/???
4. …??
5. /beans???
?
?
如此,我们就不再需要在 XML 中显式使用 bean/ 进行 Bean 的配置。Spring 在容器初始化时将自动扫描 base-package 指定的包及其子包下的所有 class 文件,所有标注了 @Repository 的类都将被注册为 Spring Bean。
为什么 @Repository 只能标注在 DAO 类上呢?这是因为该注解的作用不只是将类识别为 Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。 Spring 本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。
2.Spring 2.5 在 @Repository 的基础上增加了功能类似的额外三个注解:
@Component、@Service、@Constroller,它们分别用于软件系统的不同层次:
?
? @Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
? @Service 通常作用在业务层,但是目前该功能与 @Component 相同。
? @Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。
通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring 会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring 受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。
另外,除了上面的四个注解外,用户可以创建自定义的注解,然后在注解上标注 @Component,那么,该自定义注解便具有了与所 @Component 相同的功能。不过这个功能并不常用。
3.Spring使用注解的机制:
当一个 Bean 被自动检测到时,会根据那个扫描器的 BeanNameGenerator 策略生成它的 bean 名称。默认情况下,对于包含 name 属性的 @Component、@Repository、 @Service 和 @Controller,会把 name 取值作为 Bean 的名字。如果这个注解不包含 name 值或是其他被自定义过滤器发现的组件,默认 Bean 名称会是小写开头的非限定类名。如果你不想使用默认 bean 命名策略,可以提供一个自定义的命名策略。首先实现 BeanNameGener
您可能关注的文档
最近下载
- 2025年华住酒店考试题库.docx
- 物业服务安全生产标准化管理手册规章制度分册.docx VIP
- 陕西省国家重点生态功能区产业准入负面清单(试行).docx VIP
- 抗菌药物临床应用管理工作制度和监督管理机制.docx VIP
- 生涯人物访谈.pdf VIP
- 中央银行支付清算体系.pptx VIP
- 《毕业论文:基于嵌入式系统的java游戏的设计与实现》.doc VIP
- 11D703-1~11D703-2液位测量与控制(2011年合订本).pdf VIP
- 《基于患者来源肿瘤类器官的药物敏感性检测技术规范》.pdf VIP
- 2025年人教版四年级上册数学第三单元《角的度量》测试卷含答案(黄金题型).pdf VIP
原创力文档


文档评论(0)