关于Spring的bean注入问题

群居的山羊 2017-09-24 06:17:03
最近在学习Spring框架,看书上讲的构造注入和依赖注入都是在程序的方法执行之前就完成了(说的可能有点问题,目前我觉得除了setter方法之外的方法都是在注入后才被调用的)。这里我就有个问题,假如有一个A类,他的构造方法需要一个字符串参数,而这个字符串参数是要求用户输入的,这也就是个例子。我的问题是像这样一开始并不知道如何创建实例,或者参数在运行方法之前无法确定的时候要怎么设置注入。或者说这种情况本来就无法设置注入
...全文
342 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyusunquan 2017-09-28
  • 打赏
  • 举报
回复
为什么csdn人气这么低了。。。。。。。。。。
wuhehe123 2017-09-27
  • 打赏
  • 举报
回复
试试设置default-lazy-init,延迟初始化
群居的山羊 2017-09-27
  • 打赏
  • 举报
回复
引用 14 楼 wuhehe123 的回复:
试试设置default-lazy-init,延迟初始化
我去查了查,这个懒加载只有在程序用到懒加载的类的时候才会去创建该类的实例,而且前提是拥有这个类的实例的类也必须是懒加载的(原谅我语文不好。。。就是设置为懒加载的类是哪个类的实例),感觉基本上还是不起太大作用的,大佬们平时没有遇到过这种需要根据其他条件动态创建实例问题么,不知道你们是怎么处理这种问题的
愤怒的502 2017-09-26
  • 打赏
  • 举报
回复
一个Action,它有一个User类,User注入Action。spring启动的时候,Action会注入一个User对象,如果User没有注入参数,User对象的属性会为空。当提交表单到后台的时候,才会给User赋值。
群居的山羊 2017-09-26
  • 打赏
  • 举报
回复
所以这个注不注入都行呗,最后在秀一波存在感,没有什么新的意见就准备结贴了
愤怒的502 2017-09-26
  • 打赏
  • 举报
回复
引用 11 楼 liu1324457514 的回复:
[quote=引用 10 楼 qq_35188589 的回复:] 一个Action,它有一个User类,User注入Action。spring启动的时候,Action会注入一个User对象,如果User没有注入参数,User对象的属性会为空。当提交表单到后台的时候,才会给User赋值。
也就是说这个注入可有可无是么[/quote] 你可以在添加User这个bean的时候给它赋值,就是在配置文件里面给user添加具体属性,然后再把user注入action。
群居的山羊 2017-09-26
  • 打赏
  • 举报
回复
引用 10 楼 qq_35188589 的回复:
一个Action,它有一个User类,User注入Action。spring启动的时候,Action会注入一个User对象,如果User没有注入参数,User对象的属性会为空。当提交表单到后台的时候,才会给User赋值。
也就是说这个注入可有可无是么
DM_xianzhushou 2017-09-25
  • 打赏
  • 举报
回复
LZ所说的情况,一般该字符串是个全局的常量,比如域名,在不同的环境下是变化的,所以一般我们都是设置为可配置的,这样就满足了LZ所说的构造注入的场景,否则,我们是不可能由用户自用定义参数去实现注入的. 若有不当之处,欢迎指正
sk815 2017-09-25
  • 打赏
  • 举报
回复
这样的类一班会要求你提供无参构造 你硬是不提供的话 注入时候就会报错 ····
annkee058 2017-09-25
  • 打赏
  • 举报
回复
mark ing
群居的山羊 2017-09-25
  • 打赏
  • 举报
回复
引用 5 楼 DM_xianzhushou 的回复:
LZ所说的情况,一般该字符串是个全局的常量,比如域名,在不同的环境下是变化的,所以一般我们都是设置为可配置的,这样就满足了LZ所说的构造注入的场景,否则,我们是不可能由用户自用定义参数去实现注入的. 若有不当之处,欢迎指正
请问您说的设置为可配置的具体是什么意思呢?我现在的理解是对于那些在程序运行后才能获取实例化所需参数的全局变量来说,Spring框架是无法提供注入的,还是需要像平常那样写。我也是刚开始看,有很多不懂的地方。。。
Zh.晨光 2017-09-25
  • 打赏
  • 举报
回复
就看设值还是构造注入了,基本两种!
休谱诺斯 2017-09-25
  • 打赏
  • 举报
回复
这种情况下无法注入,只能是在得到对象以后为对象的某个属性赋值,因为你的参数是从外部得到的无法在加载配置时得到,实际应用中也只能如此
群居的山羊 2017-09-24
  • 打赏
  • 举报
回复
求解。。。。。。。。。。。。。。。。。。。。。
群居的山羊 2017-09-24
  • 打赏
  • 举报
回复
顶起~~~~~~~~~~~~~~~~~~~~~~~~

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧