当前位置: 首页 > 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://www.sadfv.cn/news/75359/

相关文章:

  • 乌班图系统做网站西安电商网站开发
  • 网站的说服力移动互联网终端
  • 网站主页布局域名怎么建网站
  • 网站建设管理属于职业资格吗猫咪社区官网在线最新
  • 网站建设开发岗位职责如何登陆建设银行信用卡网站
  • 网站转应用环境设计
  • 做网站需要注意些什么国内知名软件开发公司
  • 网页制作实践 做网站莱芜网站建设哪家好
  • 常州市建设局网站淳安网站建设
  • 教育技术学网站模版如何做带后台的网站
  • 鄂州英文网站建设wordpress删除无分类文章
  • 营销型网站建设电话栾川网站建设
  • 360怎么做网站排名培训网站设计
  • 万域网站建设珠海企业医疗网站建设
  • 网站在百度上搜不到江苏做网站找谁
  • 网站建设二次开发ppt模板免费下载网址
  • 个人网站备案后做游戏网站开发网页设计
  • 企业邮箱收费吗seo 适合哪些行业
  • 网站建设公司果动房地产市场现状分析2022
  • 台州网站排名优化公司汇点远程app下载安装
  • 如何做网站的搜索栏高端网约车收入怎么样
  • 网站开发外包费用的会计分录重庆有什么好玩的吗
  • 青海西宁学做网站在哪杭州哪家网站建设比较好
  • 新注册公司网站建设页面布局标准格式
  • 做网站需要多少钱平邑中企动力制作的网站后台
  • 正能量软件不良网站下载凡科网怎么修改网站
  • 网站建设公司织梦模板下载通用企业手机网站模板
  • 自己的网站做怎样的优化调整算命手机网站开发
  • 宣传中心网站建设网站备案要营业执照吗
  • 电子商务网站建设的要素cpanel安装wordpress中文教程