Ant*_*cid 6 java spring annotations autowired
我可以放入context:annotation-config我的XML配置是否正确,它会自动注入bean类而不需要任何注释?
因此,而不是使用这些注释类型:
public class Mailman
{
private String name;
@Autowired
private Parcel Parcel;
public Mailman(String name)
{
this.name = name;
}
@Autowired
public void setParcel(Parcel Parcel)
{
this.Parcel = Parcel;
}
@Autowired
public void directionsToParcel(Parcel Parcel)
{
this.Parcel = Parcel;
}
}
Run Code Online (Sandbox Code Playgroud)
我只想写这个:
<beans ... >
<bean id="mailMan" class="MailMan">
<constructor-arg value="John Doe"/>
</bean>
<bean id="parcel" class="Parcel" />
<context:annotation-config />
</beans>
Run Code Online (Sandbox Code Playgroud)
然后我的MailMan类看起来会更简单,而不需要注释:
public class Mailman
{
private String name;
private Parcel Parcel;
public Mailman(String name)
{
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,Spring上下文不会注意@Autowired注释.为了处理它们,上下文需要AutowiredAnnotationBeanPostProcessor在上下文中注册bean.
<context:annotation-config/>为你注册其中一个(以及其他一些),所以你确实需要它(除非你AutowiredAnnotationBeanPostProcessor自己注册,这是完全有效的).
如果您不喜欢使用@Autowired代码,那么您可以使用XML显式地注入属性<property>,这只会将混乱从一个地方移动到另一个地方.
如果你的环境是非常简单的,那么你可以使用隐自动装配,如所描述这里.从本质上讲,这告诉Spring按属性名称或类型自动自动装配.这需要非常少的配置,但它很快失控 - 它的自动性意味着它很难控制,并且给你很小的灵活性.
@Autowired 一般来说,真的是最好的选择.
| 归档时间: |
|
| 查看次数: |
7884 次 |
| 最近记录: |