电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

spring注解注入示例详解

6页
  • 卖家[上传人]:枫**
  • 文档编号:473459664
  • 上传时间:2023-04-27
  • 文档格式:DOC
  • 文档大小:104KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、、各种注解方式1. Autowired 注解 ( 不推荐使用,建议使用 Resource)Autowired 可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。Autowired 的标注位置不同,它们都会在 Spring 在初始化这个 bean 时,自动装配这个属 性。要使 Autowired 能够工作,还需要在配置文件中加入以下Xml 代码1. 2. Qualifier 注解Autowired 是根据类型进行自动装配的。例如,如果当 Spring 上下文中存在不止一个 UserDao 类型的 bean 时,就会抛出 BeanCreationException 异常 ; 如果 Spring 上下文中不 存在UserDao类型的bean,也会抛出 BeanCreationException 异常。我们可以使用 Qualifier 配合 Autowired 来解决这些问题。如下:1) . 可能存在多个 UserDao 实例Java 代码1. Autowired2. Qualifier ( userServiceImpl)3. public IUserService userSe

      2、rvice;或者Java 代码1. Autowired2. public void setUserDao( Qualifier ( userDao ) UserDao userDao) 3. this .userDao = userDao;4. 这样, Spring 会找到 id 为 userServiceImpl 和 userDao 的 bean 进行装配。2) . 可能不存在 UserDao 实例Java 代码1. Autowired (required = false )2. public IUserService userService;3. Resource 注解JSR-250 标准注解,推荐使用它来代替 Spring 专有的 Autowired 注解。 Resource 的 作用相当于 Autowired,只不过 Autowired按byType自动注入,而Resource默认按byName 自动注入罢了。 Resource有两个属性是比较重要的,分别是 name和type , Spring将 Resource注解的name属性解析为bean的名字,而type属性则解析为

      3、bean的类型。所以 如果使用name属性,则使用byName的自动注入策略,而使用 type属性时则使用byType 自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。要使 Autowired 能够工作,还需要在配置文件中加入以下 :Xml 代码1. Resource装配顺序:a. 如果同时指定了 name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常b. 如果指定了 name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出 异常c. 如果指定了 type ,则从上下文中找到类型匹配的唯一 bean 进行装配,找不到或者找 到多个,都会抛出异常d. 如果既没有指定 name,又没有指定type,则自动按照byName方式进行装配(见2); 如果没有匹配,则回退为一个原始类型 (UserDao) 进行匹配,如果匹配则自动装配 ;4. PostConstruct(JSR-250) 注解在方法上加上注解 PostConstruct ,这个方法就会在 Bean 初始化之后被 Spri

      4、ng 容器执 行(注:Bean初始化包括,实例化 Bean,并装配Bean的属性(依赖注入)。它的一个典型的 应用场景是,当你需要往Bean里注入一个其父类中定义的属性,而你又无法复写父类的属性或属性的 setter 方法时,如:Java 代码1. public class UserDaoImpl extends HibernateDaoSupport implements UserDao2.2. private SessionFactory mySessionFacotry;4.5. Resource6. public void setMySessionFacotry(SessionFactory sessionFacotry)7. 8. this .mySessionFacotry = sessionFacotry;9. 10.11. PostConstruct12. public void injectSessionFactory()13. 14. super .setSessionFactory(mySessionFacotry);15. 16. 这里通过 PostConstr

      5、uct ,为 UserDaoImpl 的父类里定义的一个 sessionFactory 私有 属性,注入了我们自己定义的 sessionFactory( 父类的 setSessionFactory 方法为 final , 不可复写 ) ,之后我们就可以通过调用 super.getSessionFactory() 来访问该属性了。5. PreDestroy(JSR-250) 注解在方法上加上注解 PreDestroy ,这个方法就会在 Bean 初始化之后被 Spring 容器执行。 其用法同 PostConstruct 。和 PostConstruct 区别在于: PostConstruct 注释的方法将在 类实例化后调用,而标注了 PreDestroy 的方法将在类销毁之前调用。6. Component 注解 ( 不推荐使用 )只需要在对应的类上加上一个 Componen注解,就将该类定义为一个Bean 了。Spring还提供了更加细化的注解形式:Repository 、Service 、Controller ,它们分别对应存储层Bean,业务层Bean,和展示层Bean。目前版本(

      6、2.5)中,这些注解与 Componen的语义 是一样的,完全通用,在 Spring 以后的版本中可能会给它们追加更多的语义。所以,我们 推荐使用 Repository、Service、Controller 来替代 Componeni7. Scope 注解在使用XML定义Bean时,我们可能还需要通过bean的scope属性来定义一个 Bean的作用范围,我们同样可以通过 Scope注解来完成这项工作:Java 代码1. Scope( session )2. Component ()implements Serializable3. public class UserSessionBean4.5. 二、配置启用注解 ( 注意以下配置需要使用 spring2.5 的头文件,在 spring3.0 中不适 用)1. 使用简化配置Spring2.1 添加了一个新的 context 的 Schema 命名空间,该命名空间对注释驱动、属 性文件引入、 加载期织入等功能提供了便捷的配置。 我们知道注释本身是不会做任何事情的, 它仅提供元数据信息。 要使元数据信息真正起作用, 必须让负责处理这些元数

      7、据的处理器工 作起来。AutowiredAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor 就 是处理这些注释元数据的处理器。 但是直接在 Spring 配置文件中定义这些 Bean 显得比较笨 拙。 Spring 为我们提供了一种方便的注册这些BeanPostProcessor 的方式,这就是,以下是 spring 的配置。Xml 代码1. 6. 7. beans将隐式地向 Spring 容器注册了AutowiredAnnotationBeanPostProcessor 、CommonAnnotationBeanPostProcessor 、PersistenceAnnotationBeanPostProcessorRequiredAnnotationBeanPostProcessor这4个 BeanPostProcessor 。2. 使用让 Bean 定义注解工作起来Xml 代码1. 6. 7. beans这里,所有通过元素定义 Bean 的配置内容已经被移除,仅需要添加一行配置就解决所有问题了一一 Spring XML配置文件得到了极致的简化(当然配置元数据还是需要的,只不过 以注释形式存在罢了 )。的 base-package 属

      《spring注解注入示例详解》由会员枫**分享,可在线阅读,更多相关《spring注解注入示例详解》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.