当前位置: 首页 > news >正文

淘客网站开发视频教程刷赞网站推广qq免费

淘客网站开发视频教程,刷赞网站推广qq免费,linux下wordpress建站,网站开发公司业务员培训2019独角兽企业重金招聘Python工程师标准 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件或者注解#xff0c;我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就得采用动态处理bea… 2019独角兽企业重金招聘Python工程师标准 我们通过getBean来获得对象,但这些对象都是事先定义好的,我们有时候要在程序中动态的加入对象.因为如果采用配置文件或者注解我们要加入对象的话,还要重启服务,如果我们想要避免这一情况就得采用动态处理bean,包括动态注入,动态删除。   本节大纲 1动态注入bean思路 2动态注入实现代码 3多次注入同一个bean的情况 4动态删除          接下来我们看下具体的内容   1动态注入bean思路        在具体进行代码实现的时候我们要知道Spring管理bean的对象是BeanFactory具体的是DefaultListableBeanFactory在这个类当中有一个注入bean的方法registerBeanDefinition在调用registerBeanDefinition方法时需要BeanDefinition参数那么这个参数怎么获取呢Spring提供了BeanDefinitionBuilder可以构建一个BeanDefinition那么我们的问题就是如何获取BeanFactory了这个就很简单了只要获取到ApplicationContext对象即可获取到BeanFacory了。   2动态注入实现代码 综上所述如果我们要编写一个简单里的例子的话那么分以个几个步骤进行编码即可进行动态注入了   1. 获取ApplicationContext; 2. 通过ApplicationContext获取到BeanFacotory; 3. 通过BeanDefinitionBuilder构建BeanDefiniton; 4. 调用beanFactory的registerBeanDefinition注入beanDefinition 5. 使用ApplicationContext.getBean获取bean进行测试            很明显我们需要先定义个类进行测试比如TestService代码如下  /**  * 动态注入的service.  * author Angel -- 守护天使  * version v.0.1  * date 2017年1月2日  */ package com.kfit.demo.service; public class TestService {     private String name;     public String getName() {        return name;     }     public void setName(String name) {        this.name  name;     }     public void print(){        System.out.println(动态载入bean,namename);     } }   注意这里没有使用Service和配置文件进行注入TestService。          那么下面我们的目标就是动态注入TestService了根据以上的分析我们进行编码具体代码如下   //获取context.  -- Angel -守护天使 ApplicationContext ctx   (ApplicationContext) SpringApplication.run(App.class, args);        //获取BeanFactory DefaultListableBeanFactory defaultListableBeanFactory  (DefaultListableBeanFactory)ctx.getAutowireCapableBeanFactory();        //创建bean信息. BeanDefinitionBuilderbeanDefinitionBuilder BeanDefinitionBuilder.genericBeanDefinition(TestService.class); beanDefinitionBuilder.addPropertyValue(name,张三);        //动态注册bean. defaultListableBeanFactory.registerBeanDefinition(testService,beanDefinitionBuilder.getBeanDefinition());        //获取动态注册的bean. TestService testService ctx.getBean(TestService.class);、testService.print();     执行代码我们会在控制台看到如下打印信息 动态载入bean,name张三        到这里就证明我们的代码很成功了。   3多次注入同一个bean的情况        多次注入同一个bean的如果beanName不一样的话那么会产生两个Bean如果beanName一样的话后面注入的会覆盖前面的。 第一种情况beanName一样的代码   beanDefinitionBuilder  BeanDefinitionBuilder.genericBeanDefinition(TestService.class); beanDefinitionBuilder.addPropertyValue(name,李四); defaultListableBeanFactory.registerBeanDefinition(testService, beanDefinitionBuilder.getBeanDefinition());            运行看控制台 动态载入bean,name李四   第二种情况beanName不一样的代码   beanDefinitionBuilder  BeanDefinitionBuilder.genericBeanDefinition(TestService.class); beanDefinitionBuilder.addPropertyValue(name,李四); defaultListableBeanFactory.registerBeanDefinition(testService1,beanDefinitionBuilder.getBeanDefinition());          此时如果没有更改别的代码直接运行的话是会报如下错误的   Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [com.kfit.demo.service.TestService] is defined: expected single matching bean but found 2: testService1,testService            大体意思就是在getBean的时候找到了两个bean这时候就不知道要获取哪个了所以在获取的时候我们就要指定我们是要获取的testService还是testService1只需要修改一句代码 将代码   TestService testService ctx.getBean(TestService.class);   修改为     TestService testService ctx.getBean(testService);         4动态删除        相对于动态注入动态删除就很简单了直接奉上代码   //删除bean. defaultListableBeanFactory.removeBeanDefinition(testService); 转载于:https://my.oschina.net/xiaominmin/blog/1607727
http://www.zqtcl.cn/news/465643/

相关文章:

  • 邯郸网站设计培训做网站建设公司crm在线的培训服务
  • 网站建设文化案例萧山网页设计
  • 融安有那几个网站做的比较好的林州网站建设熊掌号
  • 织梦个人博客网站源码深圳华强北鬼市
  • 成都公司建站模板营销策略有哪些方面
  • 南京哪里做网站河北建设工程交易信息网
  • 广州开发网站设计拍摄宣传片
  • 小型企业网站设计教程深圳seo网站推广方案
  • 做视频网站怎么备案最新网站架构
  • 黄金网站app软件下载安装免费淘宝网页版登录
  • 幸运28网站建设网站返回指定位置怎么做
  • 建设个直播网站要多少钱兴业大街网站建设
  • 网站设计培训班创业上海今天新闻发布会直播
  • 电商网站制作设计wordpress jquery 无法
  • 关键词优化易下拉效率北京和隆优化科技
  • 漯河企业网站开发天津建设协会网站
  • wap网站模式房产信息查询网
  • 做外贸怎么进入国外的网站百度指数总结
  • ui设计作品网站东莞做网站的网络公司
  • 网站未备案怎么访问做网站图片教程
  • 温州专业营销网站建设网络建设解决方案
  • 滨州网站建设 远洋科技网站需求建设书
  • 知道网站域名怎么联系域名解析不成功是什么意思
  • 武宁网站ui专业设计wordpress评论通知代码6
  • thymeleaf做网站 seo重庆平台网站建设找哪家
  • WordPress子站站群建筑工程网上申请质量安全监督
  • 怎么给网站添加图标山西手机版建站系统哪家好
  • frontpage网页制作视频教程昆明网站建设优化企业
  • 工信部 诚信网站备案公司网络营销方案
  • 网站开发采集工具如何做网站内链优化