微信
手机版
网站地图

黄有龙,Spring中你不知道的注入方法,准生证怎么办

2019-04-01 11:33:05 投稿人 : admin 围观 : 239 次 0 评论

前语

在Spring装备文件中运用XML文件进行装备,实际上是让S妖娆女pring履行了相应的代码,例如:女囚吧

  • 运用元素,实际上是让S嗯用力pring履行无参或有参结构器
  • 运用元素,实际上是让Spring履行一次setter办法

但Java程序还可能有其他类型的句子:调用getter办法、调用一般办法、拜访类或方针的Field等,而Spring也为这种句子供给了对应的配黄有龙,Spring中你不知道的注入办法,准生证怎样办置语法:

  • 调用getter办法:运用PropertyPathFactoryBean
  • 调用类或方针的Filed值:运用FiledRetrievingFactoryBean
  • 调用一般黄有龙,Spring中你不知道的注入办法,准生证怎样办办法:运用MethodInvokingFactoryBean

注入其他Bean的特点值

PropertyPathFactoryBean用来取得方针Bean的特点值(实际上黄有龙,Spring中你不知道的注入办法,准生证怎样办便是调用getter办法回来的值),取得的值可以注入给其他的Bean,也可以直接界说新的Bean。看如下的装备文件:

Spring中你不知道的注入办法


其间Person类和Son类的特点可以从装备文件中看出,这不再给出。主程序如下:

Spring中你不知道的注入办法


输出成果:

age=11

Bean实例的特点值,不只可以注入另一个Bean,还可将Bean实例的属妹妹调教日记忆值直接界说成Bean实例,这也是通g2023过Propert多态zpnyPathFapk绝版皇室美男团ctoryBean完结的。对上面的装备文件添加这样一段:


履行上面的Test类,把son2换成son1,成果相同。

注入其他Bean的Field值

经过FieldRetrievingFacto黄有龙,Spring中你不知道的注入办法,准生证怎样办ryBean类,李左飞可以将其他Bean的Field值注入给其他Bean,或许直接界说新的Bean。下面是装备片段:


测验主程序与上文界说的相似,这儿不再供给,履行成果如下:

age=8

在这个装备中,son方针的age的值,等于java.sql.Connection.TRANSACTION_SERIALIZABLE的值。在上面的界说中,界说FieldRetrievingFactoryBean工厂Bean时,指定的id并不是该Bean实例的仅有标识,而是指定Field的表达式(行将要被取出来的值)。

留意:Fielrelifd既可以是静态的,也黑道悲情3在线阅览可以对错晶态的。上面的装备片段指定的Field表达式是静态Field值,因而可以经过类名直接拜访。假如Field值对错静态的,则应该经过容器中现已存在的Bean底子七保子来拜访——即Field表达式的第一个短语应该是容器中现已存在的Bean。

Field值也可我和女以界说成Bean实例,例如,在装备文件中添加下面一段:


在主程序中增黄有龙,Spring中你不知道的注入办法,准生证怎样办加如下输出:


履行成果和上文相同。

运用FieldRetrievingFactoryBean获取Field值时,有必要指定如下两个特点:

  • targetClass或targetObject:别离用于指定Field值地点的方针累或方针方针。假如需求取得的Field是静态的,则运用targetClass指定方针累;如diomand果Field对错静态的,则运用targetObject指定方针方针
  • targetField:指定方针类或方针方针的Field名

假如Field是个静态Field,则有一种愈加简练的写法:


注入其他Be提臀来见an的办法回来值

经过MethodInvokingFa和母亲ctoryBean工厂Bean,可将风险品格辨认术方针办法的回来值注入为Bean的特点值。这个工厂Bean用来获取指定办法的回来值,该办法既可以是静态办法,也可以是实例办法;这个值既可以被注入到指定Bean实例的指定特点,也可以直接界说成Bean实例。看黄有龙,Spring中你不知道的注入办法,准生证怎样办比如:


下面是ValueGenerator:


测验程序仍旧打印son1中age的罗西贝微博值,代码略,成果如下:

age=2

假如要调用静态办法,则把装备修改为:


测验成果为:

age=3

因为Java是支撑重载的,只给定办法名,戏精训练营还不足以可以确认调用哪个方黄有龙,Spring中你不知道的注入办法,准生证怎样办法,经过上面的装备能调用成功是因为ValueGenerator中的两个办法都没有参数。假如办法中有参数,该怎么装备呢?在装备文件中参加以下内容:


上例中相当于用”java.version”作为参数调用了java.lang.System的getProperty办法,回来值将创立一个名为javaVersion的Bean。即相当于:


和前文中的Field相同,假如要调用的老头不停在我身上舔奶办法为静态办法,也有一种愈加简练的办法:


相关文章

标签列表