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

国外工业设计网站排名查询

国外工业设计网站,排名查询,学做ps的软件的网站有哪些,个人网站的前途情景分析 在Spring的诸多应用场景中bean都是单例形式#xff0c;当一个单利bean需要和一个非单利bean组合使用或者一个非单利bean和另一个非单利bean组合使用时#xff0c;我们通常都是将依赖以属性的方式放到bean中来引用#xff0c;然后以Autowired来标记需要注入的属性。…情景分析 在Spring的诸多应用场景中bean都是单例形式当一个单利bean需要和一个非单利bean组合使用或者一个非单利bean和另一个非单利bean组合使用时我们通常都是将依赖以属性的方式放到bean中来引用然后以Autowired来标记需要注入的属性。但是这种方式在bean的生命周期不同时将会出现很明显的问题假设单利bean A需要一个非单利bean B原型我们在A中注入bean B每次调用bean A中的方法时都会用到bean B我们知道Spring Ioc容器只在容器初始化时执行一次也就是bean A中的依赖bean B只有一次注入的机会但是实际上bean B我们需要的是每次调用方法时都获取一个新的对象原型所以问题明显就是我们需要bean B是一个原型bean而事实上bean B的依赖只注入了一次变成了事实上的单利bean。 代码说明 Component Scope(prototype) public class PrototypeBean {private static final Logger logger LoggerFactory.getLogger(PrototypeBean.class);public void say() {logger.info(say something...);} } Component public class SingletonBean {private static final Logger logger LoggerFactory.getLogger(SingletonBean.class);Autowiredprivate PrototypeBean bean;public void print() {logger.info(Bean SingletonBeans HashCode : {},bean.hashCode());bean.say();} } SpringBootApplication public class SampleApplication {private static final Logger logger LoggerFactory.getLogger(SampleApplication.class);public static void main(String[] args) {SpringApplication.run(SampleApplication.class, args);}Bean public CommandLineRunner test(final SingletonBean bean) {return (args)- {logger.info(测试单例bean和原型bean的调用);int i 0;while(i3) {i;bean.print();}};} }结果 2018-12-06 15:04:29,721 INFO :-- [main .. ] o.s.SampleApplication 测试单例bean和原型bean的调用 2018-12-06 15:04:29,723 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 1713129148 2018-12-06 15:04:29,723 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 2018-12-06 15:04:29,723 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 1713129148 2018-12-06 15:04:29,724 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 2018-12-06 15:04:29,724 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 1713129148 2018-12-06 15:04:29,724 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 我们看到每次输出PrototypeBean的HashCode都是一样的证明我们实际上并没有达到使用原型bean的目的。 解决方案 在beanA中引入ApplicationContext每次调用方法时用上下文的getBean(name,class)方法去重新获取beanB的实例。 使用Lookup注解。这两种解决方案都能解决我们遇到的问题但是第二种相对而言更简单。以下给出两种解决方案的代码示例。 通过应用上下文ApplicationContext获取获取 Component public class SingletonBean {private static final Logger logger LoggerFactory.getLogger(SingletonBean.class);Autowiredprivate ApplicationContext context;public void print() {PrototypeBean bean getFromApplicationContext();logger.info(Bean SingletonBeans HashCode : {},bean.hashCode());bean.say();}/*** 每次都从ApplicatonContext中获取新的bean引用* return PrototypeBean instance*/PrototypeBean getFromApplicationContext() {return this.context.getBean(prototypeBean,PrototypeBean.class);} } 结果 2018-12-06 15:10:01,485 INFO :-- [main .. ] o.s.SampleApplication 测试单例bean和原型bean的调用 2018-12-06 15:10:01,487 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 376601041 2018-12-06 15:10:01,487 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 2018-12-06 15:10:01,487 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 2056499811 2018-12-06 15:10:01,487 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 2018-12-06 15:10:01,488 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 890733699 2018-12-06 15:10:01,488 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 我们看到每次我们调用print()方法时都会重新从应用上下文获取新的引用达到了使用原型的目的。 通过Lookup注解实现方法注入 使用方法注入的方法需要满足以下语法要求 public|protected [abstract] return-type theMethodName(no-arguments); Component public abstract class SingletonBean {private static final Logger logger LoggerFactory.getLogger(SingletonBean.class);public void print() {PrototypeBean bean methodInject();logger.info(Bean SingletonBeans HashCode : {},bean.hashCode());bean.say();}// 也可以写成 Lookup(prototypeBean) 来指定需要注入的beanLookupprotected abstract PrototypeBean methodInject(); }结果 2018-12-06 15:18:50,105 INFO :-- [main .. ] o.s.SampleApplication 测试单例bean和原型bean的调用 2018-12-06 15:18:50,108 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 1349373781 2018-12-06 15:18:50,108 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 2018-12-06 15:18:50,108 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 1046820071 2018-12-06 15:18:50,109 INFO :-- [main .. ] o.s.a.PrototypeBean say something... 2018-12-06 15:18:50,109 INFO :-- [main .. ] o.s.a.SingletonBean Bean SingletonBeans HashCode : 1722645488 2018-12-06 15:18:50,110 INFO :-- [main .. ] o.s.a.PrototypeBean say something...
http://wiki.neutronadmin.com/news/75359/

相关文章:

  • 网站建设兰州网页设计师考证
  • 网站上的菠菜游戏哪里可以做网推一手渠道
  • 简洁大气网站模板wordpress提取公众号文章
  • 网站建设 计入哪个科目广州工商注册咨询
  • 对新网站做seo大概需要多久线上推广网络公司
  • 网站开发网页权限如何控制跑步机 东莞网站建设
  • 大连有做途家网站吗wordpress4.9部署
  • 北京天通苑 做网站网站平台建设所需开发工具
  • 网页美工设计培训学什么呼和浩特网站seo优化方案
  • 建设网站存在的问题wordpress更改ico
  • 自考网页制作与网站建设手机百度网址是什么
  • 山东阳信建设局网站网站维护报价表
  • 盘锦网站优化外贸php网站源码
  • 单页网站的域名wordpress登录几天退出账号
  • 如何让做的网站自动适应浏览器外网专线
  • 网站制作报价明细嘉兴seo外包公司费用
  • 佛山网站制作专家成都生活家装饰公司
  • 网站价值排行婚庆公司名字大全
  • 中国建筑网官网手机版交易类网站seo怎么做
  • 深圳哪里网站制作网站怎么做图片放映效果
  • 网站建设认准猪八戒网后台网站模板 html
  • .net网站开发用的书籍阿里云域名购买官网
  • 扬州公司网站建设做网站相关人员
  • 中国住房和城乡建设网站河源seo
  • 深圳网站空间Wordpress找不到外观选项
  • 网站建设专员工作职责wordpress 公司门户
  • 淘宝建设网站的理由深圳网络推广培训机构
  • 十堰电商网站建设网站开发与设计公司
  • 兰州网站建设推荐q479185700上墙聊城网站推广
  • 摄影网站设计代码莱芜雪野湖滑雪场